| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471124721247312474124751247612477124781247912480124811248212483124841248512486124871248812489124901249112492124931249412495124961249712498124991250012501125021250312504125051250612507125081250912510125111251212513125141251512516125171251812519125201252112522125231252412525125261252712528125291253012531125321253312534125351253612537125381253912540125411254212543125441254512546125471254812549125501255112552125531255412555125561255712558125591256012561125621256312564125651256612567125681256912570125711257212573125741257512576125771257812579125801258112582125831258412585125861258712588125891259012591125921259312594125951259612597125981259912600126011260212603126041260512606126071260812609126101261112612126131261412615126161261712618126191262012621126221262312624126251262612627126281262912630126311263212633126341263512636126371263812639126401264112642126431264412645126461264712648126491265012651126521265312654126551265612657126581265912660126611266212663126641266512666126671266812669126701267112672126731267412675126761267712678126791268012681126821268312684126851268612687126881268912690126911269212693126941269512696126971269812699127001270112702127031270412705127061270712708127091271012711127121271312714127151271612717127181271912720127211272212723127241272512726127271272812729127301273112732127331273412735127361273712738127391274012741127421274312744127451274612747127481274912750127511275212753127541275512756127571275812759127601276112762127631276412765127661276712768127691277012771127721277312774127751277612777127781277912780127811278212783127841278512786127871278812789127901279112792127931279412795127961279712798127991280012801128021280312804128051280612807128081280912810128111281212813128141281512816128171281812819128201282112822128231282412825128261282712828128291283012831128321283312834128351283612837128381283912840128411284212843128441284512846128471284812849128501285112852128531285412855128561285712858128591286012861128621286312864128651286612867128681286912870128711287212873128741287512876128771287812879128801288112882128831288412885128861288712888128891289012891128921289312894128951289612897128981289912900129011290212903129041290512906129071290812909129101291112912129131291412915129161291712918129191292012921129221292312924129251292612927129281292912930129311293212933129341293512936129371293812939129401294112942129431294412945129461294712948129491295012951129521295312954129551295612957129581295912960129611296212963129641296512966129671296812969129701297112972129731297412975129761297712978129791298012981129821298312984129851298612987129881298912990129911299212993129941299512996129971299812999130001300113002130031300413005130061300713008130091301013011130121301313014130151301613017130181301913020130211302213023130241302513026130271302813029130301303113032130331303413035130361303713038130391304013041130421304313044130451304613047130481304913050130511305213053130541305513056130571305813059130601306113062130631306413065130661306713068130691307013071130721307313074130751307613077130781307913080130811308213083130841308513086130871308813089130901309113092130931309413095130961309713098130991310013101131021310313104131051310613107131081310913110131111311213113131141311513116131171311813119131201312113122131231312413125131261312713128131291313013131131321313313134131351313613137131381313913140131411314213143131441314513146131471314813149131501315113152131531315413155131561315713158131591316013161131621316313164131651316613167131681316913170131711317213173131741317513176131771317813179131801318113182131831318413185131861318713188131891319013191131921319313194131951319613197131981319913200132011320213203132041320513206132071320813209132101321113212132131321413215132161321713218132191322013221132221322313224132251322613227132281322913230132311323213233132341323513236132371323813239132401324113242132431324413245132461324713248132491325013251132521325313254132551325613257132581325913260132611326213263132641326513266132671326813269132701327113272132731327413275132761327713278132791328013281132821328313284132851328613287132881328913290132911329213293132941329513296132971329813299133001330113302133031330413305133061330713308133091331013311133121331313314133151331613317133181331913320133211332213323133241332513326133271332813329133301333113332133331333413335133361333713338133391334013341133421334313344133451334613347133481334913350133511335213353133541335513356133571335813359133601336113362133631336413365133661336713368133691337013371133721337313374133751337613377133781337913380133811338213383133841338513386133871338813389133901339113392133931339413395133961339713398133991340013401134021340313404134051340613407134081340913410134111341213413134141341513416134171341813419134201342113422134231342413425134261342713428134291343013431134321343313434134351343613437134381343913440134411344213443134441344513446134471344813449134501345113452134531345413455134561345713458134591346013461134621346313464134651346613467134681346913470134711347213473134741347513476134771347813479134801348113482134831348413485134861348713488134891349013491134921349313494134951349613497134981349913500135011350213503135041350513506135071350813509135101351113512135131351413515135161351713518135191352013521135221352313524135251352613527135281352913530135311353213533135341353513536135371353813539135401354113542135431354413545135461354713548135491355013551135521355313554135551355613557135581355913560135611356213563135641356513566135671356813569135701357113572135731357413575135761357713578135791358013581135821358313584135851358613587135881358913590135911359213593135941359513596135971359813599136001360113602136031360413605136061360713608136091361013611136121361313614136151361613617136181361913620136211362213623136241362513626136271362813629136301363113632136331363413635136361363713638136391364013641136421364313644136451364613647136481364913650136511365213653136541365513656136571365813659136601366113662136631366413665136661366713668136691367013671136721367313674136751367613677136781367913680136811368213683136841368513686136871368813689136901369113692136931369413695136961369713698136991370013701137021370313704137051370613707137081370913710137111371213713137141371513716137171371813719137201372113722137231372413725137261372713728137291373013731137321373313734137351373613737137381373913740137411374213743137441374513746137471374813749137501375113752137531375413755137561375713758137591376013761137621376313764137651376613767137681376913770137711377213773137741377513776137771377813779137801378113782137831378413785137861378713788137891379013791137921379313794137951379613797137981379913800138011380213803138041380513806138071380813809138101381113812138131381413815138161381713818138191382013821138221382313824138251382613827138281382913830138311383213833138341383513836138371383813839138401384113842138431384413845138461384713848138491385013851138521385313854138551385613857138581385913860138611386213863138641386513866138671386813869138701387113872138731387413875138761387713878138791388013881138821388313884138851388613887138881388913890138911389213893138941389513896138971389813899139001390113902139031390413905139061390713908139091391013911139121391313914139151391613917139181391913920139211392213923139241392513926139271392813929139301393113932139331393413935139361393713938139391394013941139421394313944139451394613947139481394913950139511395213953139541395513956139571395813959139601396113962139631396413965139661396713968139691397013971139721397313974139751397613977139781397913980139811398213983139841398513986139871398813989139901399113992139931399413995139961399713998139991400014001140021400314004140051400614007140081400914010140111401214013140141401514016140171401814019140201402114022140231402414025140261402714028140291403014031140321403314034140351403614037140381403914040140411404214043140441404514046140471404814049140501405114052140531405414055140561405714058140591406014061140621406314064140651406614067140681406914070140711407214073140741407514076140771407814079140801408114082140831408414085140861408714088140891409014091140921409314094140951409614097140981409914100141011410214103141041410514106141071410814109141101411114112141131411414115141161411714118141191412014121141221412314124141251412614127141281412914130141311413214133141341413514136141371413814139141401414114142141431414414145141461414714148141491415014151141521415314154141551415614157141581415914160141611416214163141641416514166141671416814169141701417114172141731417414175141761417714178141791418014181141821418314184141851418614187141881418914190141911419214193141941419514196141971419814199142001420114202142031420414205142061420714208142091421014211142121421314214142151421614217142181421914220142211422214223142241422514226142271422814229142301423114232142331423414235142361423714238142391424014241142421424314244142451424614247142481424914250142511425214253142541425514256142571425814259142601426114262142631426414265142661426714268142691427014271142721427314274142751427614277142781427914280142811428214283142841428514286142871428814289142901429114292142931429414295142961429714298142991430014301143021430314304143051430614307143081430914310143111431214313143141431514316143171431814319143201432114322143231432414325143261432714328143291433014331143321433314334143351433614337143381433914340143411434214343143441434514346143471434814349143501435114352143531435414355143561435714358143591436014361143621436314364143651436614367143681436914370143711437214373143741437514376143771437814379143801438114382143831438414385143861438714388143891439014391143921439314394143951439614397143981439914400144011440214403144041440514406144071440814409144101441114412144131441414415144161441714418144191442014421144221442314424144251442614427144281442914430144311443214433144341443514436144371443814439144401444114442144431444414445144461444714448144491445014451144521445314454144551445614457144581445914460144611446214463144641446514466144671446814469144701447114472144731447414475144761447714478144791448014481144821448314484144851448614487144881448914490144911449214493144941449514496144971449814499145001450114502145031450414505145061450714508145091451014511145121451314514145151451614517145181451914520145211452214523145241452514526145271452814529145301453114532145331453414535145361453714538145391454014541145421454314544145451454614547145481454914550145511455214553145541455514556145571455814559145601456114562145631456414565145661456714568145691457014571145721457314574145751457614577145781457914580145811458214583145841458514586145871458814589145901459114592145931459414595145961459714598145991460014601146021460314604146051460614607146081460914610146111461214613146141461514616146171461814619146201462114622146231462414625146261462714628146291463014631146321463314634146351463614637146381463914640146411464214643146441464514646146471464814649146501465114652146531465414655146561465714658146591466014661146621466314664146651466614667146681466914670146711467214673146741467514676146771467814679146801468114682146831468414685146861468714688146891469014691146921469314694146951469614697146981469914700147011470214703147041470514706147071470814709147101471114712147131471414715147161471714718147191472014721147221472314724147251472614727147281472914730147311473214733147341473514736147371473814739147401474114742147431474414745147461474714748147491475014751147521475314754147551475614757147581475914760147611476214763147641476514766147671476814769147701477114772147731477414775147761477714778147791478014781147821478314784147851478614787147881478914790147911479214793147941479514796147971479814799148001480114802148031480414805148061480714808148091481014811148121481314814148151481614817148181481914820148211482214823148241482514826148271482814829148301483114832148331483414835148361483714838148391484014841148421484314844148451484614847148481484914850148511485214853148541485514856148571485814859148601486114862148631486414865148661486714868148691487014871148721487314874148751487614877148781487914880148811488214883148841488514886148871488814889148901489114892148931489414895148961489714898148991490014901149021490314904149051490614907149081490914910149111491214913149141491514916149171491814919149201492114922149231492414925149261492714928149291493014931149321493314934149351493614937149381493914940149411494214943149441494514946149471494814949149501495114952149531495414955149561495714958149591496014961149621496314964149651496614967149681496914970149711497214973149741497514976149771497814979149801498114982149831498414985149861498714988149891499014991149921499314994149951499614997149981499915000150011500215003150041500515006150071500815009150101501115012150131501415015150161501715018150191502015021150221502315024150251502615027150281502915030150311503215033150341503515036150371503815039150401504115042150431504415045150461504715048150491505015051150521505315054150551505615057150581505915060150611506215063150641506515066150671506815069150701507115072150731507415075150761507715078150791508015081150821508315084150851508615087150881508915090150911509215093150941509515096150971509815099151001510115102151031510415105151061510715108151091511015111151121511315114151151511615117151181511915120151211512215123151241512515126151271512815129151301513115132151331513415135151361513715138151391514015141151421514315144151451514615147151481514915150151511515215153151541515515156151571515815159151601516115162151631516415165151661516715168151691517015171151721517315174151751517615177151781517915180151811518215183151841518515186151871518815189151901519115192151931519415195151961519715198151991520015201152021520315204152051520615207152081520915210152111521215213152141521515216152171521815219152201522115222152231522415225152261522715228152291523015231152321523315234152351523615237152381523915240152411524215243152441524515246152471524815249152501525115252152531525415255152561525715258152591526015261152621526315264152651526615267152681526915270152711527215273152741527515276152771527815279152801528115282152831528415285152861528715288152891529015291152921529315294152951529615297152981529915300153011530215303153041530515306153071530815309153101531115312153131531415315153161531715318153191532015321153221532315324153251532615327153281532915330153311533215333153341533515336153371533815339153401534115342153431534415345153461534715348153491535015351153521535315354153551535615357153581535915360153611536215363153641536515366153671536815369153701537115372153731537415375153761537715378153791538015381153821538315384153851538615387153881538915390153911539215393153941539515396153971539815399154001540115402154031540415405154061540715408154091541015411154121541315414154151541615417154181541915420154211542215423154241542515426154271542815429154301543115432154331543415435154361543715438154391544015441154421544315444154451544615447154481544915450154511545215453154541545515456154571545815459154601546115462154631546415465154661546715468154691547015471154721547315474154751547615477154781547915480154811548215483154841548515486154871548815489154901549115492154931549415495154961549715498154991550015501155021550315504155051550615507155081550915510155111551215513155141551515516155171551815519155201552115522155231552415525155261552715528155291553015531155321553315534155351553615537155381553915540155411554215543155441554515546155471554815549155501555115552155531555415555155561555715558155591556015561155621556315564155651556615567155681556915570155711557215573155741557515576155771557815579155801558115582155831558415585155861558715588155891559015591155921559315594155951559615597155981559915600156011560215603156041560515606156071560815609156101561115612156131561415615156161561715618156191562015621156221562315624156251562615627156281562915630156311563215633156341563515636156371563815639156401564115642156431564415645156461564715648156491565015651156521565315654156551565615657156581565915660156611566215663156641566515666156671566815669156701567115672156731567415675156761567715678156791568015681156821568315684156851568615687156881568915690156911569215693156941569515696156971569815699157001570115702157031570415705157061570715708157091571015711157121571315714157151571615717157181571915720157211572215723157241572515726157271572815729157301573115732157331573415735157361573715738157391574015741157421574315744157451574615747157481574915750157511575215753157541575515756157571575815759157601576115762157631576415765157661576715768157691577015771157721577315774157751577615777157781577915780157811578215783157841578515786157871578815789157901579115792157931579415795157961579715798157991580015801158021580315804158051580615807158081580915810158111581215813158141581515816158171581815819158201582115822158231582415825158261582715828158291583015831158321583315834158351583615837158381583915840158411584215843158441584515846158471584815849158501585115852158531585415855158561585715858158591586015861158621586315864158651586615867158681586915870158711587215873158741587515876158771587815879158801588115882158831588415885158861588715888158891589015891158921589315894158951589615897158981589915900159011590215903159041590515906159071590815909159101591115912159131591415915159161591715918159191592015921159221592315924159251592615927159281592915930159311593215933159341593515936159371593815939159401594115942159431594415945159461594715948159491595015951159521595315954159551595615957159581595915960159611596215963159641596515966159671596815969159701597115972159731597415975159761597715978159791598015981159821598315984159851598615987159881598915990159911599215993159941599515996159971599815999160001600116002160031600416005160061600716008160091601016011160121601316014160151601616017160181601916020160211602216023160241602516026160271602816029160301603116032160331603416035160361603716038160391604016041160421604316044160451604616047160481604916050160511605216053160541605516056160571605816059160601606116062160631606416065160661606716068160691607016071160721607316074160751607616077160781607916080160811608216083160841608516086160871608816089160901609116092160931609416095160961609716098160991610016101161021610316104161051610616107161081610916110161111611216113161141611516116161171611816119161201612116122161231612416125161261612716128161291613016131161321613316134161351613616137161381613916140161411614216143161441614516146161471614816149161501615116152161531615416155161561615716158161591616016161161621616316164161651616616167161681616916170161711617216173161741617516176161771617816179161801618116182161831618416185161861618716188161891619016191161921619316194161951619616197161981619916200162011620216203162041620516206162071620816209162101621116212162131621416215162161621716218162191622016221162221622316224162251622616227162281622916230162311623216233162341623516236162371623816239162401624116242162431624416245162461624716248162491625016251162521625316254162551625616257162581625916260162611626216263162641626516266162671626816269162701627116272162731627416275162761627716278162791628016281162821628316284162851628616287162881628916290162911629216293162941629516296162971629816299163001630116302163031630416305163061630716308163091631016311163121631316314163151631616317163181631916320163211632216323163241632516326163271632816329163301633116332163331633416335163361633716338163391634016341163421634316344163451634616347163481634916350163511635216353163541635516356163571635816359163601636116362163631636416365163661636716368163691637016371163721637316374163751637616377163781637916380163811638216383163841638516386163871638816389163901639116392163931639416395163961639716398163991640016401164021640316404164051640616407164081640916410164111641216413164141641516416164171641816419164201642116422164231642416425164261642716428164291643016431164321643316434164351643616437164381643916440164411644216443164441644516446164471644816449164501645116452164531645416455164561645716458164591646016461164621646316464164651646616467164681646916470164711647216473164741647516476164771647816479164801648116482164831648416485164861648716488164891649016491164921649316494164951649616497164981649916500165011650216503165041650516506165071650816509165101651116512165131651416515165161651716518165191652016521165221652316524165251652616527165281652916530165311653216533165341653516536165371653816539165401654116542165431654416545165461654716548165491655016551165521655316554165551655616557165581655916560165611656216563165641656516566165671656816569165701657116572165731657416575165761657716578165791658016581165821658316584165851658616587165881658916590165911659216593165941659516596165971659816599166001660116602166031660416605166061660716608166091661016611166121661316614166151661616617166181661916620166211662216623166241662516626166271662816629166301663116632166331663416635166361663716638166391664016641166421664316644166451664616647166481664916650166511665216653166541665516656166571665816659166601666116662166631666416665166661666716668166691667016671166721667316674166751667616677166781667916680166811668216683166841668516686166871668816689166901669116692166931669416695166961669716698166991670016701167021670316704167051670616707167081670916710167111671216713167141671516716167171671816719167201672116722167231672416725167261672716728167291673016731167321673316734167351673616737167381673916740167411674216743167441674516746167471674816749167501675116752167531675416755167561675716758167591676016761167621676316764167651676616767167681676916770167711677216773167741677516776167771677816779167801678116782167831678416785167861678716788167891679016791167921679316794167951679616797167981679916800168011680216803168041680516806168071680816809168101681116812168131681416815168161681716818168191682016821168221682316824168251682616827168281682916830168311683216833168341683516836168371683816839168401684116842168431684416845168461684716848168491685016851168521685316854168551685616857168581685916860168611686216863168641686516866168671686816869168701687116872168731687416875168761687716878168791688016881168821688316884168851688616887168881688916890168911689216893168941689516896168971689816899169001690116902169031690416905169061690716908169091691016911169121691316914169151691616917169181691916920169211692216923169241692516926169271692816929169301693116932169331693416935169361693716938169391694016941169421694316944169451694616947169481694916950169511695216953169541695516956169571695816959169601696116962169631696416965169661696716968169691697016971169721697316974169751697616977169781697916980169811698216983169841698516986169871698816989169901699116992169931699416995169961699716998169991700017001170021700317004170051700617007170081700917010170111701217013170141701517016170171701817019170201702117022170231702417025170261702717028170291703017031170321703317034170351703617037170381703917040170411704217043170441704517046170471704817049170501705117052170531705417055170561705717058170591706017061170621706317064170651706617067170681706917070170711707217073170741707517076170771707817079170801708117082170831708417085170861708717088170891709017091170921709317094170951709617097170981709917100171011710217103171041710517106171071710817109171101711117112171131711417115171161711717118171191712017121171221712317124171251712617127171281712917130171311713217133171341713517136171371713817139171401714117142171431714417145171461714717148171491715017151171521715317154171551715617157171581715917160171611716217163171641716517166171671716817169171701717117172171731717417175171761717717178171791718017181171821718317184171851718617187171881718917190171911719217193171941719517196171971719817199172001720117202172031720417205172061720717208172091721017211172121721317214172151721617217172181721917220172211722217223172241722517226172271722817229172301723117232172331723417235172361723717238172391724017241172421724317244172451724617247172481724917250172511725217253172541725517256172571725817259172601726117262172631726417265172661726717268172691727017271172721727317274172751727617277172781727917280172811728217283172841728517286172871728817289172901729117292172931729417295172961729717298172991730017301173021730317304173051730617307173081730917310173111731217313173141731517316173171731817319173201732117322173231732417325173261732717328173291733017331173321733317334173351733617337173381733917340173411734217343173441734517346173471734817349173501735117352173531735417355173561735717358173591736017361173621736317364173651736617367173681736917370173711737217373173741737517376173771737817379173801738117382173831738417385173861738717388173891739017391173921739317394173951739617397173981739917400174011740217403174041740517406174071740817409174101741117412174131741417415174161741717418174191742017421174221742317424174251742617427174281742917430174311743217433174341743517436174371743817439174401744117442174431744417445174461744717448174491745017451174521745317454174551745617457174581745917460174611746217463174641746517466174671746817469174701747117472174731747417475174761747717478174791748017481174821748317484174851748617487174881748917490174911749217493174941749517496174971749817499175001750117502175031750417505175061750717508175091751017511175121751317514175151751617517175181751917520175211752217523175241752517526175271752817529175301753117532175331753417535175361753717538175391754017541175421754317544175451754617547175481754917550175511755217553175541755517556175571755817559175601756117562175631756417565175661756717568175691757017571175721757317574175751757617577175781757917580175811758217583175841758517586175871758817589175901759117592175931759417595175961759717598175991760017601176021760317604176051760617607176081760917610176111761217613176141761517616176171761817619176201762117622176231762417625176261762717628176291763017631176321763317634176351763617637176381763917640176411764217643176441764517646176471764817649176501765117652176531765417655176561765717658176591766017661176621766317664176651766617667176681766917670176711767217673176741767517676176771767817679176801768117682176831768417685176861768717688176891769017691176921769317694176951769617697176981769917700177011770217703177041770517706177071770817709177101771117712177131771417715177161771717718177191772017721177221772317724177251772617727177281772917730177311773217733177341773517736177371773817739177401774117742177431774417745177461774717748177491775017751177521775317754177551775617757177581775917760177611776217763177641776517766177671776817769177701777117772177731777417775177761777717778177791778017781177821778317784177851778617787177881778917790177911779217793177941779517796177971779817799178001780117802178031780417805178061780717808178091781017811178121781317814178151781617817178181781917820178211782217823178241782517826178271782817829178301783117832178331783417835178361783717838178391784017841178421784317844178451784617847178481784917850178511785217853178541785517856178571785817859178601786117862178631786417865178661786717868178691787017871178721787317874178751787617877178781787917880178811788217883178841788517886178871788817889178901789117892178931789417895178961789717898178991790017901179021790317904179051790617907179081790917910179111791217913179141791517916179171791817919179201792117922179231792417925179261792717928179291793017931179321793317934179351793617937179381793917940179411794217943179441794517946179471794817949179501795117952179531795417955179561795717958179591796017961179621796317964179651796617967179681796917970179711797217973179741797517976179771797817979179801798117982179831798417985179861798717988179891799017991179921799317994179951799617997179981799918000180011800218003180041800518006180071800818009180101801118012180131801418015180161801718018180191802018021180221802318024180251802618027180281802918030180311803218033180341803518036180371803818039180401804118042180431804418045180461804718048180491805018051180521805318054180551805618057180581805918060180611806218063180641806518066180671806818069180701807118072180731807418075180761807718078180791808018081180821808318084180851808618087180881808918090180911809218093180941809518096180971809818099181001810118102181031810418105181061810718108181091811018111181121811318114181151811618117181181811918120181211812218123181241812518126181271812818129181301813118132181331813418135181361813718138181391814018141181421814318144181451814618147181481814918150181511815218153181541815518156181571815818159181601816118162181631816418165181661816718168181691817018171181721817318174181751817618177181781817918180181811818218183181841818518186181871818818189181901819118192181931819418195181961819718198181991820018201182021820318204182051820618207182081820918210182111821218213182141821518216182171821818219182201822118222182231822418225182261822718228182291823018231182321823318234182351823618237182381823918240182411824218243182441824518246182471824818249182501825118252182531825418255182561825718258182591826018261182621826318264182651826618267182681826918270182711827218273182741827518276182771827818279182801828118282182831828418285182861828718288182891829018291182921829318294182951829618297182981829918300183011830218303183041830518306183071830818309183101831118312183131831418315183161831718318183191832018321183221832318324183251832618327183281832918330183311833218333183341833518336183371833818339183401834118342183431834418345183461834718348183491835018351183521835318354183551835618357183581835918360183611836218363183641836518366183671836818369183701837118372183731837418375183761837718378183791838018381183821838318384183851838618387183881838918390183911839218393183941839518396183971839818399184001840118402184031840418405184061840718408184091841018411184121841318414184151841618417184181841918420184211842218423184241842518426184271842818429184301843118432184331843418435184361843718438184391844018441184421844318444184451844618447184481844918450184511845218453184541845518456184571845818459184601846118462184631846418465184661846718468184691847018471184721847318474184751847618477184781847918480184811848218483184841848518486184871848818489184901849118492184931849418495184961849718498184991850018501185021850318504185051850618507185081850918510185111851218513185141851518516185171851818519185201852118522185231852418525185261852718528185291853018531185321853318534185351853618537185381853918540185411854218543185441854518546185471854818549185501855118552185531855418555185561855718558185591856018561185621856318564185651856618567185681856918570185711857218573185741857518576185771857818579185801858118582185831858418585185861858718588185891859018591185921859318594185951859618597185981859918600186011860218603186041860518606186071860818609186101861118612186131861418615186161861718618186191862018621186221862318624186251862618627186281862918630186311863218633186341863518636186371863818639186401864118642186431864418645186461864718648186491865018651186521865318654186551865618657186581865918660186611866218663186641866518666186671866818669186701867118672186731867418675186761867718678186791868018681186821868318684186851868618687186881868918690186911869218693186941869518696186971869818699187001870118702187031870418705187061870718708187091871018711187121871318714187151871618717187181871918720187211872218723187241872518726187271872818729187301873118732187331873418735187361873718738187391874018741187421874318744187451874618747187481874918750187511875218753187541875518756187571875818759187601876118762187631876418765187661876718768187691877018771187721877318774187751877618777187781877918780187811878218783187841878518786187871878818789187901879118792187931879418795187961879718798187991880018801188021880318804188051880618807188081880918810188111881218813188141881518816188171881818819188201882118822188231882418825188261882718828188291883018831188321883318834188351883618837188381883918840188411884218843188441884518846188471884818849188501885118852188531885418855188561885718858188591886018861188621886318864188651886618867188681886918870188711887218873188741887518876188771887818879188801888118882188831888418885188861888718888188891889018891188921889318894188951889618897188981889918900189011890218903189041890518906189071890818909189101891118912189131891418915189161891718918189191892018921189221892318924189251892618927189281892918930189311893218933189341893518936189371893818939189401894118942189431894418945189461894718948189491895018951189521895318954189551895618957189581895918960189611896218963189641896518966189671896818969189701897118972189731897418975189761897718978189791898018981189821898318984189851898618987189881898918990189911899218993189941899518996189971899818999190001900119002190031900419005190061900719008190091901019011190121901319014190151901619017190181901919020190211902219023190241902519026190271902819029190301903119032190331903419035190361903719038190391904019041190421904319044190451904619047190481904919050190511905219053190541905519056190571905819059190601906119062190631906419065190661906719068190691907019071190721907319074190751907619077190781907919080190811908219083190841908519086190871908819089190901909119092190931909419095190961909719098190991910019101191021910319104191051910619107191081910919110191111911219113191141911519116191171911819119191201912119122191231912419125191261912719128191291913019131191321913319134191351913619137191381913919140191411914219143191441914519146191471914819149191501915119152191531915419155191561915719158191591916019161191621916319164191651916619167191681916919170191711917219173191741917519176191771917819179191801918119182191831918419185191861918719188191891919019191191921919319194191951919619197191981919919200192011920219203192041920519206192071920819209192101921119212192131921419215192161921719218192191922019221192221922319224192251922619227192281922919230192311923219233192341923519236192371923819239192401924119242192431924419245192461924719248192491925019251192521925319254192551925619257192581925919260192611926219263192641926519266192671926819269192701927119272192731927419275192761927719278192791928019281192821928319284192851928619287192881928919290192911929219293192941929519296192971929819299193001930119302193031930419305193061930719308193091931019311193121931319314193151931619317193181931919320193211932219323193241932519326193271932819329193301933119332193331933419335193361933719338193391934019341193421934319344193451934619347193481934919350193511935219353193541935519356193571935819359193601936119362193631936419365193661936719368193691937019371193721937319374193751937619377193781937919380193811938219383193841938519386193871938819389193901939119392193931939419395193961939719398193991940019401194021940319404194051940619407194081940919410194111941219413194141941519416194171941819419194201942119422194231942419425194261942719428194291943019431194321943319434194351943619437194381943919440194411944219443194441944519446194471944819449194501945119452194531945419455194561945719458194591946019461194621946319464194651946619467194681946919470194711947219473194741947519476194771947819479194801948119482194831948419485194861948719488194891949019491194921949319494194951949619497194981949919500195011950219503195041950519506195071950819509195101951119512195131951419515195161951719518195191952019521195221952319524195251952619527195281952919530195311953219533195341953519536195371953819539195401954119542195431954419545195461954719548195491955019551195521955319554195551955619557195581955919560195611956219563195641956519566195671956819569195701957119572195731957419575195761957719578195791958019581195821958319584195851958619587195881958919590195911959219593195941959519596195971959819599196001960119602196031960419605196061960719608196091961019611196121961319614196151961619617196181961919620196211962219623196241962519626196271962819629196301963119632196331963419635196361963719638196391964019641196421964319644196451964619647196481964919650196511965219653196541965519656196571965819659196601966119662196631966419665196661966719668196691967019671196721967319674196751967619677196781967919680196811968219683196841968519686196871968819689196901969119692196931969419695196961969719698196991970019701197021970319704197051970619707197081970919710197111971219713197141971519716197171971819719197201972119722197231972419725197261972719728197291973019731197321973319734197351973619737197381973919740197411974219743197441974519746197471974819749197501975119752197531975419755197561975719758197591976019761197621976319764197651976619767197681976919770197711977219773197741977519776197771977819779197801978119782197831978419785197861978719788197891979019791197921979319794197951979619797197981979919800198011980219803198041980519806198071980819809198101981119812198131981419815198161981719818198191982019821198221982319824198251982619827198281982919830198311983219833198341983519836198371983819839198401984119842198431984419845198461984719848198491985019851198521985319854198551985619857198581985919860198611986219863198641986519866198671986819869198701987119872198731987419875198761987719878198791988019881198821988319884198851988619887198881988919890198911989219893198941989519896198971989819899199001990119902199031990419905199061990719908199091991019911199121991319914199151991619917199181991919920199211992219923199241992519926199271992819929199301993119932199331993419935199361993719938199391994019941199421994319944199451994619947199481994919950199511995219953199541995519956199571995819959199601996119962199631996419965199661996719968199691997019971199721997319974199751997619977199781997919980199811998219983199841998519986199871998819989199901999119992199931999419995199961999719998199992000020001200022000320004200052000620007200082000920010200112001220013200142001520016200172001820019200202002120022200232002420025200262002720028200292003020031200322003320034200352003620037200382003920040200412004220043200442004520046200472004820049200502005120052200532005420055200562005720058200592006020061200622006320064200652006620067200682006920070200712007220073200742007520076200772007820079200802008120082200832008420085200862008720088200892009020091200922009320094200952009620097200982009920100201012010220103201042010520106201072010820109201102011120112201132011420115201162011720118201192012020121201222012320124201252012620127201282012920130201312013220133201342013520136201372013820139201402014120142201432014420145201462014720148201492015020151201522015320154201552015620157201582015920160201612016220163201642016520166201672016820169201702017120172201732017420175201762017720178201792018020181201822018320184201852018620187201882018920190201912019220193201942019520196201972019820199202002020120202202032020420205202062020720208202092021020211202122021320214202152021620217202182021920220202212022220223202242022520226202272022820229202302023120232202332023420235202362023720238202392024020241202422024320244202452024620247202482024920250202512025220253202542025520256202572025820259202602026120262202632026420265202662026720268202692027020271202722027320274202752027620277202782027920280202812028220283202842028520286202872028820289202902029120292202932029420295202962029720298202992030020301203022030320304203052030620307203082030920310203112031220313203142031520316203172031820319203202032120322203232032420325203262032720328203292033020331203322033320334203352033620337203382033920340203412034220343203442034520346203472034820349203502035120352203532035420355203562035720358203592036020361203622036320364203652036620367203682036920370203712037220373203742037520376203772037820379203802038120382203832038420385203862038720388203892039020391203922039320394203952039620397203982039920400204012040220403204042040520406204072040820409204102041120412204132041420415204162041720418204192042020421204222042320424204252042620427204282042920430204312043220433204342043520436204372043820439204402044120442204432044420445204462044720448204492045020451204522045320454204552045620457204582045920460204612046220463204642046520466204672046820469204702047120472204732047420475204762047720478204792048020481204822048320484204852048620487204882048920490204912049220493204942049520496204972049820499205002050120502205032050420505205062050720508205092051020511205122051320514205152051620517205182051920520205212052220523205242052520526205272052820529205302053120532205332053420535205362053720538205392054020541205422054320544205452054620547205482054920550205512055220553205542055520556205572055820559205602056120562205632056420565205662056720568205692057020571205722057320574205752057620577205782057920580205812058220583205842058520586205872058820589205902059120592205932059420595205962059720598205992060020601206022060320604206052060620607206082060920610206112061220613206142061520616206172061820619206202062120622206232062420625206262062720628206292063020631206322063320634206352063620637206382063920640206412064220643206442064520646206472064820649206502065120652206532065420655206562065720658206592066020661206622066320664206652066620667206682066920670206712067220673206742067520676206772067820679206802068120682206832068420685206862068720688206892069020691206922069320694206952069620697206982069920700207012070220703207042070520706207072070820709207102071120712207132071420715207162071720718207192072020721207222072320724207252072620727207282072920730207312073220733207342073520736207372073820739207402074120742207432074420745207462074720748207492075020751207522075320754207552075620757207582075920760207612076220763207642076520766207672076820769207702077120772207732077420775207762077720778207792078020781207822078320784207852078620787207882078920790207912079220793207942079520796207972079820799208002080120802208032080420805208062080720808208092081020811208122081320814208152081620817208182081920820208212082220823208242082520826208272082820829208302083120832208332083420835208362083720838208392084020841208422084320844208452084620847208482084920850208512085220853208542085520856208572085820859208602086120862208632086420865208662086720868208692087020871208722087320874208752087620877208782087920880208812088220883208842088520886208872088820889208902089120892208932089420895208962089720898208992090020901209022090320904209052090620907209082090920910209112091220913209142091520916209172091820919209202092120922209232092420925209262092720928209292093020931209322093320934209352093620937209382093920940209412094220943209442094520946209472094820949209502095120952209532095420955209562095720958209592096020961209622096320964209652096620967209682096920970209712097220973209742097520976209772097820979209802098120982209832098420985209862098720988209892099020991209922099320994209952099620997209982099921000210012100221003210042100521006210072100821009210102101121012210132101421015210162101721018210192102021021210222102321024210252102621027210282102921030210312103221033210342103521036210372103821039210402104121042210432104421045210462104721048210492105021051210522105321054210552105621057210582105921060210612106221063210642106521066210672106821069210702107121072210732107421075210762107721078210792108021081210822108321084210852108621087210882108921090210912109221093210942109521096210972109821099211002110121102211032110421105211062110721108211092111021111211122111321114211152111621117211182111921120211212112221123211242112521126211272112821129211302113121132211332113421135211362113721138211392114021141211422114321144211452114621147211482114921150211512115221153211542115521156211572115821159211602116121162211632116421165211662116721168211692117021171211722117321174211752117621177211782117921180211812118221183211842118521186211872118821189211902119121192211932119421195211962119721198211992120021201212022120321204212052120621207212082120921210212112121221213212142121521216212172121821219212202122121222212232122421225212262122721228212292123021231212322123321234212352123621237212382123921240212412124221243212442124521246212472124821249212502125121252212532125421255212562125721258212592126021261212622126321264212652126621267212682126921270212712127221273212742127521276212772127821279212802128121282212832128421285212862128721288212892129021291212922129321294212952129621297212982129921300213012130221303213042130521306213072130821309213102131121312213132131421315213162131721318213192132021321213222132321324213252132621327213282132921330213312133221333213342133521336213372133821339213402134121342213432134421345213462134721348213492135021351213522135321354213552135621357213582135921360213612136221363213642136521366213672136821369213702137121372213732137421375213762137721378213792138021381213822138321384213852138621387213882138921390213912139221393213942139521396213972139821399214002140121402214032140421405214062140721408214092141021411214122141321414214152141621417214182141921420214212142221423214242142521426214272142821429214302143121432214332143421435214362143721438214392144021441214422144321444214452144621447214482144921450214512145221453214542145521456214572145821459214602146121462214632146421465214662146721468214692147021471214722147321474214752147621477214782147921480214812148221483214842148521486214872148821489214902149121492214932149421495214962149721498214992150021501215022150321504215052150621507215082150921510215112151221513215142151521516215172151821519215202152121522215232152421525215262152721528215292153021531215322153321534215352153621537215382153921540215412154221543215442154521546215472154821549215502155121552215532155421555215562155721558215592156021561215622156321564215652156621567215682156921570215712157221573215742157521576215772157821579215802158121582215832158421585215862158721588215892159021591215922159321594215952159621597215982159921600216012160221603216042160521606216072160821609216102161121612216132161421615216162161721618216192162021621216222162321624216252162621627216282162921630216312163221633216342163521636216372163821639216402164121642216432164421645216462164721648216492165021651216522165321654216552165621657216582165921660216612166221663216642166521666216672166821669216702167121672216732167421675216762167721678216792168021681216822168321684216852168621687216882168921690216912169221693216942169521696216972169821699217002170121702217032170421705217062170721708217092171021711217122171321714217152171621717217182171921720217212172221723217242172521726217272172821729217302173121732217332173421735217362173721738217392174021741217422174321744217452174621747217482174921750217512175221753217542175521756217572175821759217602176121762217632176421765217662176721768217692177021771217722177321774217752177621777217782177921780217812178221783217842178521786217872178821789217902179121792217932179421795217962179721798217992180021801218022180321804218052180621807218082180921810218112181221813218142181521816218172181821819218202182121822218232182421825218262182721828218292183021831218322183321834218352183621837218382183921840218412184221843218442184521846218472184821849218502185121852218532185421855218562185721858218592186021861218622186321864218652186621867218682186921870218712187221873218742187521876218772187821879218802188121882218832188421885218862188721888218892189021891218922189321894218952189621897218982189921900219012190221903219042190521906219072190821909219102191121912219132191421915219162191721918219192192021921219222192321924219252192621927219282192921930219312193221933219342193521936219372193821939219402194121942219432194421945219462194721948219492195021951219522195321954219552195621957219582195921960219612196221963219642196521966219672196821969219702197121972219732197421975219762197721978219792198021981219822198321984219852198621987219882198921990219912199221993219942199521996219972199821999220002200122002220032200422005220062200722008220092201022011220122201322014220152201622017220182201922020220212202222023220242202522026220272202822029220302203122032220332203422035220362203722038220392204022041220422204322044220452204622047220482204922050220512205222053220542205522056220572205822059220602206122062220632206422065220662206722068220692207022071220722207322074220752207622077220782207922080220812208222083220842208522086220872208822089220902209122092220932209422095220962209722098220992210022101221022210322104221052210622107221082210922110221112211222113221142211522116221172211822119221202212122122221232212422125221262212722128221292213022131221322213322134221352213622137221382213922140221412214222143221442214522146221472214822149221502215122152221532215422155221562215722158221592216022161221622216322164221652216622167221682216922170221712217222173221742217522176221772217822179221802218122182221832218422185221862218722188221892219022191221922219322194221952219622197221982219922200222012220222203222042220522206222072220822209222102221122212222132221422215222162221722218222192222022221222222222322224222252222622227222282222922230222312223222233222342223522236222372223822239222402224122242222432224422245222462224722248222492225022251222522225322254222552225622257222582225922260222612226222263222642226522266222672226822269222702227122272222732227422275222762227722278222792228022281222822228322284222852228622287222882228922290222912229222293222942229522296222972229822299223002230122302223032230422305223062230722308223092231022311223122231322314223152231622317223182231922320223212232222323223242232522326223272232822329223302233122332223332233422335223362233722338223392234022341223422234322344223452234622347223482234922350223512235222353223542235522356223572235822359223602236122362223632236422365223662236722368223692237022371223722237322374223752237622377223782237922380223812238222383223842238522386223872238822389223902239122392223932239422395223962239722398223992240022401224022240322404224052240622407224082240922410224112241222413224142241522416224172241822419224202242122422224232242422425224262242722428224292243022431224322243322434224352243622437224382243922440224412244222443224442244522446224472244822449224502245122452224532245422455224562245722458224592246022461224622246322464224652246622467224682246922470224712247222473224742247522476224772247822479224802248122482224832248422485224862248722488224892249022491224922249322494224952249622497224982249922500225012250222503225042250522506225072250822509225102251122512225132251422515225162251722518225192252022521225222252322524225252252622527225282252922530225312253222533225342253522536225372253822539225402254122542225432254422545225462254722548225492255022551225522255322554225552255622557225582255922560225612256222563225642256522566225672256822569225702257122572225732257422575225762257722578225792258022581225822258322584225852258622587225882258922590225912259222593225942259522596225972259822599226002260122602226032260422605226062260722608226092261022611226122261322614226152261622617226182261922620226212262222623226242262522626226272262822629226302263122632226332263422635226362263722638226392264022641226422264322644226452264622647226482264922650226512265222653226542265522656226572265822659226602266122662226632266422665226662266722668226692267022671226722267322674226752267622677226782267922680226812268222683226842268522686226872268822689226902269122692226932269422695226962269722698226992270022701227022270322704227052270622707227082270922710227112271222713227142271522716227172271822719227202272122722227232272422725227262272722728227292273022731227322273322734227352273622737227382273922740227412274222743227442274522746227472274822749227502275122752227532275422755227562275722758227592276022761227622276322764227652276622767227682276922770227712277222773227742277522776227772277822779227802278122782227832278422785227862278722788227892279022791227922279322794227952279622797227982279922800228012280222803228042280522806228072280822809228102281122812228132281422815228162281722818228192282022821228222282322824228252282622827228282282922830228312283222833228342283522836228372283822839228402284122842228432284422845228462284722848228492285022851228522285322854228552285622857228582285922860228612286222863228642286522866228672286822869228702287122872228732287422875228762287722878228792288022881228822288322884228852288622887228882288922890228912289222893228942289522896228972289822899229002290122902229032290422905229062290722908229092291022911229122291322914229152291622917229182291922920229212292222923229242292522926229272292822929229302293122932229332293422935229362293722938229392294022941229422294322944229452294622947229482294922950229512295222953229542295522956229572295822959229602296122962229632296422965229662296722968229692297022971229722297322974229752297622977229782297922980229812298222983229842298522986229872298822989229902299122992229932299422995229962299722998229992300023001230022300323004230052300623007230082300923010230112301223013230142301523016230172301823019230202302123022230232302423025230262302723028230292303023031230322303323034230352303623037230382303923040230412304223043230442304523046230472304823049230502305123052230532305423055230562305723058230592306023061230622306323064230652306623067230682306923070230712307223073230742307523076230772307823079230802308123082230832308423085230862308723088230892309023091230922309323094230952309623097230982309923100231012310223103231042310523106231072310823109231102311123112231132311423115231162311723118231192312023121231222312323124231252312623127231282312923130231312313223133231342313523136231372313823139231402314123142231432314423145231462314723148231492315023151231522315323154231552315623157231582315923160231612316223163231642316523166231672316823169231702317123172231732317423175231762317723178231792318023181231822318323184231852318623187231882318923190231912319223193231942319523196231972319823199232002320123202232032320423205232062320723208232092321023211232122321323214232152321623217232182321923220232212322223223232242322523226232272322823229232302323123232232332323423235232362323723238232392324023241232422324323244232452324623247232482324923250232512325223253232542325523256232572325823259232602326123262232632326423265232662326723268232692327023271232722327323274232752327623277232782327923280232812328223283232842328523286232872328823289232902329123292232932329423295232962329723298232992330023301233022330323304233052330623307233082330923310233112331223313233142331523316233172331823319233202332123322233232332423325233262332723328233292333023331233322333323334233352333623337233382333923340233412334223343233442334523346233472334823349233502335123352233532335423355233562335723358233592336023361233622336323364233652336623367233682336923370233712337223373233742337523376233772337823379233802338123382233832338423385233862338723388233892339023391233922339323394233952339623397233982339923400234012340223403234042340523406234072340823409234102341123412234132341423415234162341723418234192342023421234222342323424234252342623427234282342923430234312343223433234342343523436234372343823439234402344123442234432344423445234462344723448234492345023451234522345323454234552345623457234582345923460234612346223463234642346523466234672346823469234702347123472234732347423475234762347723478234792348023481234822348323484234852348623487234882348923490234912349223493234942349523496234972349823499235002350123502235032350423505235062350723508235092351023511235122351323514235152351623517235182351923520235212352223523235242352523526235272352823529235302353123532235332353423535235362353723538235392354023541235422354323544235452354623547235482354923550235512355223553235542355523556235572355823559235602356123562235632356423565235662356723568235692357023571235722357323574235752357623577235782357923580235812358223583235842358523586235872358823589235902359123592235932359423595235962359723598235992360023601236022360323604236052360623607236082360923610236112361223613236142361523616236172361823619236202362123622236232362423625236262362723628236292363023631236322363323634236352363623637236382363923640236412364223643236442364523646236472364823649236502365123652236532365423655236562365723658236592366023661236622366323664236652366623667236682366923670236712367223673236742367523676236772367823679236802368123682236832368423685236862368723688236892369023691236922369323694236952369623697236982369923700237012370223703237042370523706237072370823709237102371123712237132371423715237162371723718237192372023721237222372323724237252372623727237282372923730237312373223733237342373523736237372373823739237402374123742237432374423745237462374723748237492375023751237522375323754237552375623757237582375923760237612376223763237642376523766237672376823769237702377123772237732377423775237762377723778237792378023781237822378323784237852378623787237882378923790237912379223793237942379523796237972379823799238002380123802238032380423805238062380723808238092381023811238122381323814238152381623817238182381923820238212382223823238242382523826238272382823829238302383123832238332383423835238362383723838238392384023841238422384323844238452384623847238482384923850238512385223853238542385523856238572385823859238602386123862238632386423865238662386723868238692387023871238722387323874238752387623877238782387923880238812388223883238842388523886238872388823889238902389123892238932389423895238962389723898238992390023901239022390323904239052390623907239082390923910239112391223913239142391523916239172391823919239202392123922239232392423925239262392723928239292393023931239322393323934239352393623937239382393923940239412394223943239442394523946239472394823949239502395123952239532395423955239562395723958239592396023961239622396323964239652396623967239682396923970239712397223973239742397523976239772397823979239802398123982239832398423985239862398723988239892399023991239922399323994239952399623997239982399924000240012400224003240042400524006240072400824009240102401124012240132401424015240162401724018240192402024021240222402324024240252402624027240282402924030240312403224033240342403524036240372403824039240402404124042240432404424045240462404724048240492405024051240522405324054240552405624057240582405924060240612406224063240642406524066240672406824069240702407124072240732407424075240762407724078240792408024081240822408324084240852408624087240882408924090240912409224093240942409524096240972409824099241002410124102241032410424105241062410724108241092411024111241122411324114241152411624117241182411924120241212412224123241242412524126241272412824129241302413124132241332413424135241362413724138241392414024141241422414324144241452414624147241482414924150241512415224153241542415524156241572415824159241602416124162241632416424165241662416724168241692417024171241722417324174241752417624177241782417924180241812418224183241842418524186241872418824189241902419124192241932419424195241962419724198241992420024201242022420324204242052420624207242082420924210242112421224213242142421524216242172421824219242202422124222242232422424225242262422724228242292423024231242322423324234242352423624237242382423924240242412424224243242442424524246242472424824249242502425124252242532425424255242562425724258242592426024261242622426324264242652426624267242682426924270242712427224273242742427524276242772427824279242802428124282242832428424285242862428724288242892429024291242922429324294242952429624297242982429924300243012430224303243042430524306243072430824309243102431124312243132431424315243162431724318243192432024321243222432324324243252432624327243282432924330243312433224333243342433524336243372433824339243402434124342243432434424345243462434724348243492435024351243522435324354243552435624357243582435924360243612436224363243642436524366243672436824369243702437124372243732437424375243762437724378243792438024381243822438324384243852438624387243882438924390243912439224393243942439524396243972439824399244002440124402244032440424405244062440724408244092441024411244122441324414244152441624417244182441924420244212442224423244242442524426244272442824429244302443124432244332443424435244362443724438244392444024441244422444324444244452444624447244482444924450244512445224453244542445524456244572445824459244602446124462244632446424465244662446724468244692447024471244722447324474244752447624477244782447924480244812448224483244842448524486244872448824489244902449124492244932449424495244962449724498244992450024501245022450324504245052450624507245082450924510245112451224513245142451524516245172451824519245202452124522245232452424525245262452724528245292453024531245322453324534245352453624537245382453924540245412454224543245442454524546245472454824549245502455124552245532455424555245562455724558245592456024561245622456324564245652456624567245682456924570245712457224573245742457524576245772457824579245802458124582245832458424585245862458724588245892459024591245922459324594245952459624597245982459924600246012460224603246042460524606246072460824609246102461124612246132461424615246162461724618246192462024621246222462324624246252462624627246282462924630246312463224633246342463524636246372463824639246402464124642246432464424645246462464724648246492465024651246522465324654246552465624657246582465924660246612466224663246642466524666246672466824669246702467124672246732467424675246762467724678246792468024681246822468324684246852468624687246882468924690246912469224693246942469524696246972469824699247002470124702247032470424705247062470724708247092471024711247122471324714247152471624717247182471924720247212472224723247242472524726247272472824729247302473124732247332473424735247362473724738247392474024741247422474324744247452474624747247482474924750247512475224753247542475524756247572475824759247602476124762247632476424765247662476724768247692477024771247722477324774247752477624777247782477924780247812478224783247842478524786247872478824789247902479124792247932479424795247962479724798247992480024801248022480324804248052480624807248082480924810248112481224813248142481524816248172481824819248202482124822248232482424825248262482724828248292483024831248322483324834248352483624837248382483924840248412484224843248442484524846248472484824849248502485124852248532485424855248562485724858248592486024861248622486324864248652486624867248682486924870248712487224873248742487524876248772487824879248802488124882248832488424885248862488724888248892489024891248922489324894248952489624897248982489924900249012490224903249042490524906249072490824909249102491124912249132491424915249162491724918249192492024921249222492324924249252492624927249282492924930249312493224933249342493524936249372493824939249402494124942249432494424945249462494724948249492495024951249522495324954249552495624957249582495924960249612496224963249642496524966249672496824969249702497124972249732497424975249762497724978249792498024981249822498324984249852498624987249882498924990249912499224993249942499524996249972499824999250002500125002250032500425005250062500725008250092501025011250122501325014250152501625017250182501925020250212502225023250242502525026250272502825029250302503125032250332503425035250362503725038250392504025041250422504325044250452504625047250482504925050250512505225053250542505525056250572505825059250602506125062250632506425065250662506725068250692507025071250722507325074250752507625077250782507925080250812508225083250842508525086250872508825089250902509125092250932509425095250962509725098250992510025101251022510325104251052510625107251082510925110251112511225113251142511525116251172511825119251202512125122251232512425125251262512725128251292513025131251322513325134251352513625137251382513925140251412514225143251442514525146251472514825149251502515125152251532515425155251562515725158251592516025161251622516325164251652516625167251682516925170251712517225173251742517525176251772517825179251802518125182251832518425185251862518725188251892519025191251922519325194251952519625197251982519925200252012520225203252042520525206252072520825209252102521125212252132521425215252162521725218252192522025221252222522325224252252522625227252282522925230252312523225233252342523525236252372523825239252402524125242252432524425245252462524725248252492525025251252522525325254252552525625257252582525925260252612526225263252642526525266252672526825269252702527125272252732527425275252762527725278252792528025281252822528325284252852528625287252882528925290252912529225293252942529525296252972529825299253002530125302253032530425305253062530725308253092531025311253122531325314253152531625317253182531925320253212532225323253242532525326253272532825329253302533125332253332533425335253362533725338253392534025341253422534325344253452534625347253482534925350253512535225353253542535525356253572535825359253602536125362253632536425365253662536725368253692537025371253722537325374253752537625377253782537925380253812538225383253842538525386253872538825389253902539125392253932539425395253962539725398253992540025401254022540325404254052540625407254082540925410254112541225413254142541525416254172541825419254202542125422254232542425425254262542725428254292543025431254322543325434254352543625437254382543925440254412544225443254442544525446254472544825449254502545125452254532545425455254562545725458254592546025461254622546325464254652546625467254682546925470254712547225473254742547525476254772547825479254802548125482254832548425485254862548725488254892549025491254922549325494254952549625497254982549925500255012550225503255042550525506255072550825509255102551125512255132551425515255162551725518255192552025521255222552325524255252552625527255282552925530255312553225533255342553525536255372553825539255402554125542255432554425545255462554725548255492555025551255522555325554255552555625557255582555925560255612556225563255642556525566255672556825569255702557125572255732557425575255762557725578255792558025581255822558325584255852558625587255882558925590255912559225593255942559525596255972559825599256002560125602256032560425605256062560725608256092561025611256122561325614256152561625617256182561925620256212562225623256242562525626256272562825629256302563125632256332563425635256362563725638256392564025641256422564325644256452564625647256482564925650256512565225653256542565525656256572565825659256602566125662256632566425665256662566725668256692567025671256722567325674256752567625677256782567925680256812568225683256842568525686256872568825689256902569125692256932569425695256962569725698256992570025701257022570325704257052570625707257082570925710257112571225713257142571525716257172571825719257202572125722257232572425725257262572725728257292573025731257322573325734257352573625737257382573925740257412574225743257442574525746257472574825749257502575125752257532575425755257562575725758257592576025761257622576325764257652576625767257682576925770257712577225773257742577525776257772577825779257802578125782257832578425785257862578725788257892579025791257922579325794257952579625797257982579925800258012580225803258042580525806258072580825809258102581125812258132581425815258162581725818258192582025821258222582325824258252582625827258282582925830258312583225833258342583525836258372583825839258402584125842258432584425845258462584725848258492585025851258522585325854258552585625857258582585925860258612586225863258642586525866258672586825869258702587125872258732587425875258762587725878258792588025881258822588325884258852588625887258882588925890258912589225893258942589525896258972589825899259002590125902259032590425905259062590725908259092591025911259122591325914259152591625917259182591925920259212592225923259242592525926259272592825929259302593125932259332593425935259362593725938259392594025941259422594325944259452594625947259482594925950259512595225953259542595525956259572595825959259602596125962259632596425965259662596725968259692597025971259722597325974259752597625977259782597925980259812598225983259842598525986259872598825989259902599125992259932599425995259962599725998259992600026001260022600326004260052600626007260082600926010260112601226013260142601526016260172601826019260202602126022260232602426025260262602726028260292603026031260322603326034260352603626037260382603926040260412604226043260442604526046260472604826049260502605126052260532605426055260562605726058260592606026061260622606326064260652606626067260682606926070260712607226073260742607526076260772607826079260802608126082260832608426085260862608726088260892609026091260922609326094260952609626097260982609926100261012610226103261042610526106261072610826109261102611126112261132611426115261162611726118261192612026121261222612326124261252612626127261282612926130261312613226133261342613526136261372613826139261402614126142261432614426145261462614726148261492615026151261522615326154261552615626157261582615926160261612616226163261642616526166261672616826169261702617126172261732617426175261762617726178261792618026181261822618326184261852618626187261882618926190261912619226193261942619526196261972619826199262002620126202262032620426205262062620726208262092621026211262122621326214262152621626217262182621926220262212622226223262242622526226262272622826229262302623126232262332623426235262362623726238262392624026241262422624326244262452624626247262482624926250262512625226253262542625526256262572625826259262602626126262262632626426265262662626726268262692627026271262722627326274262752627626277262782627926280262812628226283262842628526286262872628826289262902629126292262932629426295262962629726298262992630026301263022630326304263052630626307263082630926310263112631226313263142631526316263172631826319263202632126322263232632426325263262632726328263292633026331263322633326334263352633626337263382633926340263412634226343263442634526346263472634826349263502635126352263532635426355263562635726358263592636026361263622636326364263652636626367263682636926370263712637226373263742637526376263772637826379263802638126382263832638426385263862638726388263892639026391263922639326394263952639626397263982639926400264012640226403264042640526406264072640826409264102641126412264132641426415264162641726418264192642026421264222642326424264252642626427264282642926430264312643226433264342643526436264372643826439264402644126442264432644426445264462644726448264492645026451264522645326454264552645626457264582645926460264612646226463264642646526466264672646826469264702647126472264732647426475264762647726478264792648026481264822648326484264852648626487264882648926490264912649226493264942649526496264972649826499265002650126502265032650426505265062650726508265092651026511265122651326514265152651626517265182651926520265212652226523265242652526526265272652826529265302653126532265332653426535265362653726538265392654026541265422654326544265452654626547265482654926550265512655226553265542655526556265572655826559265602656126562265632656426565265662656726568265692657026571265722657326574265752657626577265782657926580265812658226583265842658526586265872658826589265902659126592265932659426595265962659726598265992660026601266022660326604266052660626607266082660926610266112661226613266142661526616266172661826619266202662126622266232662426625266262662726628266292663026631266322663326634266352663626637266382663926640266412664226643266442664526646266472664826649266502665126652266532665426655266562665726658266592666026661266622666326664266652666626667266682666926670266712667226673266742667526676266772667826679266802668126682266832668426685266862668726688266892669026691266922669326694266952669626697266982669926700267012670226703267042670526706267072670826709267102671126712267132671426715267162671726718267192672026721267222672326724267252672626727267282672926730267312673226733267342673526736267372673826739267402674126742267432674426745267462674726748267492675026751267522675326754267552675626757267582675926760267612676226763267642676526766267672676826769267702677126772267732677426775267762677726778267792678026781267822678326784267852678626787267882678926790267912679226793267942679526796267972679826799268002680126802268032680426805268062680726808268092681026811268122681326814268152681626817268182681926820268212682226823268242682526826268272682826829268302683126832268332683426835268362683726838268392684026841268422684326844268452684626847268482684926850268512685226853268542685526856268572685826859268602686126862268632686426865268662686726868268692687026871268722687326874268752687626877268782687926880268812688226883268842688526886268872688826889268902689126892268932689426895268962689726898268992690026901269022690326904269052690626907269082690926910269112691226913269142691526916269172691826919269202692126922269232692426925269262692726928269292693026931269322693326934269352693626937269382693926940269412694226943269442694526946269472694826949269502695126952269532695426955269562695726958269592696026961269622696326964269652696626967269682696926970269712697226973269742697526976269772697826979269802698126982269832698426985269862698726988269892699026991269922699326994269952699626997269982699927000270012700227003270042700527006270072700827009270102701127012270132701427015270162701727018270192702027021270222702327024270252702627027270282702927030270312703227033270342703527036270372703827039270402704127042270432704427045270462704727048270492705027051270522705327054270552705627057270582705927060270612706227063270642706527066270672706827069270702707127072270732707427075270762707727078270792708027081270822708327084270852708627087270882708927090270912709227093270942709527096270972709827099271002710127102271032710427105271062710727108271092711027111271122711327114271152711627117271182711927120271212712227123271242712527126271272712827129271302713127132271332713427135271362713727138271392714027141271422714327144271452714627147271482714927150271512715227153271542715527156271572715827159271602716127162271632716427165271662716727168271692717027171271722717327174271752717627177271782717927180271812718227183271842718527186271872718827189271902719127192271932719427195271962719727198271992720027201272022720327204272052720627207272082720927210272112721227213272142721527216272172721827219272202722127222272232722427225272262722727228272292723027231272322723327234272352723627237272382723927240272412724227243272442724527246272472724827249272502725127252272532725427255272562725727258272592726027261272622726327264272652726627267272682726927270272712727227273272742727527276272772727827279272802728127282272832728427285272862728727288272892729027291272922729327294272952729627297272982729927300273012730227303273042730527306273072730827309273102731127312273132731427315273162731727318273192732027321273222732327324273252732627327273282732927330273312733227333273342733527336273372733827339273402734127342273432734427345273462734727348273492735027351273522735327354273552735627357273582735927360273612736227363273642736527366273672736827369273702737127372273732737427375273762737727378273792738027381273822738327384273852738627387273882738927390273912739227393273942739527396273972739827399274002740127402274032740427405274062740727408274092741027411274122741327414274152741627417274182741927420274212742227423274242742527426274272742827429274302743127432274332743427435274362743727438274392744027441274422744327444274452744627447274482744927450274512745227453274542745527456274572745827459274602746127462274632746427465274662746727468274692747027471274722747327474274752747627477274782747927480274812748227483274842748527486274872748827489274902749127492274932749427495274962749727498274992750027501275022750327504275052750627507275082750927510275112751227513275142751527516275172751827519275202752127522275232752427525275262752727528275292753027531275322753327534275352753627537275382753927540275412754227543275442754527546275472754827549275502755127552275532755427555275562755727558275592756027561275622756327564275652756627567275682756927570275712757227573275742757527576275772757827579275802758127582275832758427585275862758727588275892759027591275922759327594275952759627597275982759927600276012760227603276042760527606276072760827609276102761127612276132761427615276162761727618276192762027621276222762327624276252762627627276282762927630276312763227633276342763527636276372763827639276402764127642276432764427645276462764727648276492765027651276522765327654276552765627657276582765927660276612766227663276642766527666276672766827669276702767127672276732767427675276762767727678276792768027681276822768327684276852768627687276882768927690276912769227693276942769527696276972769827699277002770127702277032770427705277062770727708277092771027711277122771327714277152771627717277182771927720277212772227723277242772527726277272772827729277302773127732277332773427735277362773727738277392774027741277422774327744277452774627747277482774927750277512775227753277542775527756277572775827759277602776127762277632776427765277662776727768277692777027771277722777327774277752777627777277782777927780277812778227783277842778527786277872778827789277902779127792277932779427795277962779727798277992780027801278022780327804278052780627807278082780927810278112781227813278142781527816278172781827819278202782127822278232782427825278262782727828278292783027831278322783327834278352783627837278382783927840278412784227843278442784527846278472784827849278502785127852278532785427855278562785727858278592786027861278622786327864278652786627867278682786927870278712787227873278742787527876278772787827879278802788127882278832788427885278862788727888278892789027891278922789327894278952789627897278982789927900279012790227903279042790527906279072790827909279102791127912279132791427915279162791727918279192792027921279222792327924279252792627927279282792927930279312793227933279342793527936279372793827939279402794127942279432794427945279462794727948279492795027951279522795327954279552795627957279582795927960279612796227963279642796527966279672796827969279702797127972279732797427975279762797727978279792798027981279822798327984279852798627987279882798927990279912799227993279942799527996279972799827999280002800128002280032800428005280062800728008280092801028011280122801328014280152801628017280182801928020280212802228023280242802528026280272802828029280302803128032280332803428035280362803728038280392804028041280422804328044280452804628047280482804928050280512805228053280542805528056280572805828059280602806128062280632806428065280662806728068280692807028071280722807328074280752807628077280782807928080280812808228083280842808528086280872808828089280902809128092280932809428095280962809728098280992810028101281022810328104281052810628107281082810928110281112811228113281142811528116281172811828119281202812128122281232812428125281262812728128281292813028131281322813328134281352813628137281382813928140281412814228143281442814528146281472814828149281502815128152281532815428155281562815728158281592816028161281622816328164281652816628167281682816928170281712817228173281742817528176281772817828179281802818128182281832818428185281862818728188281892819028191281922819328194281952819628197281982819928200282012820228203282042820528206282072820828209282102821128212282132821428215282162821728218282192822028221282222822328224282252822628227282282822928230282312823228233282342823528236282372823828239282402824128242282432824428245282462824728248282492825028251282522825328254282552825628257282582825928260282612826228263282642826528266282672826828269282702827128272282732827428275282762827728278282792828028281282822828328284282852828628287282882828928290282912829228293282942829528296282972829828299283002830128302283032830428305283062830728308283092831028311283122831328314283152831628317283182831928320283212832228323283242832528326283272832828329283302833128332283332833428335283362833728338283392834028341283422834328344283452834628347283482834928350283512835228353283542835528356283572835828359283602836128362283632836428365283662836728368283692837028371283722837328374283752837628377283782837928380283812838228383283842838528386283872838828389283902839128392283932839428395283962839728398283992840028401284022840328404284052840628407284082840928410284112841228413284142841528416284172841828419284202842128422284232842428425284262842728428284292843028431284322843328434284352843628437284382843928440284412844228443284442844528446284472844828449284502845128452284532845428455284562845728458284592846028461284622846328464284652846628467284682846928470284712847228473284742847528476284772847828479284802848128482284832848428485284862848728488284892849028491284922849328494284952849628497284982849928500285012850228503285042850528506285072850828509285102851128512285132851428515285162851728518285192852028521285222852328524285252852628527285282852928530285312853228533285342853528536285372853828539285402854128542285432854428545285462854728548285492855028551285522855328554285552855628557285582855928560285612856228563285642856528566285672856828569285702857128572285732857428575285762857728578285792858028581285822858328584285852858628587285882858928590285912859228593285942859528596285972859828599286002860128602286032860428605286062860728608286092861028611286122861328614286152861628617286182861928620286212862228623286242862528626286272862828629286302863128632286332863428635286362863728638286392864028641286422864328644286452864628647286482864928650286512865228653286542865528656286572865828659286602866128662286632866428665286662866728668286692867028671286722867328674286752867628677286782867928680286812868228683286842868528686286872868828689286902869128692286932869428695286962869728698286992870028701287022870328704287052870628707287082870928710287112871228713287142871528716287172871828719287202872128722287232872428725287262872728728287292873028731287322873328734287352873628737287382873928740287412874228743287442874528746287472874828749287502875128752287532875428755287562875728758287592876028761287622876328764287652876628767287682876928770287712877228773287742877528776287772877828779287802878128782287832878428785287862878728788287892879028791287922879328794287952879628797287982879928800288012880228803288042880528806288072880828809288102881128812288132881428815288162881728818288192882028821288222882328824288252882628827288282882928830288312883228833288342883528836288372883828839288402884128842288432884428845288462884728848288492885028851288522885328854288552885628857288582885928860288612886228863288642886528866288672886828869288702887128872288732887428875288762887728878288792888028881288822888328884288852888628887288882888928890288912889228893288942889528896288972889828899289002890128902289032890428905289062890728908289092891028911289122891328914289152891628917289182891928920289212892228923289242892528926289272892828929289302893128932289332893428935289362893728938289392894028941289422894328944289452894628947289482894928950289512895228953289542895528956289572895828959289602896128962289632896428965289662896728968289692897028971289722897328974289752897628977289782897928980289812898228983289842898528986289872898828989289902899128992289932899428995289962899728998289992900029001290022900329004290052900629007290082900929010290112901229013290142901529016290172901829019290202902129022290232902429025290262902729028290292903029031290322903329034290352903629037290382903929040290412904229043290442904529046290472904829049290502905129052290532905429055290562905729058290592906029061290622906329064290652906629067290682906929070290712907229073290742907529076290772907829079290802908129082290832908429085290862908729088290892909029091290922909329094290952909629097290982909929100291012910229103291042910529106291072910829109291102911129112291132911429115291162911729118291192912029121291222912329124291252912629127291282912929130291312913229133291342913529136291372913829139291402914129142291432914429145291462914729148291492915029151291522915329154291552915629157291582915929160291612916229163291642916529166291672916829169291702917129172291732917429175291762917729178291792918029181291822918329184291852918629187291882918929190291912919229193291942919529196291972919829199292002920129202292032920429205292062920729208292092921029211292122921329214292152921629217292182921929220292212922229223292242922529226292272922829229292302923129232292332923429235292362923729238292392924029241292422924329244292452924629247292482924929250292512925229253292542925529256292572925829259292602926129262292632926429265292662926729268292692927029271292722927329274292752927629277292782927929280292812928229283292842928529286292872928829289292902929129292292932929429295292962929729298292992930029301293022930329304293052930629307293082930929310293112931229313293142931529316293172931829319293202932129322293232932429325293262932729328293292933029331293322933329334293352933629337293382933929340293412934229343293442934529346293472934829349293502935129352293532935429355293562935729358293592936029361293622936329364293652936629367293682936929370293712937229373293742937529376293772937829379293802938129382293832938429385293862938729388293892939029391293922939329394293952939629397293982939929400294012940229403294042940529406294072940829409294102941129412294132941429415294162941729418294192942029421294222942329424294252942629427294282942929430294312943229433294342943529436294372943829439294402944129442294432944429445294462944729448294492945029451294522945329454294552945629457294582945929460294612946229463294642946529466294672946829469294702947129472294732947429475294762947729478294792948029481294822948329484294852948629487294882948929490294912949229493294942949529496294972949829499295002950129502295032950429505295062950729508295092951029511295122951329514295152951629517295182951929520295212952229523295242952529526295272952829529295302953129532295332953429535295362953729538295392954029541295422954329544295452954629547295482954929550295512955229553295542955529556295572955829559295602956129562295632956429565295662956729568295692957029571295722957329574295752957629577295782957929580295812958229583295842958529586295872958829589295902959129592295932959429595295962959729598295992960029601296022960329604296052960629607296082960929610296112961229613296142961529616296172961829619296202962129622296232962429625296262962729628296292963029631296322963329634296352963629637296382963929640296412964229643296442964529646296472964829649296502965129652296532965429655296562965729658296592966029661296622966329664296652966629667296682966929670296712967229673296742967529676296772967829679296802968129682296832968429685296862968729688296892969029691296922969329694296952969629697296982969929700297012970229703297042970529706297072970829709297102971129712297132971429715297162971729718297192972029721297222972329724297252972629727297282972929730297312973229733297342973529736297372973829739297402974129742297432974429745297462974729748297492975029751297522975329754297552975629757297582975929760297612976229763297642976529766297672976829769297702977129772297732977429775297762977729778297792978029781297822978329784297852978629787297882978929790297912979229793297942979529796297972979829799298002980129802298032980429805298062980729808298092981029811298122981329814298152981629817298182981929820298212982229823298242982529826298272982829829298302983129832298332983429835298362983729838298392984029841298422984329844298452984629847298482984929850298512985229853298542985529856298572985829859298602986129862298632986429865298662986729868298692987029871298722987329874298752987629877298782987929880298812988229883298842988529886298872988829889298902989129892298932989429895298962989729898298992990029901299022990329904299052990629907299082990929910299112991229913299142991529916299172991829919299202992129922299232992429925299262992729928299292993029931299322993329934299352993629937299382993929940299412994229943299442994529946299472994829949299502995129952299532995429955299562995729958299592996029961299622996329964299652996629967299682996929970299712997229973299742997529976299772997829979299802998129982299832998429985299862998729988299892999029991299922999329994299952999629997299982999930000300013000230003300043000530006300073000830009300103001130012300133001430015300163001730018300193002030021300223002330024300253002630027300283002930030300313003230033300343003530036300373003830039300403004130042300433004430045300463004730048300493005030051300523005330054300553005630057300583005930060300613006230063300643006530066300673006830069300703007130072300733007430075300763007730078300793008030081300823008330084300853008630087300883008930090300913009230093300943009530096300973009830099301003010130102301033010430105301063010730108301093011030111301123011330114301153011630117301183011930120301213012230123301243012530126301273012830129301303013130132301333013430135301363013730138301393014030141301423014330144301453014630147301483014930150301513015230153301543015530156301573015830159301603016130162301633016430165301663016730168301693017030171301723017330174301753017630177301783017930180301813018230183301843018530186301873018830189301903019130192301933019430195301963019730198301993020030201302023020330204302053020630207302083020930210302113021230213302143021530216302173021830219302203022130222302233022430225302263022730228302293023030231302323023330234302353023630237302383023930240302413024230243302443024530246302473024830249302503025130252302533025430255302563025730258302593026030261302623026330264302653026630267302683026930270302713027230273302743027530276302773027830279302803028130282302833028430285302863028730288302893029030291302923029330294302953029630297302983029930300303013030230303303043030530306303073030830309303103031130312303133031430315303163031730318303193032030321303223032330324303253032630327303283032930330303313033230333303343033530336303373033830339303403034130342303433034430345303463034730348303493035030351303523035330354303553035630357303583035930360303613036230363303643036530366303673036830369303703037130372303733037430375303763037730378303793038030381303823038330384303853038630387303883038930390303913039230393303943039530396303973039830399304003040130402304033040430405304063040730408304093041030411304123041330414304153041630417304183041930420304213042230423304243042530426304273042830429304303043130432304333043430435304363043730438304393044030441304423044330444304453044630447304483044930450304513045230453304543045530456304573045830459304603046130462304633046430465304663046730468304693047030471304723047330474304753047630477304783047930480304813048230483304843048530486304873048830489304903049130492304933049430495304963049730498304993050030501305023050330504305053050630507305083050930510305113051230513305143051530516305173051830519305203052130522305233052430525305263052730528305293053030531305323053330534305353053630537305383053930540305413054230543305443054530546305473054830549305503055130552305533055430555305563055730558305593056030561305623056330564305653056630567305683056930570305713057230573305743057530576305773057830579305803058130582305833058430585305863058730588305893059030591305923059330594305953059630597305983059930600306013060230603306043060530606306073060830609306103061130612306133061430615306163061730618306193062030621306223062330624306253062630627306283062930630306313063230633306343063530636306373063830639306403064130642306433064430645306463064730648306493065030651306523065330654306553065630657306583065930660306613066230663306643066530666306673066830669306703067130672306733067430675306763067730678306793068030681306823068330684306853068630687306883068930690306913069230693306943069530696306973069830699307003070130702307033070430705307063070730708307093071030711307123071330714307153071630717307183071930720307213072230723307243072530726307273072830729307303073130732307333073430735307363073730738307393074030741307423074330744307453074630747307483074930750307513075230753307543075530756307573075830759307603076130762307633076430765307663076730768307693077030771307723077330774307753077630777307783077930780307813078230783307843078530786307873078830789307903079130792307933079430795307963079730798307993080030801308023080330804308053080630807308083080930810308113081230813308143081530816308173081830819308203082130822308233082430825308263082730828308293083030831308323083330834308353083630837308383083930840308413084230843308443084530846308473084830849308503085130852308533085430855308563085730858308593086030861308623086330864308653086630867308683086930870308713087230873308743087530876308773087830879308803088130882308833088430885308863088730888308893089030891308923089330894308953089630897308983089930900309013090230903309043090530906309073090830909309103091130912309133091430915309163091730918309193092030921309223092330924309253092630927309283092930930309313093230933309343093530936309373093830939309403094130942309433094430945309463094730948309493095030951309523095330954309553095630957309583095930960309613096230963309643096530966309673096830969309703097130972309733097430975309763097730978309793098030981309823098330984309853098630987309883098930990309913099230993309943099530996309973099830999310003100131002310033100431005310063100731008310093101031011310123101331014310153101631017310183101931020310213102231023310243102531026310273102831029310303103131032310333103431035310363103731038310393104031041310423104331044310453104631047310483104931050310513105231053310543105531056310573105831059310603106131062310633106431065310663106731068310693107031071310723107331074310753107631077310783107931080310813108231083310843108531086310873108831089310903109131092310933109431095310963109731098310993110031101311023110331104311053110631107311083110931110311113111231113311143111531116311173111831119311203112131122311233112431125311263112731128311293113031131311323113331134311353113631137311383113931140311413114231143311443114531146311473114831149311503115131152311533115431155311563115731158311593116031161311623116331164311653116631167311683116931170311713117231173311743117531176311773117831179311803118131182311833118431185311863118731188311893119031191311923119331194311953119631197311983119931200312013120231203312043120531206312073120831209312103121131212312133121431215312163121731218312193122031221312223122331224312253122631227312283122931230312313123231233312343123531236312373123831239312403124131242312433124431245312463124731248312493125031251312523125331254312553125631257312583125931260312613126231263312643126531266312673126831269312703127131272312733127431275312763127731278312793128031281312823128331284312853128631287312883128931290312913129231293312943129531296312973129831299313003130131302313033130431305313063130731308313093131031311313123131331314313153131631317313183131931320313213132231323313243132531326313273132831329313303133131332313333133431335313363133731338313393134031341313423134331344313453134631347313483134931350313513135231353313543135531356313573135831359313603136131362313633136431365313663136731368313693137031371313723137331374313753137631377313783137931380313813138231383313843138531386313873138831389313903139131392313933139431395313963139731398313993140031401314023140331404314053140631407314083140931410314113141231413314143141531416314173141831419314203142131422314233142431425314263142731428314293143031431314323143331434314353143631437314383143931440314413144231443314443144531446314473144831449314503145131452314533145431455314563145731458314593146031461314623146331464314653146631467314683146931470314713147231473314743147531476314773147831479314803148131482314833148431485314863148731488314893149031491314923149331494314953149631497314983149931500315013150231503315043150531506315073150831509315103151131512315133151431515315163151731518315193152031521315223152331524315253152631527315283152931530315313153231533315343153531536315373153831539315403154131542315433154431545315463154731548315493155031551315523155331554315553155631557315583155931560315613156231563315643156531566315673156831569315703157131572315733157431575315763157731578315793158031581315823158331584315853158631587315883158931590315913159231593315943159531596315973159831599316003160131602316033160431605316063160731608316093161031611316123161331614316153161631617316183161931620316213162231623316243162531626316273162831629316303163131632316333163431635316363163731638316393164031641316423164331644316453164631647316483164931650316513165231653316543165531656316573165831659316603166131662316633166431665316663166731668316693167031671316723167331674316753167631677316783167931680316813168231683316843168531686316873168831689316903169131692316933169431695316963169731698316993170031701317023170331704317053170631707317083170931710317113171231713317143171531716317173171831719317203172131722317233172431725317263172731728317293173031731317323173331734317353173631737317383173931740317413174231743317443174531746317473174831749317503175131752317533175431755317563175731758317593176031761317623176331764317653176631767317683176931770317713177231773317743177531776317773177831779317803178131782317833178431785317863178731788317893179031791317923179331794317953179631797317983179931800318013180231803318043180531806318073180831809318103181131812318133181431815318163181731818318193182031821318223182331824318253182631827318283182931830318313183231833318343183531836318373183831839318403184131842318433184431845318463184731848318493185031851318523185331854318553185631857318583185931860318613186231863318643186531866318673186831869318703187131872318733187431875318763187731878318793188031881318823188331884318853188631887318883188931890318913189231893318943189531896318973189831899319003190131902319033190431905319063190731908319093191031911319123191331914319153191631917319183191931920319213192231923319243192531926319273192831929319303193131932319333193431935319363193731938319393194031941319423194331944319453194631947319483194931950319513195231953319543195531956319573195831959319603196131962319633196431965319663196731968319693197031971319723197331974319753197631977319783197931980319813198231983319843198531986319873198831989319903199131992319933199431995319963199731998319993200032001320023200332004320053200632007320083200932010320113201232013320143201532016320173201832019320203202132022320233202432025320263202732028320293203032031320323203332034320353203632037320383203932040320413204232043320443204532046320473204832049320503205132052320533205432055320563205732058320593206032061320623206332064320653206632067320683206932070320713207232073320743207532076320773207832079320803208132082320833208432085320863208732088320893209032091320923209332094320953209632097320983209932100321013210232103321043210532106321073210832109321103211132112321133211432115321163211732118321193212032121321223212332124321253212632127321283212932130321313213232133321343213532136321373213832139321403214132142321433214432145321463214732148321493215032151321523215332154321553215632157321583215932160321613216232163321643216532166321673216832169321703217132172321733217432175321763217732178321793218032181321823218332184321853218632187321883218932190321913219232193321943219532196321973219832199322003220132202322033220432205322063220732208322093221032211322123221332214322153221632217322183221932220322213222232223322243222532226322273222832229322303223132232322333223432235322363223732238322393224032241322423224332244322453224632247322483224932250322513225232253322543225532256322573225832259322603226132262322633226432265322663226732268322693227032271322723227332274322753227632277322783227932280322813228232283322843228532286322873228832289322903229132292322933229432295322963229732298322993230032301323023230332304323053230632307323083230932310323113231232313323143231532316323173231832319323203232132322323233232432325323263232732328323293233032331323323233332334323353233632337323383233932340323413234232343323443234532346323473234832349323503235132352323533235432355323563235732358323593236032361323623236332364323653236632367323683236932370323713237232373323743237532376323773237832379323803238132382323833238432385323863238732388323893239032391323923239332394323953239632397323983239932400324013240232403324043240532406324073240832409324103241132412324133241432415324163241732418324193242032421324223242332424324253242632427324283242932430324313243232433324343243532436324373243832439324403244132442324433244432445324463244732448324493245032451324523245332454324553245632457324583245932460324613246232463324643246532466324673246832469324703247132472324733247432475324763247732478324793248032481324823248332484324853248632487324883248932490324913249232493324943249532496324973249832499325003250132502325033250432505325063250732508325093251032511325123251332514325153251632517325183251932520325213252232523325243252532526325273252832529325303253132532325333253432535325363253732538325393254032541325423254332544325453254632547325483254932550325513255232553325543255532556325573255832559325603256132562325633256432565325663256732568325693257032571325723257332574325753257632577325783257932580325813258232583325843258532586325873258832589325903259132592325933259432595325963259732598325993260032601326023260332604326053260632607326083260932610326113261232613326143261532616326173261832619326203262132622326233262432625326263262732628326293263032631326323263332634326353263632637326383263932640326413264232643326443264532646326473264832649326503265132652326533265432655326563265732658326593266032661326623266332664326653266632667326683266932670326713267232673326743267532676326773267832679326803268132682326833268432685326863268732688326893269032691326923269332694326953269632697326983269932700327013270232703327043270532706327073270832709327103271132712327133271432715327163271732718327193272032721327223272332724327253272632727327283272932730327313273232733327343273532736327373273832739327403274132742327433274432745327463274732748327493275032751327523275332754327553275632757327583275932760327613276232763327643276532766327673276832769327703277132772327733277432775327763277732778327793278032781327823278332784327853278632787327883278932790327913279232793327943279532796327973279832799328003280132802328033280432805328063280732808328093281032811328123281332814328153281632817328183281932820328213282232823328243282532826328273282832829328303283132832328333283432835328363283732838328393284032841328423284332844328453284632847328483284932850328513285232853328543285532856328573285832859328603286132862328633286432865328663286732868328693287032871328723287332874328753287632877328783287932880328813288232883328843288532886328873288832889328903289132892328933289432895328963289732898328993290032901329023290332904329053290632907329083290932910329113291232913329143291532916329173291832919329203292132922329233292432925329263292732928329293293032931329323293332934329353293632937329383293932940329413294232943329443294532946329473294832949329503295132952329533295432955329563295732958329593296032961329623296332964329653296632967329683296932970329713297232973329743297532976329773297832979329803298132982329833298432985329863298732988329893299032991329923299332994329953299632997329983299933000330013300233003330043300533006330073300833009330103301133012330133301433015330163301733018330193302033021330223302333024330253302633027330283302933030330313303233033330343303533036330373303833039330403304133042330433304433045330463304733048330493305033051330523305333054330553305633057330583305933060330613306233063330643306533066330673306833069330703307133072330733307433075330763307733078330793308033081330823308333084330853308633087330883308933090330913309233093330943309533096330973309833099331003310133102331033310433105331063310733108331093311033111331123311333114331153311633117331183311933120331213312233123331243312533126331273312833129331303313133132331333313433135331363313733138331393314033141331423314333144331453314633147331483314933150331513315233153331543315533156331573315833159331603316133162331633316433165331663316733168331693317033171331723317333174331753317633177331783317933180331813318233183331843318533186331873318833189331903319133192331933319433195331963319733198331993320033201332023320333204332053320633207332083320933210332113321233213332143321533216332173321833219332203322133222332233322433225332263322733228332293323033231332323323333234332353323633237332383323933240332413324233243332443324533246332473324833249332503325133252332533325433255332563325733258332593326033261332623326333264332653326633267332683326933270332713327233273332743327533276332773327833279332803328133282332833328433285332863328733288332893329033291332923329333294332953329633297332983329933300333013330233303333043330533306333073330833309333103331133312333133331433315333163331733318333193332033321333223332333324333253332633327333283332933330333313333233333333343333533336333373333833339333403334133342333433334433345333463334733348333493335033351333523335333354333553335633357333583335933360333613336233363333643336533366333673336833369333703337133372333733337433375333763337733378333793338033381333823338333384333853338633387333883338933390333913339233393333943339533396333973339833399334003340133402334033340433405334063340733408334093341033411334123341333414334153341633417334183341933420334213342233423334243342533426334273342833429334303343133432334333343433435334363343733438334393344033441334423344333444334453344633447334483344933450334513345233453334543345533456334573345833459334603346133462334633346433465334663346733468334693347033471334723347333474334753347633477334783347933480334813348233483334843348533486334873348833489334903349133492334933349433495334963349733498334993350033501335023350333504335053350633507335083350933510335113351233513335143351533516335173351833519335203352133522335233352433525335263352733528335293353033531335323353333534335353353633537335383353933540335413354233543335443354533546335473354833549335503355133552335533355433555335563355733558335593356033561335623356333564335653356633567335683356933570335713357233573335743357533576335773357833579335803358133582335833358433585335863358733588335893359033591335923359333594335953359633597335983359933600336013360233603336043360533606336073360833609336103361133612336133361433615336163361733618336193362033621336223362333624336253362633627336283362933630336313363233633336343363533636336373363833639336403364133642336433364433645336463364733648336493365033651336523365333654336553365633657336583365933660336613366233663336643366533666336673366833669336703367133672336733367433675336763367733678336793368033681336823368333684336853368633687336883368933690336913369233693336943369533696336973369833699337003370133702337033370433705337063370733708337093371033711337123371333714337153371633717337183371933720337213372233723337243372533726337273372833729337303373133732337333373433735337363373733738337393374033741337423374333744337453374633747337483374933750337513375233753337543375533756337573375833759337603376133762337633376433765337663376733768337693377033771337723377333774337753377633777337783377933780337813378233783337843378533786337873378833789337903379133792337933379433795337963379733798337993380033801338023380333804338053380633807338083380933810338113381233813338143381533816338173381833819338203382133822338233382433825338263382733828338293383033831338323383333834338353383633837338383383933840338413384233843338443384533846338473384833849338503385133852338533385433855338563385733858338593386033861338623386333864338653386633867338683386933870338713387233873338743387533876338773387833879338803388133882338833388433885338863388733888338893389033891338923389333894338953389633897338983389933900339013390233903339043390533906339073390833909339103391133912339133391433915339163391733918339193392033921339223392333924339253392633927339283392933930339313393233933339343393533936339373393833939339403394133942339433394433945339463394733948339493395033951339523395333954339553395633957339583395933960339613396233963339643396533966339673396833969339703397133972339733397433975339763397733978339793398033981339823398333984339853398633987339883398933990339913399233993339943399533996339973399833999340003400134002340033400434005340063400734008340093401034011340123401334014340153401634017340183401934020340213402234023340243402534026340273402834029340303403134032340333403434035340363403734038340393404034041340423404334044340453404634047340483404934050340513405234053340543405534056340573405834059340603406134062340633406434065340663406734068340693407034071340723407334074340753407634077340783407934080340813408234083340843408534086340873408834089340903409134092340933409434095340963409734098340993410034101341023410334104341053410634107341083410934110341113411234113341143411534116341173411834119341203412134122341233412434125341263412734128341293413034131341323413334134341353413634137341383413934140341413414234143341443414534146341473414834149341503415134152341533415434155341563415734158341593416034161341623416334164341653416634167341683416934170341713417234173341743417534176341773417834179341803418134182341833418434185341863418734188341893419034191341923419334194341953419634197341983419934200342013420234203342043420534206342073420834209342103421134212342133421434215342163421734218342193422034221342223422334224342253422634227342283422934230342313423234233342343423534236342373423834239342403424134242342433424434245342463424734248342493425034251342523425334254342553425634257342583425934260342613426234263342643426534266342673426834269342703427134272342733427434275342763427734278342793428034281342823428334284342853428634287342883428934290342913429234293342943429534296342973429834299343003430134302343033430434305343063430734308343093431034311343123431334314343153431634317343183431934320343213432234323343243432534326343273432834329343303433134332343333433434335343363433734338343393434034341343423434334344343453434634347343483434934350343513435234353343543435534356343573435834359343603436134362343633436434365343663436734368343693437034371343723437334374343753437634377343783437934380343813438234383343843438534386343873438834389343903439134392343933439434395343963439734398343993440034401344023440334404344053440634407344083440934410344113441234413344143441534416344173441834419344203442134422344233442434425344263442734428344293443034431344323443334434344353443634437344383443934440344413444234443344443444534446344473444834449344503445134452344533445434455344563445734458344593446034461344623446334464344653446634467344683446934470344713447234473344743447534476344773447834479344803448134482344833448434485344863448734488344893449034491344923449334494344953449634497344983449934500345013450234503345043450534506345073450834509345103451134512345133451434515345163451734518345193452034521345223452334524345253452634527345283452934530345313453234533345343453534536345373453834539345403454134542345433454434545345463454734548345493455034551345523455334554345553455634557345583455934560345613456234563345643456534566345673456834569345703457134572345733457434575345763457734578345793458034581345823458334584345853458634587345883458934590345913459234593345943459534596345973459834599346003460134602346033460434605346063460734608346093461034611346123461334614346153461634617346183461934620346213462234623346243462534626346273462834629346303463134632346333463434635346363463734638346393464034641346423464334644346453464634647346483464934650346513465234653346543465534656346573465834659346603466134662346633466434665346663466734668346693467034671346723467334674346753467634677346783467934680346813468234683346843468534686346873468834689346903469134692346933469434695346963469734698346993470034701347023470334704347053470634707347083470934710347113471234713347143471534716347173471834719347203472134722347233472434725347263472734728347293473034731347323473334734347353473634737347383473934740347413474234743347443474534746347473474834749347503475134752347533475434755347563475734758347593476034761347623476334764347653476634767347683476934770347713477234773347743477534776347773477834779347803478134782347833478434785347863478734788347893479034791347923479334794347953479634797347983479934800348013480234803348043480534806348073480834809348103481134812348133481434815348163481734818348193482034821348223482334824348253482634827348283482934830348313483234833348343483534836348373483834839348403484134842348433484434845348463484734848348493485034851348523485334854348553485634857348583485934860348613486234863348643486534866348673486834869348703487134872348733487434875348763487734878348793488034881348823488334884348853488634887348883488934890348913489234893348943489534896348973489834899349003490134902349033490434905349063490734908349093491034911349123491334914349153491634917349183491934920349213492234923349243492534926349273492834929349303493134932349333493434935349363493734938349393494034941349423494334944349453494634947349483494934950349513495234953349543495534956349573495834959349603496134962349633496434965349663496734968349693497034971349723497334974349753497634977349783497934980349813498234983349843498534986349873498834989349903499134992349933499434995349963499734998349993500035001350023500335004350053500635007350083500935010350113501235013350143501535016350173501835019350203502135022350233502435025350263502735028350293503035031350323503335034350353503635037350383503935040350413504235043350443504535046350473504835049350503505135052350533505435055350563505735058350593506035061350623506335064350653506635067350683506935070350713507235073350743507535076350773507835079350803508135082350833508435085350863508735088350893509035091350923509335094350953509635097350983509935100351013510235103351043510535106351073510835109351103511135112351133511435115351163511735118351193512035121351223512335124351253512635127351283512935130351313513235133351343513535136351373513835139351403514135142351433514435145351463514735148351493515035151351523515335154351553515635157351583515935160351613516235163351643516535166351673516835169351703517135172351733517435175351763517735178351793518035181351823518335184351853518635187351883518935190351913519235193351943519535196351973519835199352003520135202352033520435205352063520735208352093521035211352123521335214352153521635217352183521935220352213522235223352243522535226352273522835229352303523135232352333523435235352363523735238352393524035241352423524335244352453524635247352483524935250352513525235253352543525535256352573525835259352603526135262352633526435265352663526735268352693527035271352723527335274352753527635277352783527935280352813528235283352843528535286352873528835289352903529135292352933529435295352963529735298352993530035301353023530335304353053530635307353083530935310353113531235313353143531535316353173531835319353203532135322353233532435325353263532735328353293533035331353323533335334353353533635337353383533935340353413534235343353443534535346353473534835349353503535135352353533535435355353563535735358353593536035361353623536335364353653536635367353683536935370353713537235373353743537535376353773537835379353803538135382353833538435385353863538735388353893539035391353923539335394353953539635397353983539935400354013540235403354043540535406354073540835409354103541135412354133541435415354163541735418354193542035421354223542335424354253542635427354283542935430354313543235433354343543535436354373543835439354403544135442354433544435445354463544735448354493545035451354523545335454354553545635457354583545935460354613546235463354643546535466354673546835469354703547135472354733547435475354763547735478354793548035481354823548335484354853548635487354883548935490354913549235493354943549535496354973549835499355003550135502355033550435505355063550735508355093551035511355123551335514355153551635517355183551935520355213552235523355243552535526355273552835529355303553135532355333553435535355363553735538355393554035541355423554335544355453554635547355483554935550355513555235553355543555535556355573555835559355603556135562355633556435565355663556735568355693557035571355723557335574355753557635577355783557935580355813558235583355843558535586355873558835589355903559135592355933559435595355963559735598355993560035601356023560335604356053560635607356083560935610356113561235613356143561535616356173561835619356203562135622356233562435625356263562735628356293563035631356323563335634356353563635637356383563935640356413564235643356443564535646356473564835649356503565135652356533565435655356563565735658356593566035661356623566335664356653566635667356683566935670356713567235673356743567535676356773567835679356803568135682356833568435685356863568735688356893569035691356923569335694356953569635697356983569935700357013570235703357043570535706357073570835709357103571135712357133571435715357163571735718357193572035721357223572335724357253572635727357283572935730357313573235733357343573535736357373573835739357403574135742357433574435745357463574735748357493575035751357523575335754357553575635757357583575935760357613576235763357643576535766357673576835769357703577135772357733577435775357763577735778357793578035781357823578335784357853578635787357883578935790357913579235793357943579535796357973579835799358003580135802358033580435805358063580735808358093581035811358123581335814358153581635817358183581935820358213582235823358243582535826358273582835829358303583135832358333583435835358363583735838358393584035841358423584335844358453584635847358483584935850358513585235853358543585535856358573585835859358603586135862358633586435865358663586735868358693587035871358723587335874358753587635877358783587935880358813588235883358843588535886358873588835889358903589135892358933589435895358963589735898358993590035901359023590335904359053590635907359083590935910359113591235913359143591535916359173591835919359203592135922359233592435925359263592735928359293593035931359323593335934359353593635937359383593935940359413594235943359443594535946359473594835949359503595135952359533595435955359563595735958359593596035961359623596335964359653596635967359683596935970359713597235973359743597535976359773597835979359803598135982359833598435985359863598735988359893599035991359923599335994359953599635997359983599936000360013600236003360043600536006360073600836009360103601136012360133601436015360163601736018360193602036021360223602336024360253602636027360283602936030360313603236033360343603536036360373603836039360403604136042360433604436045360463604736048360493605036051360523605336054360553605636057360583605936060360613606236063360643606536066360673606836069360703607136072360733607436075360763607736078360793608036081360823608336084360853608636087360883608936090360913609236093360943609536096360973609836099361003610136102361033610436105361063610736108361093611036111361123611336114361153611636117361183611936120361213612236123361243612536126361273612836129361303613136132361333613436135361363613736138361393614036141361423614336144361453614636147361483614936150361513615236153361543615536156361573615836159361603616136162361633616436165361663616736168361693617036171361723617336174361753617636177361783617936180361813618236183361843618536186361873618836189361903619136192361933619436195361963619736198361993620036201362023620336204362053620636207362083620936210362113621236213362143621536216362173621836219362203622136222362233622436225362263622736228362293623036231362323623336234362353623636237362383623936240362413624236243362443624536246362473624836249362503625136252362533625436255362563625736258362593626036261362623626336264362653626636267362683626936270362713627236273362743627536276362773627836279362803628136282362833628436285362863628736288362893629036291362923629336294362953629636297362983629936300363013630236303363043630536306363073630836309363103631136312363133631436315363163631736318363193632036321363223632336324363253632636327363283632936330363313633236333363343633536336363373633836339363403634136342363433634436345363463634736348363493635036351363523635336354363553635636357363583635936360363613636236363363643636536366363673636836369363703637136372363733637436375363763637736378363793638036381363823638336384363853638636387363883638936390363913639236393363943639536396363973639836399364003640136402364033640436405364063640736408364093641036411364123641336414364153641636417364183641936420364213642236423364243642536426364273642836429364303643136432364333643436435364363643736438364393644036441364423644336444364453644636447364483644936450364513645236453364543645536456364573645836459364603646136462364633646436465364663646736468364693647036471364723647336474364753647636477364783647936480364813648236483364843648536486364873648836489364903649136492364933649436495364963649736498364993650036501365023650336504365053650636507365083650936510365113651236513365143651536516365173651836519365203652136522365233652436525365263652736528365293653036531365323653336534365353653636537365383653936540365413654236543365443654536546365473654836549365503655136552365533655436555365563655736558365593656036561365623656336564365653656636567365683656936570365713657236573365743657536576365773657836579365803658136582365833658436585365863658736588365893659036591365923659336594365953659636597365983659936600366013660236603366043660536606366073660836609366103661136612366133661436615366163661736618366193662036621366223662336624366253662636627366283662936630366313663236633366343663536636366373663836639366403664136642366433664436645366463664736648366493665036651366523665336654366553665636657366583665936660366613666236663366643666536666366673666836669366703667136672366733667436675366763667736678366793668036681366823668336684366853668636687366883668936690366913669236693366943669536696366973669836699367003670136702367033670436705367063670736708367093671036711367123671336714367153671636717367183671936720367213672236723367243672536726367273672836729367303673136732367333673436735367363673736738367393674036741367423674336744367453674636747367483674936750367513675236753367543675536756367573675836759367603676136762367633676436765367663676736768367693677036771367723677336774367753677636777367783677936780367813678236783367843678536786367873678836789367903679136792367933679436795367963679736798367993680036801368023680336804368053680636807368083680936810368113681236813368143681536816368173681836819368203682136822368233682436825368263682736828368293683036831368323683336834368353683636837368383683936840368413684236843368443684536846368473684836849368503685136852368533685436855368563685736858368593686036861368623686336864368653686636867368683686936870368713687236873368743687536876368773687836879368803688136882368833688436885368863688736888368893689036891368923689336894368953689636897368983689936900369013690236903369043690536906369073690836909369103691136912369133691436915369163691736918369193692036921369223692336924369253692636927369283692936930369313693236933369343693536936369373693836939369403694136942369433694436945369463694736948369493695036951369523695336954369553695636957369583695936960369613696236963369643696536966369673696836969369703697136972369733697436975369763697736978369793698036981369823698336984369853698636987369883698936990369913699236993369943699536996369973699836999370003700137002370033700437005370063700737008370093701037011370123701337014370153701637017370183701937020370213702237023370243702537026370273702837029370303703137032370333703437035370363703737038370393704037041370423704337044370453704637047370483704937050370513705237053370543705537056370573705837059370603706137062370633706437065370663706737068370693707037071370723707337074370753707637077370783707937080370813708237083370843708537086370873708837089370903709137092370933709437095370963709737098370993710037101371023710337104371053710637107371083710937110371113711237113371143711537116371173711837119371203712137122371233712437125371263712737128371293713037131371323713337134371353713637137371383713937140371413714237143371443714537146371473714837149371503715137152371533715437155371563715737158371593716037161371623716337164371653716637167371683716937170371713717237173371743717537176371773717837179371803718137182371833718437185371863718737188371893719037191371923719337194371953719637197371983719937200372013720237203372043720537206372073720837209372103721137212372133721437215372163721737218372193722037221372223722337224372253722637227372283722937230372313723237233372343723537236372373723837239372403724137242372433724437245372463724737248372493725037251372523725337254372553725637257372583725937260372613726237263372643726537266372673726837269372703727137272372733727437275372763727737278372793728037281372823728337284372853728637287372883728937290372913729237293372943729537296372973729837299373003730137302373033730437305373063730737308373093731037311373123731337314373153731637317373183731937320373213732237323373243732537326373273732837329373303733137332373333733437335373363733737338373393734037341373423734337344373453734637347373483734937350373513735237353373543735537356373573735837359373603736137362373633736437365373663736737368373693737037371373723737337374373753737637377373783737937380373813738237383373843738537386373873738837389373903739137392373933739437395373963739737398373993740037401374023740337404374053740637407374083740937410374113741237413374143741537416374173741837419374203742137422374233742437425374263742737428374293743037431374323743337434374353743637437374383743937440374413744237443374443744537446374473744837449374503745137452374533745437455374563745737458374593746037461374623746337464374653746637467374683746937470374713747237473374743747537476374773747837479374803748137482374833748437485374863748737488374893749037491374923749337494374953749637497374983749937500375013750237503375043750537506375073750837509375103751137512375133751437515375163751737518375193752037521375223752337524375253752637527375283752937530375313753237533375343753537536375373753837539375403754137542375433754437545375463754737548375493755037551375523755337554375553755637557375583755937560375613756237563375643756537566375673756837569375703757137572375733757437575375763757737578375793758037581375823758337584375853758637587375883758937590375913759237593375943759537596375973759837599376003760137602376033760437605376063760737608376093761037611376123761337614376153761637617376183761937620376213762237623376243762537626376273762837629376303763137632376333763437635376363763737638376393764037641376423764337644376453764637647376483764937650376513765237653376543765537656376573765837659376603766137662376633766437665376663766737668376693767037671376723767337674376753767637677376783767937680376813768237683376843768537686376873768837689376903769137692376933769437695376963769737698376993770037701377023770337704377053770637707377083770937710377113771237713377143771537716377173771837719377203772137722377233772437725377263772737728377293773037731377323773337734377353773637737377383773937740377413774237743377443774537746377473774837749377503775137752377533775437755377563775737758377593776037761377623776337764377653776637767377683776937770377713777237773377743777537776377773777837779377803778137782377833778437785377863778737788377893779037791377923779337794377953779637797377983779937800378013780237803378043780537806378073780837809378103781137812378133781437815378163781737818378193782037821378223782337824378253782637827378283782937830378313783237833378343783537836378373783837839378403784137842378433784437845378463784737848378493785037851378523785337854378553785637857378583785937860378613786237863378643786537866378673786837869378703787137872378733787437875378763787737878378793788037881378823788337884378853788637887378883788937890378913789237893378943789537896378973789837899379003790137902379033790437905379063790737908379093791037911379123791337914379153791637917379183791937920379213792237923379243792537926379273792837929379303793137932379333793437935379363793737938379393794037941379423794337944379453794637947379483794937950379513795237953379543795537956379573795837959379603796137962379633796437965379663796737968379693797037971379723797337974379753797637977379783797937980379813798237983379843798537986379873798837989379903799137992379933799437995379963799737998379993800038001380023800338004380053800638007380083800938010380113801238013380143801538016380173801838019380203802138022380233802438025380263802738028380293803038031380323803338034380353803638037380383803938040380413804238043380443804538046380473804838049380503805138052380533805438055380563805738058380593806038061380623806338064380653806638067380683806938070380713807238073380743807538076380773807838079380803808138082380833808438085380863808738088380893809038091380923809338094380953809638097380983809938100381013810238103381043810538106381073810838109381103811138112381133811438115381163811738118381193812038121381223812338124381253812638127381283812938130381313813238133381343813538136381373813838139381403814138142381433814438145381463814738148381493815038151381523815338154381553815638157381583815938160381613816238163381643816538166381673816838169381703817138172381733817438175381763817738178381793818038181381823818338184381853818638187381883818938190381913819238193381943819538196381973819838199382003820138202382033820438205382063820738208382093821038211382123821338214382153821638217382183821938220382213822238223382243822538226382273822838229382303823138232382333823438235382363823738238382393824038241382423824338244382453824638247382483824938250382513825238253382543825538256382573825838259382603826138262382633826438265382663826738268382693827038271382723827338274382753827638277382783827938280382813828238283382843828538286382873828838289382903829138292382933829438295382963829738298382993830038301383023830338304383053830638307383083830938310383113831238313383143831538316383173831838319383203832138322383233832438325383263832738328383293833038331383323833338334383353833638337383383833938340383413834238343383443834538346383473834838349383503835138352383533835438355383563835738358383593836038361383623836338364383653836638367383683836938370383713837238373383743837538376383773837838379383803838138382383833838438385383863838738388383893839038391383923839338394383953839638397383983839938400384013840238403384043840538406384073840838409384103841138412384133841438415384163841738418384193842038421384223842338424384253842638427384283842938430384313843238433384343843538436384373843838439384403844138442384433844438445384463844738448384493845038451384523845338454384553845638457384583845938460384613846238463384643846538466384673846838469384703847138472384733847438475384763847738478384793848038481384823848338484384853848638487384883848938490384913849238493384943849538496384973849838499385003850138502385033850438505385063850738508385093851038511385123851338514385153851638517385183851938520385213852238523385243852538526385273852838529385303853138532385333853438535385363853738538385393854038541385423854338544385453854638547385483854938550385513855238553385543855538556385573855838559385603856138562385633856438565385663856738568385693857038571385723857338574385753857638577385783857938580385813858238583385843858538586385873858838589385903859138592385933859438595385963859738598385993860038601386023860338604386053860638607386083860938610386113861238613386143861538616386173861838619386203862138622386233862438625386263862738628386293863038631386323863338634386353863638637386383863938640386413864238643386443864538646386473864838649386503865138652386533865438655386563865738658386593866038661386623866338664386653866638667386683866938670386713867238673386743867538676386773867838679386803868138682386833868438685386863868738688386893869038691386923869338694386953869638697386983869938700387013870238703387043870538706387073870838709387103871138712387133871438715387163871738718387193872038721387223872338724387253872638727387283872938730387313873238733387343873538736387373873838739387403874138742387433874438745387463874738748387493875038751387523875338754387553875638757387583875938760387613876238763387643876538766387673876838769387703877138772387733877438775387763877738778387793878038781387823878338784387853878638787387883878938790387913879238793387943879538796387973879838799388003880138802388033880438805388063880738808388093881038811388123881338814388153881638817388183881938820388213882238823388243882538826388273882838829388303883138832388333883438835388363883738838388393884038841388423884338844388453884638847388483884938850388513885238853388543885538856388573885838859388603886138862388633886438865388663886738868388693887038871388723887338874388753887638877388783887938880388813888238883388843888538886388873888838889388903889138892388933889438895388963889738898388993890038901389023890338904389053890638907389083890938910389113891238913389143891538916389173891838919389203892138922389233892438925389263892738928389293893038931389323893338934389353893638937389383893938940389413894238943389443894538946389473894838949389503895138952389533895438955389563895738958389593896038961389623896338964389653896638967389683896938970389713897238973389743897538976389773897838979389803898138982389833898438985389863898738988389893899038991389923899338994389953899638997389983899939000390013900239003390043900539006390073900839009390103901139012390133901439015390163901739018390193902039021390223902339024390253902639027390283902939030390313903239033390343903539036390373903839039390403904139042390433904439045390463904739048390493905039051390523905339054390553905639057390583905939060390613906239063390643906539066390673906839069390703907139072390733907439075390763907739078390793908039081390823908339084390853908639087390883908939090390913909239093390943909539096390973909839099391003910139102391033910439105391063910739108391093911039111391123911339114391153911639117391183911939120391213912239123391243912539126391273912839129391303913139132391333913439135391363913739138391393914039141391423914339144391453914639147391483914939150391513915239153391543915539156391573915839159391603916139162391633916439165391663916739168391693917039171391723917339174391753917639177391783917939180391813918239183391843918539186391873918839189391903919139192391933919439195391963919739198391993920039201392023920339204392053920639207392083920939210392113921239213392143921539216392173921839219392203922139222392233922439225392263922739228392293923039231392323923339234392353923639237392383923939240392413924239243392443924539246392473924839249392503925139252392533925439255392563925739258392593926039261392623926339264392653926639267392683926939270392713927239273392743927539276392773927839279392803928139282392833928439285392863928739288392893929039291392923929339294392953929639297392983929939300393013930239303393043930539306393073930839309393103931139312393133931439315393163931739318393193932039321393223932339324393253932639327393283932939330393313933239333393343933539336393373933839339393403934139342393433934439345393463934739348393493935039351393523935339354393553935639357393583935939360393613936239363393643936539366393673936839369393703937139372393733937439375393763937739378393793938039381393823938339384393853938639387393883938939390393913939239393393943939539396393973939839399394003940139402394033940439405394063940739408394093941039411394123941339414394153941639417394183941939420394213942239423394243942539426394273942839429394303943139432394333943439435394363943739438394393944039441394423944339444394453944639447394483944939450394513945239453394543945539456394573945839459394603946139462394633946439465394663946739468394693947039471394723947339474394753947639477394783947939480394813948239483394843948539486394873948839489394903949139492394933949439495394963949739498394993950039501395023950339504395053950639507395083950939510395113951239513395143951539516395173951839519395203952139522395233952439525395263952739528395293953039531395323953339534395353953639537395383953939540395413954239543395443954539546395473954839549395503955139552395533955439555395563955739558395593956039561395623956339564395653956639567395683956939570395713957239573395743957539576395773957839579395803958139582395833958439585395863958739588395893959039591395923959339594395953959639597395983959939600396013960239603396043960539606396073960839609396103961139612396133961439615396163961739618396193962039621396223962339624396253962639627396283962939630396313963239633396343963539636396373963839639396403964139642396433964439645396463964739648396493965039651396523965339654396553965639657396583965939660396613966239663396643966539666396673966839669396703967139672396733967439675396763967739678396793968039681396823968339684396853968639687396883968939690396913969239693396943969539696396973969839699397003970139702397033970439705397063970739708397093971039711397123971339714397153971639717397183971939720397213972239723397243972539726397273972839729397303973139732397333973439735397363973739738397393974039741397423974339744397453974639747397483974939750397513975239753397543975539756397573975839759397603976139762397633976439765397663976739768397693977039771397723977339774397753977639777397783977939780397813978239783397843978539786397873978839789397903979139792397933979439795397963979739798397993980039801398023980339804398053980639807398083980939810398113981239813398143981539816398173981839819398203982139822398233982439825398263982739828398293983039831398323983339834398353983639837398383983939840398413984239843398443984539846398473984839849398503985139852398533985439855398563985739858398593986039861398623986339864398653986639867398683986939870398713987239873398743987539876398773987839879398803988139882398833988439885398863988739888398893989039891398923989339894398953989639897398983989939900399013990239903399043990539906399073990839909399103991139912399133991439915399163991739918399193992039921399223992339924399253992639927399283992939930399313993239933399343993539936399373993839939399403994139942399433994439945399463994739948399493995039951399523995339954399553995639957399583995939960399613996239963399643996539966399673996839969399703997139972399733997439975399763997739978399793998039981399823998339984399853998639987399883998939990399913999239993399943999539996399973999839999400004000140002400034000440005400064000740008400094001040011400124001340014400154001640017400184001940020400214002240023400244002540026400274002840029400304003140032400334003440035400364003740038400394004040041400424004340044400454004640047400484004940050400514005240053400544005540056400574005840059400604006140062400634006440065400664006740068400694007040071400724007340074400754007640077400784007940080400814008240083400844008540086400874008840089400904009140092400934009440095400964009740098400994010040101401024010340104401054010640107401084010940110401114011240113401144011540116401174011840119401204012140122401234012440125401264012740128401294013040131401324013340134401354013640137401384013940140401414014240143401444014540146401474014840149401504015140152401534015440155401564015740158401594016040161401624016340164401654016640167401684016940170401714017240173401744017540176401774017840179401804018140182401834018440185401864018740188401894019040191401924019340194401954019640197401984019940200402014020240203402044020540206402074020840209402104021140212402134021440215402164021740218402194022040221402224022340224402254022640227402284022940230402314023240233402344023540236402374023840239402404024140242402434024440245402464024740248402494025040251402524025340254402554025640257402584025940260402614026240263402644026540266402674026840269402704027140272402734027440275402764027740278402794028040281402824028340284402854028640287402884028940290402914029240293402944029540296402974029840299403004030140302403034030440305403064030740308403094031040311403124031340314403154031640317403184031940320403214032240323403244032540326403274032840329403304033140332403334033440335403364033740338403394034040341403424034340344403454034640347403484034940350403514035240353403544035540356403574035840359403604036140362403634036440365403664036740368403694037040371403724037340374403754037640377403784037940380403814038240383403844038540386403874038840389403904039140392403934039440395403964039740398403994040040401404024040340404404054040640407404084040940410404114041240413404144041540416404174041840419404204042140422404234042440425404264042740428404294043040431404324043340434404354043640437404384043940440404414044240443404444044540446404474044840449404504045140452404534045440455404564045740458404594046040461404624046340464404654046640467404684046940470404714047240473404744047540476404774047840479404804048140482404834048440485404864048740488404894049040491404924049340494404954049640497404984049940500405014050240503405044050540506405074050840509405104051140512405134051440515405164051740518405194052040521405224052340524405254052640527405284052940530405314053240533405344053540536405374053840539405404054140542405434054440545405464054740548405494055040551405524055340554405554055640557405584055940560405614056240563405644056540566405674056840569405704057140572405734057440575405764057740578405794058040581405824058340584405854058640587405884058940590405914059240593405944059540596405974059840599406004060140602406034060440605406064060740608406094061040611406124061340614406154061640617406184061940620406214062240623406244062540626406274062840629406304063140632406334063440635406364063740638406394064040641406424064340644406454064640647406484064940650406514065240653406544065540656406574065840659406604066140662406634066440665406664066740668406694067040671406724067340674406754067640677406784067940680406814068240683406844068540686406874068840689406904069140692406934069440695406964069740698406994070040701407024070340704407054070640707407084070940710407114071240713407144071540716407174071840719407204072140722407234072440725407264072740728407294073040731407324073340734407354073640737407384073940740407414074240743407444074540746407474074840749407504075140752407534075440755407564075740758407594076040761407624076340764407654076640767407684076940770407714077240773407744077540776407774077840779407804078140782407834078440785407864078740788407894079040791407924079340794407954079640797407984079940800408014080240803408044080540806408074080840809408104081140812408134081440815408164081740818408194082040821408224082340824408254082640827408284082940830408314083240833408344083540836408374083840839408404084140842408434084440845408464084740848408494085040851408524085340854408554085640857408584085940860408614086240863408644086540866408674086840869408704087140872408734087440875408764087740878408794088040881408824088340884408854088640887408884088940890408914089240893408944089540896408974089840899409004090140902409034090440905409064090740908409094091040911409124091340914409154091640917409184091940920409214092240923409244092540926409274092840929409304093140932409334093440935409364093740938409394094040941409424094340944409454094640947409484094940950409514095240953409544095540956409574095840959409604096140962409634096440965409664096740968409694097040971409724097340974409754097640977409784097940980409814098240983409844098540986409874098840989409904099140992409934099440995409964099740998409994100041001410024100341004410054100641007410084100941010410114101241013410144101541016410174101841019410204102141022410234102441025410264102741028410294103041031410324103341034410354103641037410384103941040410414104241043410444104541046410474104841049410504105141052410534105441055410564105741058410594106041061410624106341064410654106641067410684106941070410714107241073410744107541076410774107841079410804108141082410834108441085410864108741088410894109041091410924109341094410954109641097410984109941100411014110241103411044110541106411074110841109411104111141112411134111441115411164111741118411194112041121411224112341124411254112641127411284112941130411314113241133411344113541136411374113841139411404114141142411434114441145411464114741148411494115041151411524115341154411554115641157411584115941160411614116241163411644116541166411674116841169411704117141172411734117441175411764117741178411794118041181411824118341184411854118641187411884118941190411914119241193411944119541196411974119841199412004120141202412034120441205412064120741208412094121041211412124121341214412154121641217412184121941220412214122241223412244122541226412274122841229412304123141232412334123441235412364123741238412394124041241412424124341244412454124641247412484124941250412514125241253412544125541256412574125841259412604126141262412634126441265412664126741268412694127041271412724127341274412754127641277412784127941280412814128241283412844128541286412874128841289412904129141292412934129441295412964129741298412994130041301413024130341304413054130641307413084130941310413114131241313413144131541316413174131841319413204132141322413234132441325413264132741328413294133041331413324133341334413354133641337413384133941340413414134241343413444134541346413474134841349413504135141352413534135441355413564135741358413594136041361413624136341364413654136641367413684136941370413714137241373413744137541376413774137841379413804138141382413834138441385413864138741388413894139041391413924139341394413954139641397413984139941400414014140241403414044140541406414074140841409414104141141412414134141441415414164141741418414194142041421414224142341424414254142641427414284142941430414314143241433414344143541436414374143841439414404144141442414434144441445414464144741448414494145041451414524145341454414554145641457414584145941460414614146241463414644146541466414674146841469414704147141472414734147441475414764147741478414794148041481414824148341484414854148641487414884148941490414914149241493414944149541496414974149841499415004150141502415034150441505415064150741508415094151041511415124151341514415154151641517415184151941520415214152241523415244152541526415274152841529415304153141532415334153441535415364153741538415394154041541415424154341544415454154641547415484154941550415514155241553415544155541556415574155841559415604156141562415634156441565415664156741568415694157041571415724157341574415754157641577415784157941580415814158241583415844158541586415874158841589415904159141592415934159441595415964159741598415994160041601416024160341604416054160641607416084160941610416114161241613416144161541616416174161841619416204162141622416234162441625416264162741628416294163041631416324163341634416354163641637416384163941640416414164241643416444164541646416474164841649416504165141652416534165441655416564165741658416594166041661416624166341664416654166641667416684166941670416714167241673416744167541676416774167841679416804168141682416834168441685416864168741688416894169041691416924169341694416954169641697416984169941700417014170241703417044170541706417074170841709417104171141712417134171441715417164171741718417194172041721417224172341724417254172641727417284172941730417314173241733417344173541736417374173841739417404174141742417434174441745417464174741748417494175041751417524175341754417554175641757417584175941760417614176241763417644176541766417674176841769417704177141772417734177441775417764177741778417794178041781417824178341784417854178641787417884178941790417914179241793417944179541796417974179841799418004180141802418034180441805418064180741808418094181041811418124181341814418154181641817418184181941820418214182241823418244182541826418274182841829418304183141832418334183441835418364183741838418394184041841418424184341844418454184641847418484184941850418514185241853418544185541856418574185841859418604186141862418634186441865418664186741868418694187041871418724187341874418754187641877418784187941880418814188241883418844188541886418874188841889418904189141892418934189441895418964189741898418994190041901419024190341904419054190641907419084190941910419114191241913419144191541916419174191841919419204192141922419234192441925419264192741928419294193041931419324193341934419354193641937419384193941940419414194241943419444194541946419474194841949419504195141952419534195441955419564195741958419594196041961419624196341964419654196641967419684196941970419714197241973419744197541976419774197841979419804198141982419834198441985419864198741988419894199041991419924199341994419954199641997419984199942000420014200242003420044200542006420074200842009420104201142012420134201442015420164201742018420194202042021420224202342024420254202642027420284202942030420314203242033420344203542036420374203842039420404204142042420434204442045420464204742048420494205042051420524205342054420554205642057420584205942060420614206242063420644206542066420674206842069420704207142072420734207442075420764207742078420794208042081420824208342084420854208642087420884208942090420914209242093420944209542096420974209842099421004210142102421034210442105421064210742108421094211042111421124211342114421154211642117421184211942120421214212242123421244212542126421274212842129421304213142132421334213442135421364213742138421394214042141421424214342144421454214642147421484214942150421514215242153421544215542156421574215842159421604216142162421634216442165421664216742168421694217042171421724217342174421754217642177421784217942180421814218242183421844218542186421874218842189421904219142192421934219442195421964219742198421994220042201422024220342204422054220642207422084220942210422114221242213422144221542216422174221842219422204222142222422234222442225422264222742228422294223042231422324223342234422354223642237422384223942240422414224242243422444224542246422474224842249422504225142252422534225442255422564225742258422594226042261422624226342264422654226642267422684226942270422714227242273422744227542276422774227842279422804228142282422834228442285422864228742288422894229042291422924229342294422954229642297422984229942300423014230242303423044230542306423074230842309423104231142312423134231442315423164231742318423194232042321423224232342324423254232642327423284232942330423314233242333423344233542336423374233842339423404234142342423434234442345423464234742348423494235042351423524235342354423554235642357423584235942360423614236242363423644236542366423674236842369423704237142372423734237442375423764237742378423794238042381423824238342384423854238642387423884238942390423914239242393423944239542396423974239842399424004240142402424034240442405424064240742408424094241042411424124241342414424154241642417424184241942420424214242242423424244242542426424274242842429424304243142432424334243442435424364243742438424394244042441424424244342444424454244642447424484244942450424514245242453424544245542456424574245842459424604246142462424634246442465424664246742468424694247042471424724247342474424754247642477424784247942480424814248242483424844248542486424874248842489424904249142492424934249442495424964249742498424994250042501425024250342504425054250642507425084250942510425114251242513425144251542516425174251842519425204252142522425234252442525425264252742528425294253042531425324253342534425354253642537425384253942540425414254242543425444254542546425474254842549425504255142552425534255442555425564255742558425594256042561425624256342564425654256642567425684256942570425714257242573425744257542576425774257842579425804258142582425834258442585425864258742588425894259042591425924259342594425954259642597425984259942600426014260242603426044260542606426074260842609426104261142612426134261442615426164261742618426194262042621426224262342624426254262642627426284262942630426314263242633426344263542636426374263842639426404264142642426434264442645426464264742648426494265042651426524265342654426554265642657426584265942660426614266242663426644266542666426674266842669426704267142672426734267442675426764267742678426794268042681426824268342684426854268642687426884268942690426914269242693426944269542696426974269842699427004270142702427034270442705427064270742708427094271042711427124271342714427154271642717427184271942720427214272242723427244272542726427274272842729427304273142732427334273442735427364273742738427394274042741427424274342744427454274642747427484274942750427514275242753427544275542756427574275842759427604276142762427634276442765427664276742768427694277042771427724277342774427754277642777427784277942780427814278242783427844278542786427874278842789427904279142792427934279442795427964279742798427994280042801428024280342804428054280642807428084280942810428114281242813428144281542816428174281842819428204282142822428234282442825428264282742828428294283042831428324283342834428354283642837428384283942840428414284242843428444284542846428474284842849428504285142852428534285442855428564285742858428594286042861428624286342864428654286642867428684286942870428714287242873428744287542876428774287842879428804288142882428834288442885428864288742888428894289042891428924289342894428954289642897428984289942900429014290242903429044290542906429074290842909429104291142912429134291442915429164291742918429194292042921429224292342924429254292642927429284292942930429314293242933429344293542936429374293842939429404294142942429434294442945429464294742948429494295042951429524295342954429554295642957429584295942960429614296242963429644296542966429674296842969429704297142972429734297442975429764297742978429794298042981429824298342984429854298642987429884298942990429914299242993429944299542996429974299842999430004300143002430034300443005430064300743008430094301043011430124301343014430154301643017430184301943020430214302243023430244302543026430274302843029430304303143032430334303443035430364303743038430394304043041430424304343044430454304643047430484304943050430514305243053430544305543056430574305843059430604306143062430634306443065430664306743068430694307043071430724307343074430754307643077430784307943080430814308243083430844308543086430874308843089430904309143092430934309443095430964309743098430994310043101431024310343104431054310643107431084310943110431114311243113431144311543116431174311843119431204312143122431234312443125431264312743128431294313043131431324313343134431354313643137431384313943140431414314243143431444314543146431474314843149431504315143152431534315443155431564315743158431594316043161431624316343164431654316643167431684316943170431714317243173431744317543176431774317843179431804318143182431834318443185431864318743188431894319043191431924319343194431954319643197431984319943200432014320243203432044320543206432074320843209432104321143212432134321443215432164321743218432194322043221432224322343224432254322643227432284322943230432314323243233432344323543236432374323843239432404324143242432434324443245432464324743248432494325043251432524325343254432554325643257432584325943260432614326243263432644326543266432674326843269432704327143272432734327443275432764327743278432794328043281432824328343284432854328643287432884328943290432914329243293432944329543296432974329843299433004330143302433034330443305433064330743308433094331043311433124331343314433154331643317433184331943320433214332243323433244332543326433274332843329433304333143332433334333443335433364333743338433394334043341433424334343344433454334643347433484334943350433514335243353433544335543356433574335843359433604336143362433634336443365433664336743368433694337043371433724337343374433754337643377433784337943380433814338243383433844338543386433874338843389433904339143392433934339443395433964339743398433994340043401434024340343404434054340643407434084340943410434114341243413434144341543416434174341843419434204342143422434234342443425434264342743428434294343043431434324343343434434354343643437434384343943440434414344243443434444344543446434474344843449434504345143452434534345443455434564345743458434594346043461434624346343464434654346643467434684346943470434714347243473434744347543476434774347843479434804348143482434834348443485434864348743488434894349043491434924349343494434954349643497434984349943500435014350243503435044350543506435074350843509435104351143512435134351443515435164351743518435194352043521435224352343524435254352643527435284352943530435314353243533435344353543536435374353843539435404354143542435434354443545435464354743548435494355043551435524355343554435554355643557435584355943560435614356243563435644356543566435674356843569435704357143572435734357443575435764357743578435794358043581435824358343584435854358643587435884358943590435914359243593435944359543596435974359843599436004360143602436034360443605436064360743608436094361043611436124361343614436154361643617436184361943620436214362243623436244362543626436274362843629436304363143632436334363443635436364363743638436394364043641436424364343644436454364643647436484364943650436514365243653436544365543656436574365843659436604366143662436634366443665436664366743668436694367043671436724367343674436754367643677436784367943680436814368243683436844368543686436874368843689436904369143692436934369443695436964369743698436994370043701437024370343704437054370643707437084370943710437114371243713437144371543716437174371843719437204372143722437234372443725437264372743728437294373043731437324373343734437354373643737437384373943740437414374243743437444374543746437474374843749437504375143752437534375443755437564375743758437594376043761437624376343764437654376643767437684376943770437714377243773437744377543776437774377843779437804378143782437834378443785437864378743788437894379043791437924379343794437954379643797437984379943800438014380243803438044380543806438074380843809438104381143812438134381443815438164381743818438194382043821438224382343824438254382643827438284382943830438314383243833438344383543836438374383843839438404384143842438434384443845438464384743848438494385043851438524385343854438554385643857438584385943860438614386243863438644386543866438674386843869438704387143872438734387443875438764387743878438794388043881438824388343884438854388643887438884388943890438914389243893438944389543896438974389843899439004390143902439034390443905439064390743908439094391043911439124391343914439154391643917439184391943920439214392243923439244392543926439274392843929439304393143932439334393443935439364393743938439394394043941439424394343944439454394643947439484394943950439514395243953439544395543956439574395843959439604396143962439634396443965439664396743968439694397043971439724397343974439754397643977439784397943980439814398243983439844398543986439874398843989439904399143992439934399443995439964399743998439994400044001440024400344004440054400644007440084400944010440114401244013440144401544016440174401844019440204402144022440234402444025440264402744028440294403044031440324403344034440354403644037440384403944040440414404244043440444404544046440474404844049440504405144052440534405444055440564405744058440594406044061440624406344064440654406644067440684406944070440714407244073440744407544076440774407844079440804408144082440834408444085440864408744088440894409044091440924409344094440954409644097440984409944100441014410244103441044410544106441074410844109441104411144112441134411444115441164411744118441194412044121441224412344124441254412644127441284412944130441314413244133441344413544136441374413844139441404414144142441434414444145441464414744148441494415044151441524415344154441554415644157441584415944160441614416244163441644416544166441674416844169441704417144172441734417444175441764417744178441794418044181441824418344184441854418644187441884418944190441914419244193441944419544196441974419844199442004420144202442034420444205442064420744208442094421044211442124421344214442154421644217442184421944220442214422244223442244422544226442274422844229442304423144232442334423444235442364423744238442394424044241442424424344244442454424644247442484424944250442514425244253442544425544256442574425844259442604426144262442634426444265442664426744268442694427044271442724427344274442754427644277442784427944280442814428244283442844428544286442874428844289442904429144292442934429444295442964429744298442994430044301443024430344304443054430644307443084430944310443114431244313443144431544316443174431844319443204432144322443234432444325443264432744328443294433044331443324433344334443354433644337443384433944340443414434244343443444434544346443474434844349443504435144352443534435444355443564435744358443594436044361443624436344364443654436644367443684436944370443714437244373443744437544376443774437844379443804438144382443834438444385443864438744388443894439044391443924439344394443954439644397443984439944400444014440244403444044440544406444074440844409444104441144412444134441444415444164441744418444194442044421444224442344424444254442644427444284442944430444314443244433444344443544436444374443844439444404444144442444434444444445444464444744448444494445044451444524445344454444554445644457444584445944460444614446244463444644446544466444674446844469444704447144472444734447444475444764447744478444794448044481444824448344484444854448644487444884448944490444914449244493444944449544496444974449844499445004450144502445034450444505445064450744508445094451044511445124451344514445154451644517445184451944520445214452244523445244452544526445274452844529445304453144532445334453444535445364453744538445394454044541445424454344544445454454644547445484454944550445514455244553445544455544556445574455844559445604456144562445634456444565445664456744568445694457044571445724457344574445754457644577445784457944580445814458244583445844458544586445874458844589445904459144592445934459444595445964459744598445994460044601446024460344604446054460644607446084460944610446114461244613446144461544616446174461844619446204462144622446234462444625446264462744628446294463044631446324463344634446354463644637446384463944640446414464244643446444464544646446474464844649446504465144652446534465444655446564465744658446594466044661446624466344664446654466644667446684466944670446714467244673446744467544676446774467844679446804468144682446834468444685446864468744688446894469044691446924469344694446954469644697446984469944700447014470244703447044470544706447074470844709447104471144712447134471444715447164471744718447194472044721447224472344724447254472644727447284472944730447314473244733447344473544736447374473844739447404474144742447434474444745447464474744748447494475044751447524475344754447554475644757447584475944760447614476244763447644476544766447674476844769447704477144772447734477444775447764477744778447794478044781447824478344784447854478644787447884478944790447914479244793447944479544796447974479844799448004480144802448034480444805448064480744808448094481044811448124481344814448154481644817448184481944820448214482244823448244482544826448274482844829448304483144832448334483444835448364483744838448394484044841448424484344844448454484644847448484484944850448514485244853448544485544856448574485844859448604486144862448634486444865448664486744868448694487044871448724487344874448754487644877448784487944880448814488244883448844488544886448874488844889448904489144892448934489444895448964489744898448994490044901449024490344904449054490644907449084490944910449114491244913449144491544916449174491844919449204492144922449234492444925449264492744928449294493044931449324493344934449354493644937449384493944940449414494244943449444494544946449474494844949449504495144952449534495444955449564495744958449594496044961449624496344964449654496644967449684496944970449714497244973449744497544976449774497844979449804498144982449834498444985449864498744988449894499044991449924499344994449954499644997449984499945000450014500245003450044500545006450074500845009450104501145012450134501445015450164501745018450194502045021450224502345024450254502645027450284502945030450314503245033450344503545036450374503845039450404504145042450434504445045450464504745048450494505045051450524505345054450554505645057450584505945060450614506245063450644506545066450674506845069450704507145072450734507445075450764507745078450794508045081450824508345084450854508645087450884508945090450914509245093450944509545096450974509845099451004510145102451034510445105451064510745108451094511045111451124511345114451154511645117451184511945120451214512245123451244512545126451274512845129451304513145132451334513445135451364513745138451394514045141451424514345144451454514645147451484514945150451514515245153451544515545156451574515845159451604516145162451634516445165451664516745168451694517045171451724517345174451754517645177451784517945180451814518245183451844518545186451874518845189451904519145192451934519445195451964519745198451994520045201452024520345204452054520645207452084520945210452114521245213452144521545216452174521845219452204522145222452234522445225452264522745228452294523045231452324523345234452354523645237452384523945240452414524245243452444524545246452474524845249452504525145252452534525445255452564525745258452594526045261452624526345264452654526645267452684526945270452714527245273452744527545276452774527845279452804528145282452834528445285452864528745288452894529045291452924529345294452954529645297452984529945300453014530245303453044530545306453074530845309453104531145312453134531445315453164531745318453194532045321453224532345324453254532645327453284532945330453314533245333453344533545336453374533845339453404534145342453434534445345453464534745348453494535045351453524535345354453554535645357453584535945360453614536245363453644536545366453674536845369453704537145372453734537445375453764537745378453794538045381453824538345384453854538645387453884538945390453914539245393453944539545396453974539845399454004540145402454034540445405454064540745408454094541045411454124541345414454154541645417454184541945420454214542245423454244542545426454274542845429454304543145432454334543445435454364543745438454394544045441454424544345444454454544645447454484544945450454514545245453454544545545456454574545845459454604546145462454634546445465454664546745468454694547045471454724547345474454754547645477454784547945480454814548245483454844548545486454874548845489454904549145492454934549445495454964549745498454994550045501455024550345504455054550645507455084550945510455114551245513455144551545516455174551845519455204552145522455234552445525455264552745528455294553045531455324553345534455354553645537455384553945540455414554245543455444554545546455474554845549455504555145552455534555445555455564555745558455594556045561455624556345564455654556645567455684556945570455714557245573455744557545576455774557845579455804558145582455834558445585455864558745588455894559045591455924559345594455954559645597455984559945600456014560245603456044560545606456074560845609456104561145612456134561445615456164561745618456194562045621456224562345624456254562645627456284562945630456314563245633456344563545636456374563845639456404564145642456434564445645456464564745648456494565045651456524565345654456554565645657456584565945660456614566245663456644566545666456674566845669456704567145672456734567445675456764567745678456794568045681456824568345684456854568645687456884568945690456914569245693456944569545696456974569845699457004570145702457034570445705457064570745708457094571045711457124571345714457154571645717457184571945720457214572245723457244572545726457274572845729457304573145732457334573445735457364573745738457394574045741457424574345744457454574645747457484574945750457514575245753457544575545756457574575845759457604576145762457634576445765457664576745768457694577045771457724577345774457754577645777457784577945780457814578245783457844578545786457874578845789457904579145792457934579445795457964579745798457994580045801458024580345804458054580645807458084580945810458114581245813458144581545816458174581845819458204582145822458234582445825458264582745828458294583045831458324583345834458354583645837458384583945840458414584245843458444584545846458474584845849458504585145852458534585445855458564585745858458594586045861458624586345864458654586645867458684586945870458714587245873458744587545876458774587845879458804588145882458834588445885458864588745888458894589045891458924589345894458954589645897458984589945900459014590245903459044590545906459074590845909459104591145912459134591445915459164591745918459194592045921459224592345924459254592645927459284592945930459314593245933459344593545936459374593845939459404594145942459434594445945459464594745948459494595045951459524595345954459554595645957459584595945960459614596245963459644596545966459674596845969459704597145972459734597445975459764597745978459794598045981459824598345984459854598645987459884598945990459914599245993459944599545996459974599845999460004600146002460034600446005460064600746008460094601046011460124601346014460154601646017460184601946020460214602246023460244602546026460274602846029460304603146032460334603446035460364603746038460394604046041460424604346044460454604646047460484604946050460514605246053460544605546056460574605846059460604606146062460634606446065460664606746068460694607046071460724607346074460754607646077460784607946080460814608246083460844608546086460874608846089460904609146092460934609446095460964609746098460994610046101461024610346104461054610646107461084610946110461114611246113461144611546116461174611846119461204612146122461234612446125461264612746128461294613046131461324613346134461354613646137461384613946140461414614246143461444614546146461474614846149461504615146152461534615446155461564615746158461594616046161461624616346164461654616646167461684616946170461714617246173461744617546176461774617846179461804618146182461834618446185461864618746188461894619046191461924619346194461954619646197461984619946200462014620246203462044620546206462074620846209462104621146212462134621446215462164621746218462194622046221462224622346224462254622646227462284622946230462314623246233462344623546236462374623846239462404624146242462434624446245462464624746248462494625046251462524625346254462554625646257462584625946260462614626246263462644626546266462674626846269462704627146272462734627446275462764627746278462794628046281462824628346284462854628646287462884628946290462914629246293462944629546296462974629846299463004630146302463034630446305463064630746308463094631046311463124631346314463154631646317463184631946320463214632246323463244632546326463274632846329463304633146332463334633446335463364633746338463394634046341463424634346344463454634646347463484634946350463514635246353463544635546356463574635846359463604636146362463634636446365463664636746368463694637046371463724637346374463754637646377463784637946380463814638246383463844638546386463874638846389463904639146392463934639446395463964639746398463994640046401464024640346404464054640646407464084640946410464114641246413464144641546416464174641846419464204642146422464234642446425464264642746428464294643046431464324643346434464354643646437464384643946440464414644246443464444644546446464474644846449464504645146452464534645446455464564645746458464594646046461464624646346464464654646646467464684646946470464714647246473464744647546476464774647846479464804648146482464834648446485464864648746488464894649046491464924649346494464954649646497464984649946500465014650246503465044650546506465074650846509465104651146512465134651446515465164651746518465194652046521465224652346524465254652646527465284652946530465314653246533465344653546536465374653846539465404654146542465434654446545465464654746548465494655046551465524655346554465554655646557465584655946560465614656246563465644656546566465674656846569465704657146572465734657446575465764657746578465794658046581465824658346584465854658646587465884658946590465914659246593465944659546596465974659846599466004660146602466034660446605466064660746608466094661046611466124661346614466154661646617466184661946620466214662246623466244662546626466274662846629466304663146632466334663446635466364663746638466394664046641466424664346644466454664646647466484664946650466514665246653466544665546656466574665846659466604666146662466634666446665466664666746668466694667046671466724667346674466754667646677466784667946680466814668246683466844668546686466874668846689466904669146692466934669446695466964669746698466994670046701467024670346704467054670646707467084670946710467114671246713467144671546716467174671846719467204672146722467234672446725467264672746728467294673046731467324673346734467354673646737467384673946740467414674246743467444674546746467474674846749467504675146752467534675446755467564675746758467594676046761467624676346764467654676646767467684676946770467714677246773467744677546776467774677846779467804678146782467834678446785467864678746788467894679046791467924679346794467954679646797467984679946800468014680246803468044680546806468074680846809468104681146812468134681446815468164681746818468194682046821468224682346824468254682646827468284682946830468314683246833468344683546836468374683846839468404684146842468434684446845468464684746848468494685046851468524685346854468554685646857468584685946860468614686246863468644686546866468674686846869468704687146872468734687446875468764687746878468794688046881468824688346884468854688646887468884688946890468914689246893468944689546896468974689846899469004690146902469034690446905469064690746908469094691046911469124691346914469154691646917469184691946920469214692246923469244692546926469274692846929469304693146932469334693446935469364693746938469394694046941469424694346944469454694646947469484694946950469514695246953469544695546956469574695846959469604696146962469634696446965469664696746968469694697046971469724697346974469754697646977469784697946980469814698246983469844698546986469874698846989469904699146992469934699446995469964699746998469994700047001470024700347004470054700647007470084700947010470114701247013470144701547016470174701847019470204702147022470234702447025470264702747028470294703047031470324703347034470354703647037470384703947040470414704247043470444704547046470474704847049470504705147052470534705447055470564705747058470594706047061470624706347064470654706647067470684706947070470714707247073470744707547076470774707847079470804708147082470834708447085470864708747088470894709047091470924709347094470954709647097470984709947100471014710247103471044710547106471074710847109471104711147112471134711447115471164711747118471194712047121471224712347124471254712647127471284712947130471314713247133471344713547136471374713847139471404714147142471434714447145471464714747148471494715047151471524715347154471554715647157471584715947160471614716247163471644716547166471674716847169471704717147172471734717447175471764717747178471794718047181471824718347184471854718647187471884718947190471914719247193471944719547196471974719847199472004720147202472034720447205472064720747208472094721047211472124721347214472154721647217472184721947220472214722247223472244722547226472274722847229472304723147232472334723447235472364723747238472394724047241472424724347244472454724647247472484724947250472514725247253472544725547256472574725847259472604726147262472634726447265472664726747268472694727047271472724727347274472754727647277472784727947280472814728247283472844728547286472874728847289472904729147292472934729447295472964729747298472994730047301473024730347304473054730647307473084730947310473114731247313473144731547316473174731847319473204732147322473234732447325473264732747328473294733047331473324733347334473354733647337473384733947340473414734247343473444734547346473474734847349473504735147352473534735447355473564735747358473594736047361473624736347364473654736647367473684736947370473714737247373473744737547376473774737847379473804738147382473834738447385473864738747388473894739047391473924739347394473954739647397473984739947400474014740247403474044740547406474074740847409474104741147412474134741447415474164741747418474194742047421474224742347424474254742647427474284742947430474314743247433474344743547436474374743847439474404744147442474434744447445474464744747448474494745047451474524745347454474554745647457474584745947460474614746247463474644746547466474674746847469474704747147472474734747447475474764747747478474794748047481474824748347484474854748647487474884748947490474914749247493474944749547496474974749847499475004750147502475034750447505475064750747508475094751047511475124751347514475154751647517475184751947520475214752247523475244752547526475274752847529475304753147532475334753447535475364753747538475394754047541475424754347544475454754647547475484754947550475514755247553475544755547556475574755847559475604756147562475634756447565475664756747568475694757047571475724757347574475754757647577475784757947580475814758247583475844758547586475874758847589475904759147592475934759447595475964759747598475994760047601476024760347604476054760647607476084760947610476114761247613476144761547616476174761847619476204762147622476234762447625476264762747628476294763047631476324763347634476354763647637476384763947640476414764247643476444764547646476474764847649476504765147652476534765447655476564765747658476594766047661476624766347664476654766647667476684766947670476714767247673476744767547676476774767847679476804768147682476834768447685476864768747688476894769047691476924769347694476954769647697476984769947700477014770247703477044770547706477074770847709477104771147712477134771447715477164771747718477194772047721477224772347724477254772647727477284772947730477314773247733477344773547736477374773847739477404774147742477434774447745477464774747748477494775047751477524775347754477554775647757477584775947760477614776247763477644776547766477674776847769477704777147772477734777447775477764777747778477794778047781477824778347784477854778647787477884778947790477914779247793477944779547796477974779847799478004780147802478034780447805478064780747808478094781047811478124781347814478154781647817478184781947820478214782247823478244782547826478274782847829478304783147832478334783447835478364783747838478394784047841478424784347844478454784647847478484784947850478514785247853478544785547856478574785847859478604786147862478634786447865478664786747868478694787047871478724787347874478754787647877478784787947880478814788247883478844788547886478874788847889478904789147892478934789447895478964789747898478994790047901479024790347904479054790647907479084790947910479114791247913479144791547916479174791847919479204792147922479234792447925479264792747928479294793047931479324793347934479354793647937479384793947940479414794247943479444794547946479474794847949479504795147952479534795447955479564795747958479594796047961479624796347964479654796647967479684796947970479714797247973479744797547976479774797847979479804798147982479834798447985479864798747988479894799047991479924799347994479954799647997479984799948000480014800248003480044800548006480074800848009480104801148012480134801448015480164801748018480194802048021480224802348024480254802648027480284802948030480314803248033480344803548036480374803848039480404804148042480434804448045480464804748048480494805048051480524805348054480554805648057480584805948060480614806248063480644806548066480674806848069480704807148072480734807448075480764807748078480794808048081480824808348084480854808648087480884808948090480914809248093480944809548096480974809848099481004810148102481034810448105481064810748108481094811048111481124811348114481154811648117481184811948120481214812248123481244812548126481274812848129481304813148132481334813448135481364813748138481394814048141481424814348144481454814648147481484814948150481514815248153481544815548156481574815848159481604816148162481634816448165481664816748168481694817048171481724817348174481754817648177481784817948180481814818248183481844818548186481874818848189481904819148192481934819448195481964819748198481994820048201482024820348204482054820648207482084820948210482114821248213482144821548216482174821848219482204822148222482234822448225482264822748228482294823048231482324823348234482354823648237482384823948240482414824248243482444824548246482474824848249482504825148252482534825448255482564825748258482594826048261482624826348264482654826648267482684826948270482714827248273482744827548276482774827848279482804828148282482834828448285482864828748288482894829048291482924829348294482954829648297482984829948300483014830248303483044830548306483074830848309483104831148312483134831448315483164831748318483194832048321483224832348324483254832648327483284832948330483314833248333483344833548336483374833848339483404834148342483434834448345483464834748348483494835048351483524835348354483554835648357483584835948360483614836248363483644836548366483674836848369483704837148372483734837448375483764837748378483794838048381483824838348384483854838648387483884838948390483914839248393483944839548396483974839848399484004840148402484034840448405484064840748408484094841048411484124841348414484154841648417484184841948420484214842248423484244842548426484274842848429484304843148432484334843448435484364843748438484394844048441484424844348444484454844648447484484844948450484514845248453484544845548456484574845848459484604846148462484634846448465484664846748468484694847048471484724847348474484754847648477484784847948480484814848248483484844848548486484874848848489484904849148492484934849448495484964849748498484994850048501485024850348504485054850648507485084850948510485114851248513485144851548516485174851848519485204852148522485234852448525485264852748528485294853048531485324853348534485354853648537485384853948540485414854248543485444854548546485474854848549485504855148552485534855448555485564855748558485594856048561485624856348564485654856648567485684856948570485714857248573485744857548576485774857848579485804858148582485834858448585485864858748588485894859048591485924859348594485954859648597485984859948600486014860248603486044860548606486074860848609486104861148612486134861448615486164861748618486194862048621486224862348624486254862648627486284862948630486314863248633486344863548636486374863848639486404864148642486434864448645486464864748648486494865048651486524865348654486554865648657486584865948660486614866248663486644866548666486674866848669486704867148672486734867448675486764867748678486794868048681486824868348684486854868648687486884868948690486914869248693486944869548696486974869848699487004870148702487034870448705487064870748708487094871048711487124871348714487154871648717487184871948720487214872248723487244872548726487274872848729487304873148732487334873448735487364873748738487394874048741487424874348744487454874648747487484874948750487514875248753487544875548756487574875848759487604876148762487634876448765487664876748768487694877048771487724877348774487754877648777487784877948780487814878248783487844878548786487874878848789487904879148792487934879448795487964879748798487994880048801488024880348804488054880648807488084880948810488114881248813488144881548816488174881848819488204882148822488234882448825488264882748828488294883048831488324883348834488354883648837488384883948840488414884248843488444884548846488474884848849488504885148852488534885448855488564885748858488594886048861488624886348864488654886648867488684886948870488714887248873488744887548876488774887848879488804888148882488834888448885488864888748888488894889048891488924889348894488954889648897488984889948900489014890248903489044890548906489074890848909489104891148912489134891448915489164891748918489194892048921489224892348924489254892648927489284892948930489314893248933489344893548936489374893848939489404894148942489434894448945489464894748948489494895048951489524895348954489554895648957489584895948960489614896248963489644896548966489674896848969489704897148972489734897448975489764897748978489794898048981489824898348984489854898648987489884898948990489914899248993489944899548996489974899848999490004900149002490034900449005490064900749008490094901049011490124901349014490154901649017490184901949020490214902249023490244902549026490274902849029490304903149032490334903449035490364903749038490394904049041490424904349044490454904649047490484904949050490514905249053490544905549056490574905849059490604906149062490634906449065490664906749068490694907049071490724907349074490754907649077490784907949080490814908249083490844908549086490874908849089490904909149092490934909449095490964909749098490994910049101491024910349104491054910649107491084910949110491114911249113491144911549116491174911849119491204912149122491234912449125491264912749128491294913049131491324913349134491354913649137491384913949140491414914249143491444914549146491474914849149491504915149152491534915449155491564915749158491594916049161491624916349164491654916649167491684916949170491714917249173491744917549176491774917849179491804918149182491834918449185491864918749188491894919049191491924919349194491954919649197491984919949200492014920249203492044920549206492074920849209492104921149212492134921449215492164921749218492194922049221492224922349224492254922649227492284922949230492314923249233492344923549236492374923849239492404924149242492434924449245492464924749248492494925049251492524925349254492554925649257492584925949260492614926249263492644926549266492674926849269492704927149272492734927449275492764927749278492794928049281492824928349284492854928649287492884928949290492914929249293492944929549296492974929849299493004930149302493034930449305493064930749308493094931049311493124931349314493154931649317493184931949320493214932249323493244932549326493274932849329493304933149332493334933449335493364933749338493394934049341493424934349344493454934649347493484934949350493514935249353493544935549356493574935849359493604936149362493634936449365493664936749368493694937049371493724937349374493754937649377493784937949380493814938249383493844938549386493874938849389493904939149392493934939449395493964939749398493994940049401494024940349404494054940649407494084940949410494114941249413494144941549416494174941849419494204942149422494234942449425494264942749428494294943049431494324943349434494354943649437494384943949440494414944249443494444944549446494474944849449494504945149452494534945449455494564945749458494594946049461494624946349464494654946649467494684946949470494714947249473494744947549476494774947849479494804948149482494834948449485494864948749488494894949049491494924949349494494954949649497494984949949500495014950249503495044950549506495074950849509495104951149512495134951449515495164951749518495194952049521495224952349524495254952649527495284952949530495314953249533495344953549536495374953849539495404954149542495434954449545495464954749548495494955049551495524955349554495554955649557495584955949560495614956249563495644956549566495674956849569495704957149572495734957449575495764957749578495794958049581495824958349584495854958649587495884958949590495914959249593495944959549596495974959849599496004960149602496034960449605496064960749608496094961049611496124961349614496154961649617496184961949620496214962249623496244962549626496274962849629496304963149632496334963449635496364963749638496394964049641496424964349644496454964649647496484964949650496514965249653496544965549656496574965849659496604966149662496634966449665496664966749668496694967049671496724967349674496754967649677496784967949680496814968249683496844968549686496874968849689496904969149692496934969449695496964969749698496994970049701497024970349704497054970649707497084970949710497114971249713497144971549716497174971849719497204972149722497234972449725497264972749728497294973049731497324973349734497354973649737497384973949740497414974249743497444974549746497474974849749497504975149752497534975449755497564975749758497594976049761497624976349764497654976649767497684976949770497714977249773497744977549776497774977849779497804978149782497834978449785497864978749788497894979049791497924979349794497954979649797497984979949800498014980249803498044980549806498074980849809498104981149812498134981449815498164981749818498194982049821498224982349824498254982649827498284982949830498314983249833498344983549836498374983849839498404984149842498434984449845498464984749848498494985049851498524985349854498554985649857498584985949860498614986249863498644986549866498674986849869498704987149872498734987449875498764987749878498794988049881498824988349884498854988649887498884988949890498914989249893498944989549896498974989849899499004990149902499034990449905499064990749908499094991049911499124991349914499154991649917499184991949920499214992249923499244992549926499274992849929499304993149932499334993449935499364993749938499394994049941499424994349944499454994649947499484994949950499514995249953499544995549956499574995849959499604996149962499634996449965499664996749968499694997049971499724997349974499754997649977499784997949980499814998249983499844998549986499874998849989499904999149992499934999449995499964999749998499995000050001500025000350004500055000650007500085000950010500115001250013500145001550016500175001850019500205002150022500235002450025500265002750028500295003050031500325003350034500355003650037500385003950040500415004250043500445004550046500475004850049500505005150052500535005450055500565005750058500595006050061500625006350064500655006650067500685006950070500715007250073500745007550076500775007850079500805008150082500835008450085500865008750088500895009050091500925009350094500955009650097500985009950100501015010250103501045010550106501075010850109501105011150112501135011450115501165011750118501195012050121501225012350124501255012650127501285012950130501315013250133501345013550136501375013850139501405014150142501435014450145501465014750148501495015050151501525015350154501555015650157501585015950160501615016250163501645016550166501675016850169501705017150172501735017450175501765017750178501795018050181501825018350184501855018650187501885018950190501915019250193501945019550196501975019850199502005020150202502035020450205502065020750208502095021050211502125021350214502155021650217502185021950220502215022250223502245022550226502275022850229502305023150232502335023450235502365023750238502395024050241502425024350244502455024650247502485024950250502515025250253502545025550256502575025850259502605026150262502635026450265502665026750268502695027050271502725027350274502755027650277502785027950280502815028250283502845028550286502875028850289502905029150292502935029450295502965029750298502995030050301503025030350304503055030650307503085030950310503115031250313503145031550316503175031850319503205032150322503235032450325503265032750328503295033050331503325033350334503355033650337503385033950340503415034250343503445034550346503475034850349503505035150352503535035450355503565035750358503595036050361503625036350364503655036650367503685036950370503715037250373503745037550376503775037850379503805038150382503835038450385503865038750388503895039050391503925039350394503955039650397503985039950400504015040250403504045040550406504075040850409504105041150412504135041450415504165041750418504195042050421504225042350424504255042650427504285042950430504315043250433504345043550436504375043850439504405044150442504435044450445504465044750448504495045050451504525045350454504555045650457504585045950460504615046250463504645046550466504675046850469504705047150472504735047450475504765047750478504795048050481504825048350484504855048650487504885048950490504915049250493504945049550496504975049850499505005050150502505035050450505505065050750508505095051050511505125051350514505155051650517505185051950520505215052250523505245052550526505275052850529505305053150532505335053450535505365053750538505395054050541505425054350544505455054650547505485054950550505515055250553505545055550556505575055850559505605056150562505635056450565505665056750568505695057050571505725057350574505755057650577505785057950580505815058250583505845058550586505875058850589505905059150592505935059450595505965059750598505995060050601506025060350604506055060650607506085060950610506115061250613506145061550616506175061850619506205062150622506235062450625506265062750628506295063050631506325063350634506355063650637506385063950640506415064250643506445064550646506475064850649506505065150652506535065450655506565065750658506595066050661506625066350664506655066650667506685066950670506715067250673506745067550676506775067850679506805068150682506835068450685506865068750688506895069050691506925069350694506955069650697506985069950700507015070250703507045070550706507075070850709507105071150712507135071450715507165071750718507195072050721507225072350724507255072650727507285072950730507315073250733507345073550736507375073850739507405074150742507435074450745507465074750748507495075050751507525075350754507555075650757507585075950760507615076250763507645076550766507675076850769507705077150772507735077450775507765077750778507795078050781507825078350784507855078650787507885078950790507915079250793507945079550796507975079850799508005080150802508035080450805508065080750808508095081050811508125081350814508155081650817508185081950820508215082250823508245082550826508275082850829508305083150832508335083450835508365083750838508395084050841508425084350844508455084650847508485084950850508515085250853508545085550856508575085850859508605086150862508635086450865508665086750868508695087050871508725087350874508755087650877508785087950880508815088250883508845088550886508875088850889508905089150892508935089450895508965089750898508995090050901509025090350904509055090650907509085090950910509115091250913509145091550916509175091850919509205092150922509235092450925509265092750928509295093050931509325093350934509355093650937509385093950940509415094250943509445094550946509475094850949509505095150952509535095450955509565095750958509595096050961509625096350964509655096650967509685096950970509715097250973509745097550976509775097850979509805098150982509835098450985509865098750988509895099050991509925099350994509955099650997509985099951000510015100251003510045100551006510075100851009510105101151012510135101451015510165101751018510195102051021510225102351024510255102651027510285102951030510315103251033510345103551036510375103851039510405104151042510435104451045510465104751048510495105051051510525105351054510555105651057510585105951060510615106251063510645106551066510675106851069510705107151072510735107451075510765107751078510795108051081510825108351084510855108651087510885108951090510915109251093510945109551096510975109851099511005110151102511035110451105511065110751108511095111051111511125111351114511155111651117511185111951120511215112251123511245112551126511275112851129511305113151132511335113451135511365113751138511395114051141511425114351144511455114651147511485114951150511515115251153511545115551156511575115851159511605116151162511635116451165511665116751168511695117051171511725117351174511755117651177511785117951180511815118251183511845118551186511875118851189511905119151192511935119451195511965119751198511995120051201512025120351204512055120651207512085120951210512115121251213512145121551216512175121851219512205122151222512235122451225512265122751228512295123051231512325123351234512355123651237512385123951240512415124251243512445124551246512475124851249512505125151252512535125451255512565125751258512595126051261512625126351264512655126651267512685126951270512715127251273512745127551276512775127851279512805128151282512835128451285512865128751288512895129051291512925129351294512955129651297512985129951300513015130251303513045130551306513075130851309513105131151312513135131451315513165131751318513195132051321513225132351324513255132651327513285132951330513315133251333513345133551336513375133851339513405134151342513435134451345513465134751348513495135051351513525135351354513555135651357513585135951360513615136251363513645136551366513675136851369513705137151372513735137451375513765137751378513795138051381513825138351384513855138651387513885138951390513915139251393513945139551396513975139851399514005140151402514035140451405514065140751408514095141051411514125141351414514155141651417514185141951420514215142251423514245142551426514275142851429514305143151432514335143451435514365143751438514395144051441514425144351444514455144651447514485144951450514515145251453514545145551456514575145851459514605146151462514635146451465514665146751468514695147051471514725147351474514755147651477514785147951480514815148251483514845148551486514875148851489514905149151492514935149451495514965149751498514995150051501515025150351504515055150651507515085150951510515115151251513515145151551516515175151851519515205152151522515235152451525515265152751528515295153051531515325153351534515355153651537515385153951540515415154251543515445154551546515475154851549515505155151552515535155451555515565155751558515595156051561515625156351564515655156651567515685156951570515715157251573515745157551576515775157851579515805158151582515835158451585515865158751588515895159051591515925159351594515955159651597515985159951600516015160251603516045160551606516075160851609516105161151612516135161451615516165161751618516195162051621516225162351624516255162651627516285162951630516315163251633516345163551636516375163851639516405164151642516435164451645516465164751648516495165051651516525165351654516555165651657516585165951660516615166251663516645166551666516675166851669516705167151672516735167451675516765167751678516795168051681516825168351684516855168651687516885168951690516915169251693516945169551696516975169851699517005170151702517035170451705517065170751708517095171051711517125171351714517155171651717517185171951720517215172251723517245172551726517275172851729517305173151732517335173451735517365173751738517395174051741517425174351744517455174651747517485174951750517515175251753517545175551756517575175851759517605176151762517635176451765517665176751768517695177051771517725177351774517755177651777517785177951780517815178251783517845178551786517875178851789517905179151792517935179451795517965179751798517995180051801518025180351804518055180651807518085180951810518115181251813518145181551816518175181851819518205182151822518235182451825518265182751828518295183051831518325183351834518355183651837518385183951840518415184251843518445184551846518475184851849518505185151852518535185451855518565185751858518595186051861518625186351864518655186651867518685186951870518715187251873518745187551876518775187851879518805188151882518835188451885518865188751888518895189051891518925189351894518955189651897518985189951900519015190251903519045190551906519075190851909519105191151912519135191451915519165191751918519195192051921519225192351924519255192651927519285192951930519315193251933519345193551936519375193851939519405194151942519435194451945519465194751948519495195051951519525195351954519555195651957519585195951960519615196251963519645196551966519675196851969519705197151972519735197451975519765197751978519795198051981519825198351984519855198651987519885198951990519915199251993519945199551996519975199851999520005200152002520035200452005520065200752008520095201052011520125201352014520155201652017520185201952020520215202252023520245202552026520275202852029520305203152032520335203452035520365203752038520395204052041520425204352044520455204652047520485204952050520515205252053520545205552056520575205852059520605206152062520635206452065520665206752068520695207052071520725207352074520755207652077520785207952080520815208252083520845208552086520875208852089520905209152092520935209452095520965209752098520995210052101521025210352104521055210652107521085210952110521115211252113521145211552116521175211852119521205212152122521235212452125521265212752128521295213052131521325213352134521355213652137521385213952140521415214252143521445214552146521475214852149521505215152152521535215452155521565215752158521595216052161521625216352164521655216652167521685216952170521715217252173521745217552176521775217852179521805218152182521835218452185521865218752188521895219052191521925219352194521955219652197521985219952200522015220252203522045220552206522075220852209522105221152212522135221452215522165221752218522195222052221522225222352224522255222652227522285222952230522315223252233522345223552236522375223852239522405224152242522435224452245522465224752248522495225052251522525225352254522555225652257522585225952260522615226252263522645226552266522675226852269522705227152272522735227452275522765227752278522795228052281522825228352284522855228652287522885228952290522915229252293522945229552296522975229852299523005230152302523035230452305523065230752308523095231052311523125231352314523155231652317523185231952320523215232252323523245232552326523275232852329523305233152332523335233452335523365233752338523395234052341523425234352344523455234652347523485234952350523515235252353523545235552356523575235852359523605236152362 |
- <?xml version="1.0"?>
- <doc>
- <assembly>
- <name>NetTopologySuite</name>
- </assembly>
- <members>
- <member name="T:NetTopologySuite.Algorithm.AngleUtility">
- <summary>
- Utility functions for working with angles.
- Unless otherwise noted, methods in this class express angles in radians.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Algorithm.AngleUtility.PiTimes2">
- <summary>
- Value of 2 * Pi
- </summary>
- </member>
- <member name="F:NetTopologySuite.Algorithm.AngleUtility.PiOver2">
- <summary>
- Value of Pi / 2
- </summary>
- </member>
- <member name="F:NetTopologySuite.Algorithm.AngleUtility.PiOver4">
- <summary>
- Value of Pi / 4
- </summary>
- </member>
- <member name="M:NetTopologySuite.Algorithm.AngleUtility.ToDegrees(System.Double)">
- <summary>
- Converts from radians to degrees.
- </summary>
- <param name="radians">An angle in radians</param>
- <returns>The angle in degrees</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.AngleUtility.ToRadians(System.Double)">
- <summary>
- Converts from degrees to radians.
- </summary>
- <param name="angleDegrees">An angle in degrees</param>
- <returns>The angle in radians</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.AngleUtility.Angle(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Returns the angle of the vector from p0 to p1, relative to the positive X-axis.
- </summary>
- <remarks>The angle is normalized to be in the range [ -Pi, Pi ].</remarks>
- <param name="p0">The initial point of the vector.</param>
- <param name="p1">The terminal point of the vector.</param>
- <returns>The normalized angle (in radians) that p0-p1 makes with the positive X-axis</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.AngleUtility.Angle(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Returns the angle of the vector from (0,0) to p, relative to the positive X-axis.
- </summary>
- <remarks>
- The angle is normalized to be in the range ( -Pi, Pi ].
- </remarks>
- <param name="p">The terminal point of the vector.</param>
- <returns>The normalized angle (in radians) that (0,0)-p makes with the positive X-axis.</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.AngleUtility.IsAcute(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Tests whether the angle between p0-p1-p2 is acute.
- </summary>
- <remarks>
- <para>An angle is acute if it is less than 90 degrees.</para>
- <para>Note: this implementation is not precise (deterministic) for angles very close to 90 degrees.</para>
- </remarks>
- <param name="p0">An endpoint of the angle</param>
- <param name="p1">The base of the angle</param>
- <param name="p2">Another endpoint of the angle</param>
- <returns><see langword="true"/> if the angle is acute.</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.AngleUtility.IsObtuse(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Tests whether the angle between p0-p1-p2 is obtuse
- </summary>
- <remarks>
- <para>An angle is obtuse if it is greater than 90 degrees.</para>
- <para>Note: this implementation is not precise (deterministic) for angles very close to 90 degrees.</para>
- </remarks>
- <param name="p0">An endpoint of the angle</param>
- <param name="p1">The base of the angle</param>
- <param name="p2">Another endpoint of the angle</param>
- <returns><see langword="true"/> if the angle is obtuse.</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.AngleUtility.AngleBetween(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Returns the unoriented smallest angle between two vectors.
- </summary>
- <remarks>
- The computed angle will be in the range [0, Pi).
- </remarks>
- <param name="tip1">The tip of one vector</param>
- <param name="tail">The tail of each vector</param>
- <param name="tip2">The tip of the other vector</param>
- </member>
- <member name="M:NetTopologySuite.Algorithm.AngleUtility.AngleBetweenOriented(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Returns the oriented smallest angle between two vectors.
- The computed angle will be in the range (-Pi, Pi].
- A positive result corresponds to a <see cref="F:NetTopologySuite.Algorithm.OrientationIndex.CounterClockwise"/> rotation (CCW) from v1 to v2;
- a negative result corresponds to a <see cref="F:NetTopologySuite.Algorithm.OrientationIndex.Clockwise"/> (CW) rotation;
- a zero result corresponds to no rotation.
- </summary>
- <param name="tip1">The tip of v1</param>
- <param name="tail">The tail of each vector</param>
- <param name="tip2">The tip of v2</param>
- <returns>The angle between v1 and v2, relative to v1</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.AngleUtility.Bisector(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Computes the angle of the unoriented bisector
- of the smallest angle between two vectors.
- </summary>
- <remarks>The computed angle will be in the range (-Pi, Pi].</remarks>
- <param name="tip1">The tip of v1</param>
- <param name="tail">The tail of each vector</param>
- <param name="tip2">The tip of v2</param>
- <returns>The angle of the bisector between v1 and v2</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.AngleUtility.InteriorAngle(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Computes the interior angle between two segments of a ring.
- The ring is assumed to be oriented in a clockwise direction.
- </summary>
- <remarks>The computed angle will be in the range [0, 2Pi]</remarks>
- <param name="p0">A point of the ring</param>
- <param name="p1">The next point of the ring</param>
- <param name="p2">The next point of the ring</param>
- <returns>The interior angle based at <paramref name="p1"/></returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.AngleUtility.GetTurn(System.Double,System.Double)">
- <summary>
- Returns whether an angle must turn clockwise or counterclockwise to overlap another angle.
- </summary>
- <param name="ang1">An angle (in radians)</param>
- <param name="ang2">An angle (in radians)</param>
- <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>
- </member>
- <member name="M:NetTopologySuite.Algorithm.AngleUtility.Normalize(System.Double)">
- <summary>
- Computes the normalized value of an angle, which is the equivalent angle in the range ( -Pi, Pi ].
- </summary>
- <param name="angle">The angle to normalize</param>
- <returns>An equivalent angle in the range (-Pi, Pi]</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.AngleUtility.NormalizePositive(System.Double)">
- <summary>
- Computes the normalized positive value of an angle, which is the equivalent angle in the range [ 0, 2*Pi ).
- <para/>
- E.g.
- <list type="table">
- <listheader><term>Function call</term><description>Result</description></listheader>
- <item><term>NormalizePositive(0.0)</term><description>0.0</description></item>
- <item><term>NormalizePositive(-PI)</term><description><see cref="F:System.Math.PI"/></description></item>
- <item><term>NormalizePositive(-2PI)</term><description>0.0</description></item>
- <item><term>NormalizePositive(-3PI)</term><description><see cref="F:System.Math.PI"/></description></item>
- <item><term>NormalizePositive(-4PI)</term><description>0.0</description></item>
- <item><term>NormalizePositive(PI)</term><description><see cref="F:System.Math.PI"/></description></item>
- <item><term>NormalizePositive(2PI)</term><description>0.0</description></item>
- <item><term>NormalizePositive(3PI)</term><description><see cref="F:System.Math.PI"/></description></item>
- <item><term>NormalizePositive(4PI)</term><description>0.0</description></item>
- </list>
- </summary>
- <remarks></remarks>
- <param name="angle">The angle to normalize, in radians.</param>
- <returns>An equivalent positive angle</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.AngleUtility.Diff(System.Double,System.Double)">
- <summary>
- Computes the unoriented smallest difference between two angles.
- </summary>
- <remarks>
- <list type="bullet">
- <item><description>The angles are assumed to be normalized to the range [-Pi, Pi].</description></item>
- <item><description>The result will be in the range [0, Pi].</description></item>
- </list>
- </remarks>
- <param name="ang1">The angle of one vector (in [-Pi, Pi] )</param>
- <param name="ang2">The angle of the other vector (in range [-Pi, Pi] )</param>
- <returns>The angle (in radians) between the two vectors (in range [0, Pi] )</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.AngleUtility.SinSnap(System.Double)">
- <summary>
- Computes <c>Math.Sin</c> of an angle, snapping near-zero values to zero.
- </summary>
- <param name="ang">The input angle (in radians)</param>
- <returns>The result of the trigonometric function</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.AngleUtility.CosSnap(System.Double)">
- <summary>
- Computes <c>Math.Cos</c> of an angle, snapping near-zero values to zero.
- </summary>
- <param name="ang">The input angle (in radians)</param>
- <returns>The result of the trigonometric function</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.AngleUtility.Project(NetTopologySuite.Geometries.Coordinate,System.Double,System.Double)">
- <summary>
- Projects a point by a given angle and distance.
- </summary>
- <param name="p">The point to project</param>
- <param name="angle">The angle at which to project</param>
- <param name="dist">The distance to project</param>
- <returns>The projected point</returns>
- </member>
- <member name="T:NetTopologySuite.Algorithm.Area">
- <summary>
- Functions for computing area.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Area.OfRing(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Computes the area for a ring.
- </summary>
- <param name="ring">The coordinates forming the ring</param>
- <returns>The area of the ring</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Area.OfRing(NetTopologySuite.Geometries.CoordinateSequence)">
- <summary>
- Computes the area for a ring.
- </summary>
- <param name="ring">The coordinates forming the ring</param>
- <returns>The area of the ring</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Area.OfRingSigned(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Computes the signed area for a ring. The signed area is positive if the
- ring is oriented CW, negative if the ring is oriented CCW, and zero if the
- ring is degenerate or flat.
- </summary>
- <param name="ring">The coordinates forming the ring</param>
- <returns>The signed area of the ring</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Area.OfRingSigned(NetTopologySuite.Geometries.CoordinateSequence)">
- <summary>
- Computes the signed area for a ring. The signed area is positive if the
- <list type="table">
- <listheader>
- <term>value</term>
- <description>meaning</description>
- </listheader>
- <item><term>> 0</term>
- <description>The ring is oriented clockwise (CW)</description></item>
- <item><term>< 0</term>
- <description>The ring is oriented counter clockwise (CCW)</description></item>
- <item><term>== 0</term>
- <description>The ring is degenerate or flat</description></item>
- </list>
- ring is oriented CW, negative if the ring is oriented CCW, and zero if the
- ring is degenerate or flat.
- </summary>
- <param name="ring">The coordinates forming the ring</param>
- <returns>The signed area of the ring</returns>
- </member>
- <member name="T:NetTopologySuite.Algorithm.IBoundaryNodeRule">
- <summary>
- An interface for rules which determine whether node points
- which are in boundaries of <see cref="T:NetTopologySuite.Geometries.ILineal"/> geometry components
- are in the boundary of the parent geometry collection.
- The SFS specifies a single kind of boundary node rule,
- the <see cref="T:NetTopologySuite.Algorithm.BoundaryNodeRules.Mod2BoundaryNodeRule"/> rule.
- However, other kinds of Boundary Node Rules are appropriate
- in specific situations (for instance, linear network topology
- usually follows the <see cref="T:NetTopologySuite.Algorithm.BoundaryNodeRules.EndPointBoundaryNodeRule"/>.)
- Some JTS operations
- (such as <see cref="T:NetTopologySuite.Operation.Relate.RelateOp"/>, <see cref="T:NetTopologySuite.Operation.BoundaryOp"/> and <see cref="T:NetTopologySuite.Operation.Valid.IsSimpleOp"/>)
- allow the BoundaryNodeRule to be specified,
- and respect the supplied rule when computing the results of the operation.
- <para/>
- An example use case for a non-SFS-standard Boundary Node Rule is
- that of checking that a set of <see cref="T:NetTopologySuite.Geometries.LineString"/>s have
- valid linear network topology, when turn-arounds are represented
- as closed rings. In this situation, the entry road to the
- turn-around is only valid when it touches the turn-around ring
- at the single (common) endpoint. This is equivalent
- to requiring the set of <tt>LineString</tt>s to be
- <b>simple</b> under the <see cref="T:NetTopologySuite.Algorithm.BoundaryNodeRules.EndPointBoundaryNodeRule"/>.
- The SFS-standard <see cref="T:NetTopologySuite.Algorithm.BoundaryNodeRules.Mod2BoundaryNodeRule"/> is not
- sufficient to perform this test, since it
- states that closed rings have <b>no</b> boundary points.
- <para/>
- This interface and its subclasses follow the <tt>Strategy</tt> design pattern.
- </summary>
- <author>Martin Davis</author>
- <seealso cref="T:NetTopologySuite.Operation.Relate.RelateOp"/>
- <seealso cref="T:NetTopologySuite.Operation.BoundaryOp"/>
- <seealso cref="T:NetTopologySuite.Operation.Valid.IsSimpleOp"/>
- <seealso cref="T:NetTopologySuite.Algorithm.PointLocator"/>
- </member>
- <member name="M:NetTopologySuite.Algorithm.IBoundaryNodeRule.IsInBoundary(System.Int32)">
- <summary>
- Tests whether a point that lies in <c>boundaryCount</c>
- geometry component boundaries is considered to form part of the boundary
- of the parent geometry.
- </summary>
- <param name="boundaryCount">boundaryCount the number of component boundaries that this point occurs in</param>
- <returns>true if points in this number of boundaries lie in the parent boundary</returns>
- </member>
- <member name="T:NetTopologySuite.Algorithm.BoundaryNodeRules">
- <summary>
- Provides access to static instances of common <see cref="T:NetTopologySuite.Algorithm.IBoundaryNodeRule"/>s.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Algorithm.BoundaryNodeRules.Mod2BoundaryRule">
- <summary>
- The Mod-2 Boundary Node Rule (which is the rule specified in the OGC SFS).
- </summary>
- <see cref="T:NetTopologySuite.Algorithm.BoundaryNodeRules.Mod2BoundaryNodeRule"/>
- </member>
- <member name="F:NetTopologySuite.Algorithm.BoundaryNodeRules.EndpointBoundaryRule">
- <summary>The Endpoint Boundary Node Rule.</summary>
- <see cref="T:NetTopologySuite.Algorithm.BoundaryNodeRules.EndPointBoundaryNodeRule"/>
- </member>
- <member name="F:NetTopologySuite.Algorithm.BoundaryNodeRules.MultivalentEndpointBoundaryRule">
- <summary>The MultiValent Endpoint Boundary Node Rule.</summary>
- <see cref="T:NetTopologySuite.Algorithm.BoundaryNodeRules.MultiValentEndPointBoundaryNodeRule"/>
- </member>
- <member name="F:NetTopologySuite.Algorithm.BoundaryNodeRules.MonoValentEndpointBoundaryRule">
- <summary>The Monovalent Endpoint Boundary Node Rule.</summary>
- <see cref="T:NetTopologySuite.Algorithm.BoundaryNodeRules.MonoValentEndPointBoundaryNodeRule"/>
- </member>
- <member name="F:NetTopologySuite.Algorithm.BoundaryNodeRules.OgcSfsBoundaryRule">
- <summary>
- The Boundary Node Rule specified by the OGC Simple Features Specification,
- which is the same as the Mod-2 rule.
- </summary>
- <see cref="T:NetTopologySuite.Algorithm.BoundaryNodeRules.Mod2BoundaryNodeRule"/>
- </member>
- <member name="T:NetTopologySuite.Algorithm.BoundaryNodeRules.Mod2BoundaryNodeRule">
- <summary>
- A <see cref="T:NetTopologySuite.Algorithm.IBoundaryNodeRule"/> specifies that points are in the
- boundary of a lineal geometry if
- the point lies on the boundary of an odd number
- of components.
- Under this rule <see cref="T:NetTopologySuite.Geometries.LinearRing"/>s and closed
- <see cref="T:NetTopologySuite.Geometries.LineString"/>s have an empty boundary.
- </summary>
- <remarks>
- This is the rule specified by the <i>OGC SFS</i>,
- and is the default rule used in JTS.
- </remarks>
- <author>Martin Davis</author>
- </member>
- <member name="T:NetTopologySuite.Algorithm.BoundaryNodeRules.EndPointBoundaryNodeRule">
- <summary>
- A <see cref="T:NetTopologySuite.Algorithm.IBoundaryNodeRule" /> which specifies that any points which are endpoints
- of lineal components are in the boundary of the
- parent geometry.
- This corresponds to the "intuitive" topological definition
- of boundary.
- Under this rule <see cref="T:NetTopologySuite.Geometries.LinearRing" />s have a non-empty boundary
- (the common endpoint of the underlying LineString).
- </summary>
- <remarks>
- This rule is useful when dealing with linear networks.
- For example, it can be used to check
- whether linear networks are correctly noded.
- The usual network topology constraint is that linear segments may touch only at endpoints.
- In the case of a segment touching a closed segment (ring) at one point,
- the Mod2 rule cannot distinguish between the permitted case of touching at the
- node point and the invalid case of touching at some other interior (non-node) point.
- The EndPoint rule does distinguish between these cases,
- so is more appropriate for use.
- </remarks>
- <author>Martin Davis</author>
- </member>
- <member name="T:NetTopologySuite.Algorithm.BoundaryNodeRules.MultiValentEndPointBoundaryNodeRule">
- <summary>
- A <see cref="T:NetTopologySuite.Algorithm.IBoundaryNodeRule"/> which determines that only
- endpoints with valency greater than 1 are on the boundary.
- This corresponds to the boundary of a <see cref="T:NetTopologySuite.Geometries.MultiLineString"/>
- being all the "attached" endpoints, but not
- the "unattached" ones.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="T:NetTopologySuite.Algorithm.BoundaryNodeRules.MonoValentEndPointBoundaryNodeRule">
- <summary>
- A <see cref="T:NetTopologySuite.Algorithm.IBoundaryNodeRule"/> which determines that only
- endpoints with valency of exactly 1 are on the boundary.
- This corresponds to the boundary of a <see cref="T:NetTopologySuite.Geometries.MultiLineString"/>
- being all the "unattached" endpoints.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="T:NetTopologySuite.Algorithm.Centroid">
- <summary>
- Computes the centroid of a <see cref="T:NetTopologySuite.Geometries.Geometry"/> of any dimension.
- For collections the centroid is computed for the collection of
- non-empty elements of highest dimension.
- The centroid of an empty geometry is <c>null</c>
- </summary>
- <remarks>
- <h3>Algorithm</h3>
- <list type="bullet">
- <item><description><b>Dimension 2</b> - the centroid ic computed
- as a weighted sum of the centroids
- of a decomposition of the area into (possibly overlapping) triangles.
- Holes and multipolygons are handled correctly.
- See <c>http://www.faqs.org/faqs/graphics/algorithms-faq/</c>
- for further details of the basic approach.</description></item>
- <item><description><b>Dimension 1</b> - Computes the average of the midpoints
- of all line segments weighted by the segment length.
- Zero-length lines are treated as points.
- </description></item>
- <item><description><b>Dimension 0</b> - Compute the average coordinate over all points.
- Repeated points are all included in the average
- </description></item>
- </list>
- If the input geometries are empty, a <c>null</c> Coordinate is returned.
- </remarks>
- <see cref="T:NetTopologySuite.Algorithm.InteriorPoint"/>
- <see cref="T:NetTopologySuite.Algorithm.Construct.MaximumInscribedCircle"/>
- <see cref="T:NetTopologySuite.Algorithm.Construct.LargestEmptyCircle"/>
- <version>1.7</version>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Centroid.GetCentroid(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes the centroid point of a geometry.
- </summary>
- <param name="geom">The geometry to use</param>
- <returns>
- The centroid point, or null if the geometry is empty
- </returns>
- </member>
- <member name="F:NetTopologySuite.Algorithm.Centroid._areaBasePt">
- <summary>
- the point all triangles are based at
- </summary>
- </member>
- <member name="F:NetTopologySuite.Algorithm.Centroid._triangleCent3">
- <summary>
- temporary variable to hold centroid of triangle
- </summary>
- </member>
- <member name="F:NetTopologySuite.Algorithm.Centroid._areasum2">
- <summary>
- Partial area sum
- </summary>
- </member>
- <member name="F:NetTopologySuite.Algorithm.Centroid._cg3">
- <summary>
- partial centroid sum
- </summary>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Centroid.#ctor(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Creates a new instance for computing the centroid of a geometry
- </summary>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Centroid.Add(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Adds a <see cref="T:NetTopologySuite.Geometries.Geometry"/> to the centroid total.
- </summary>
- <param name="geom">>The <see cref="T:NetTopologySuite.Geometries.Geometry"/> to add.</param>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Centroid.GetCentroid">
- <summary>
- Gets the computed centroid.
- </summary>
- <returns>The computed centroid, or null if the input is empty</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Centroid.Centroid3(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Computes three times the centroid of the triangle p1-p2-p3.
- The factor of 3 is
- left in to permit division to be avoided until later.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Centroid.Area2(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Returns twice the signed area of the triangle p1-p2-p3.
- The area is positive if the triangle is oriented CCW, and negative if CW.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Centroid.AddLineSegments(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Adds the line segments defined by an array of coordinates
- to the linear centroid accumulators.
- </summary>
- <param name="pts">An array of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s</param>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Centroid.AddPoint(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Adds a point to the point centroid accumulator.
- </summary>
- <param name="pt">A <see cref="T:NetTopologySuite.Geometries.Coordinate"/></param>
- </member>
- <member name="T:NetTopologySuite.Algorithm.CGAlgorithms3D">
- <summary>
- Basic computational geometry algorithms
- for geometry and coordinates defined in 3-dimensional Cartesian space.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Algorithm.CGAlgorithms3D.Distance(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Computes the distance between the points <paramref name="p0"/> and
- <paramref name="p1"/> in 3D space
- </summary>
- <param name="p0">The first point</param>
- <param name="p1">The second point</param>
- <returns>The distance between the two points</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.CGAlgorithms3D.DistancePointSegment(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Computes the distance between the point <paramref name="p"/> and the
- segment from <paramref name="A"/> to <paramref name="B"/> in 3D space
- </summary>
- <param name="p">The point</param>
- <param name="A">The start point of the segment</param>
- <param name="B">The end point of the segment</param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.CGAlgorithms3D.DistanceSegmentSegment(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>Computes the distance between two 3D segments.</summary>
- <param name="A">The start point of the first segment</param>
- <param name="B">The end point of the first segment</param>
- <param name="C">The start point of the second segment</param>
- <param name="D">The end point of the second segment</param>
- <returns>The distance between the segments</returns>
- </member>
- <member name="T:NetTopologySuite.Algorithm.CGAlgorithmsDD">
- <summary>
- Implements basic computational geometry algorithms using <seealso cref="T:NetTopologySuite.Mathematics.DD"/> arithmetic.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Algorithm.CGAlgorithmsDD.OrientationIndex(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Returns the index of the direction of the point <c>q</c> relative to
- a vector specified by <c>p1-p2</c>.
- </summary>
- <param name="p1">The origin point of the vector</param>
- <param name="p2">The final point of the vector</param>
- <param name="q">the point to compute the direction to</param>
- <returns>
- <list type="bullet">
- <item><description><c>1</c> if q is counter-clockwise (left) from p1-p2</description></item>
- <item><description><c>-1</c> if q is clockwise (right) from p1-p2</description></item>
- <item><description><c>0</c> if q is collinear with p1-p2</description></item></list>
- </returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.CGAlgorithmsDD.OrientationIndex(System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)">
- <summary>
- Returns the index of the direction of the point <c>q</c> relative to
- a vector specified by <c>p1-p2</c>.
- </summary>
- <param name="p1x">The x-ordinate of the origin point of the vector</param>
- <param name="p1y">The y-ordinate of the origin point of the vector</param>
- <param name="p2x">The x-ordinate of the final point of the vector</param>
- <param name="p2y">The y-ordinate of the final point of the vector</param>
- <param name="qx">The x-ordinate of the point to compute the direction to</param>
- <param name="qy">The y-ordinate of the point to compute the direction to</param>
- <returns>
- <list type="bullet">
- <item><description><c>1</c> if q is counter-clockwise (left) from p1-p2</description></item>
- <item><description><c>-1</c> if q is clockwise (right) from p1-p2</description></item>
- <item><description><c>0</c> if q is collinear with p1-p2</description></item></list>
- </returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.CGAlgorithmsDD.SignOfDet2x2(NetTopologySuite.Mathematics.DD,NetTopologySuite.Mathematics.DD,NetTopologySuite.Mathematics.DD,NetTopologySuite.Mathematics.DD)">
- <summary>
- Computes the sign of the determinant of the 2x2 matrix
- with the given entries.
- </summary>
- <param name="x1"></param>
- <param name="y1"></param>
- <param name="x2"></param>
- <param name="y2"></param>
- <returns>
- <list type="bullet">
- <item><description>-1 if the determinant is negative,</description></item>
- <item><description>1 if the determinant is positive,</description></item>
- <item><description>0 if the determinant is 0.</description></item>
- </list>
- </returns>
- </member>
- <member name="F:NetTopologySuite.Algorithm.CGAlgorithmsDD.DoublePrecisionSafeEpsilon">
- <summary>
- A value which is safely greater than the
- relative round-off error in double-precision numbers
- </summary>
- </member>
- <member name="M:NetTopologySuite.Algorithm.CGAlgorithmsDD.OrientationIndexFilter(System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)">
- <summary>
- A filter for computing the orientation index of three coordinates.
- <para/>
- If the orientation can be computed safely using standard DP
- arithmetic, this routine returns the orientation index.
- Otherwise, a value i > 1 is returned.
- In this case the orientation index must
- be computed using some other more robust method.
- The filter is fast to compute, so can be used to
- avoid the use of slower robust methods except when they are really needed,
- thus providing better average performance.
- <para/>
- Uses an approach due to Jonathan Shewchuk, which is in the public domain.
- </summary>
- <param name="pax">The x-ordinate of point A</param>
- <param name="pay">The y-ordinate of point A</param>
- <param name="pbx">The x-ordinate of point B</param>
- <param name="pby">The y-ordinate of point B</param>
- <param name="pcx">The x-ordinate of point C</param>
- <param name="pcy">The y-ordinate of point C</param>
- <returns>
- <list type="bullet">
- <item><description>The orientation index if it can be computed safely</description></item>
- <item><description>> 1 if the orientation index cannot be computed safely</description></item>>
- </list>
- </returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.CGAlgorithmsDD.Intersection(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Computes an intersection point between two lines
- using DD arithmetic.
- If the lines are parallel (either identical
- or separate) a null value is returned.
- </summary>
- <param name="p1">An endpoint of line segment 1</param>
- <param name="p2">An endpoint of line segment 1</param>
- <param name="q1">An endpoint of line segment 2</param>
- <param name="q2">An endpoint of line segment 2</param>
- <returns>An intersection point if one exists, or <c>null</c> if lines are parallel.</returns>
- </member>
- <member name="T:NetTopologySuite.Algorithm.Construct.IndexedDistanceToPoint">
- <summary>
- Computes the distance between a point and a geometry
- (which may be a collection containing any type of geometry).
- Also computes the pair of points containing the input
- point and the nearest point on the geometry.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Construct.IndexedDistanceToPoint.Distance(NetTopologySuite.Geometries.Point)">
- <summary>
- Computes the distance from a point to the geometry.
- </summary>
- <param name="pt">The input point</param>
- <returns>The distance to the geometry</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Construct.IndexedDistanceToPoint.NearestPoints(NetTopologySuite.Geometries.Point)">
- <summary>
- Gets the nearest locations between the geometry and a point.
- The first location lies on the geometry,
- and the second location is the provided point.</summary>
- <param name="pt">The point to compute the nearest location for</param>
- <returns>A pair of locations</returns>
- </member>
- <member name="T:NetTopologySuite.Algorithm.Construct.IndexedPointInPolygonsLocator">
- <summary>
- Determines the location of a point in the polygonal elements of a geometry.
- Uses spatial indexing to provide efficient performance.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Construct.IndexedPointInPolygonsLocator.Locate(NetTopologySuite.Geometries.Coordinate)">
- <inheritdoc/>
- </member>
- <member name="T:NetTopologySuite.Algorithm.Construct.LargestEmptyCircle">
- <summary>
- Constructs the Largest Empty Circle for a set
- of obstacle geometries, up to a given accuracy distance tolerance.
- The obstacles may be any combination of point, linear and polygonal geometries.
- <para/>
- The Largest Empty Circle (LEC) is the largest circle
- whose interior does not intersect with any obstacle
- and whose center lies within a polygonal boundary.
- The circle center is the point in the interior of the boundary
- which has the farthest distance from the obstacles
- (up to the accuracy of the distance tolerance).
- The circle itself is determined by the center point
- and a point lying on an obstacle determining the circle radius.
- <para/>
- The polygonal boundary may be supplied explicitly.
- If it is not specified the convex hull of the obstacles is used as the boundary.
- <para/>
- To compute an LEC which lies <i>wholly</i> within
- a polygonal boundary, include the boundary of the polygon(s) as a linear obstacle.
- <para/>
- The implementation uses a successive-approximation technique
- over a grid of square cells covering the obstacles and boundary.
- The grid is refined using a branch-and-bound algorithm.
- Point containment and distance are computed in a performant
- way by using spatial indexes.
- <para/>
- </summary>
- <author>Martin Davis</author>
- <see cref="T:NetTopologySuite.Algorithm.Construct.MaximumInscribedCircle"/>
- <see cref="T:NetTopologySuite.Algorithm.InteriorPoint"/>
- <see cref="T:NetTopologySuite.Algorithm.Centroid"/>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Construct.LargestEmptyCircle.GetCenter(NetTopologySuite.Geometries.Geometry,System.Double)">
- <summary>
- Computes the center point of the Largest Empty Circle
- interior-disjoint to a set of obstacles,
- with accuracy to a given tolerance distance.
- The obstacles may be any collection of points, lines and polygons.
- The center of the LEC lies within the convex hull of the obstacles.
- </summary>
- <param name="obstacles">A geometry representing the obstacles</param>
- <param name="tolerance">The distance tolerance for computing the center point</param>
- <returns>The center point of the Largest Empty Circle</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Construct.LargestEmptyCircle.GetCenter(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,System.Double)">
- <summary>
- Computes the center point of the Largest Empty Circle
- interior-disjoint to a set of obstacles and within a polygonal boundary,
- with accuracy to a given tolerance distance.
- The obstacles may be any collection of points, lines and polygons.
- The center of the LEC lies within the given boundary.
- </summary>
- <param name="obstacles">A geometry representing the obstacles</param>
- <param name="boundary">A polygonal geometry to contain the LEC center</param>
- <param name="tolerance">The distance tolerance for computing the center point</param>
- <returns>The center point of the Largest Empty Circle</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Construct.LargestEmptyCircle.GetRadiusLine(NetTopologySuite.Geometries.Geometry,System.Double)">
- <summary>
- Computes a radius line of the Largest Empty Circle
- interior-disjoint to a set of obstacles,
- with accuracy to a given tolerance distance.
- The obstacles may be any collection of points, lines and polygons.
- The center of the LEC lies within the convex hull of the obstacles.
- </summary>
- <param name="obstacles">A geometry representing the obstacles (points and lines)</param>
- <param name="tolerance">The distance tolerance for computing the center point</param>
- <returns>A line from the center of the circle to a point on the edge</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Construct.LargestEmptyCircle.GetRadiusLine(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,System.Double)">
- <summary>
- Computes a radius line of the Largest Empty Circle
- interior-disjoint to a set of obstacles and within a polygonal boundary,
- with accuracy to a given tolerance distance.
- The obstacles may be any collection of points, lines and polygons.
- The center of the LEC lies within the given boundary.
- </summary>
- <param name="obstacles">A geometry representing the obstacles (points and lines)</param>
- <param name="boundary">A polygonal geometry to contain the LEC center</param>
- <param name="tolerance">The distance tolerance for computing the center point</param>
- <returns>A line from the center of the circle to a point on the edge</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Construct.LargestEmptyCircle.#ctor(NetTopologySuite.Geometries.Geometry,System.Double)">
- <summary>
- Creates a new instance of a Largest Empty Circle construction.
- </summary>
- <param name="obstacles">A geometry representing the obstacles (points and lines)</param>
- <param name="tolerance">The distance tolerance for computing the center point</param>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Construct.LargestEmptyCircle.#ctor(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,System.Double)">
- <summary>
- Creates a new instance of a Largest Empty Circle construction,
- interior-disjoint to a set of obstacle geometries
- and having its center within a polygonal boundary.
- The obstacles may be any collection of points, lines and polygons.
- If the boundary is null or empty the convex hull
- of the obstacles is used as the boundary.
- </summary>
- <param name="obstacles">A non-empty geometry representing the obstacles (points and lines)</param>
- <param name="boundary">A polygonal geometry to contain the LEC center (may be null or empty)</param>
- <param name="tolerance">The distance tolerance for computing the center point (a positive value)</param>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Construct.LargestEmptyCircle.GetCenter">
- <summary>
- Gets the center point of the Largest Empty Circle
- (up to the tolerance distance).
- </summary>
- <returns>The center point of the Largest Empty Circle</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Construct.LargestEmptyCircle.GetRadiusPoint">
- <summary>
- Gets a point defining the radius of the Largest Empty Circle.
- This is a point on the obstacles which is
- nearest to the computed center of the Largest Empty Circle.
- The line segment from the center to this point
- is a radius of the constructed circle, and this point
- lies on the boundary of the circle.
- </summary>
- <returns>A point defining the radius of the Largest Empty Circle</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Construct.LargestEmptyCircle.GetRadiusLine">
- <summary>
- Gets a line representing a radius of the Largest Empty Circle.
- </summary>
- <returns>A line from the center of the circle to a point on the edge</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Construct.LargestEmptyCircle.DistanceToConstraints(NetTopologySuite.Geometries.Point)">
- <summary>
- Computes the signed distance from a point to the constraints
- (obstacles and boundary).
- Points outside the boundary polygon are assigned a negative distance.
- Their containing cells will be last in the priority queue
- (but will still end up being tested since they may be refined).
- </summary>
- <param name="p">The point to compute the distance for</param>
- <returns>The signed distance to the constraints (negative indicates outside the boundary)</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Construct.LargestEmptyCircle.MayContainCircleCenter(NetTopologySuite.Algorithm.Construct.LargestEmptyCircle.Cell)">
- <summary>
- Tests whether a cell may contain the circle center,
- and thus should be refined (split into subcells
- to be investigated further.)
- </summary>
- <param name="cell">The cell to test</param>
- <returns><c>true</c> if the cell might contain the circle center</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Construct.LargestEmptyCircle.CreateInitialGrid(NetTopologySuite.Geometries.Envelope,NetTopologySuite.Utilities.PriorityQueue{NetTopologySuite.Algorithm.Construct.LargestEmptyCircle.Cell})">
- <summary>
- Initializes the queue with a cell covering
- the extent of the area.
- </summary>
- <param name="env">The area extent to cover</param>
- <param name="cellQueue">The queue to initialize</param>
- </member>
- <member name="T:NetTopologySuite.Algorithm.Construct.LargestEmptyCircle.Cell">
- <summary>
- A square grid cell centered on a given point
- with a given side half-length,
- and having a given distance from the center point to the constraints.
- The maximum possible distance from any point in the cell to the
- constraints can be computed.
- This is used as the ordering and upper-bound function in
- the branch-and-bound algorithm.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Construct.LargestEmptyCircle.Cell.CompareTo(NetTopologySuite.Algorithm.Construct.LargestEmptyCircle.Cell)">
- <summary>
- For maximum efficieny sort the PriorityQueue with largest maxDistance at front.
- Since AlternativePriorityQueue sorts least-first, need to invert the comparison
- </summary>
- </member>
- <member name="T:NetTopologySuite.Algorithm.Construct.MaximumInscribedCircle">
- <summary>
- Constructs the Maximum Inscribed Circle for a
- polygonal <see cref="T:NetTopologySuite.Geometries.Geometry"/>, up to a specified tolerance.
- The Maximum Inscribed Circle is determined by a point in the interior of the area
- which has the farthest distance from the area boundary,
- along with a boundary point at that distance.
- <para/>
- In the context of geography the center of the Maximum Inscribed Circle
- is known as the <b>Pole of Inaccessibility</b>.
- A cartographic use case is to determine a suitable point
- to place a map label within a polygon.
- <para/>
- The radius length of the Maximum Inscribed Circle is a
- measure of how "narrow" a polygon is. It is the
- distance at which the negative buffer becomes empty.
- <para/>
- The class supports polygons with holes and multipolygons.
- <para/>
- The implementation uses a successive-approximation technique
- over a grid of square cells covering the area geometry.
- The grid is refined using a branch-and-bound algorithm.
- Point containment and distance are computed in a performant
- way by using spatial indexes.
- <h3>Future Enhancements</h3>
- <list type="bullet">
- <item><description>Support a polygonal constraint on placement of center</description></item>
- </list>
- </summary>
- <author>Martin Davis</author>
- <see cref="T:NetTopologySuite.Algorithm.Construct.LargestEmptyCircle"/>
- <see cref="T:NetTopologySuite.Algorithm.InteriorPoint"/>
- <see cref="T:NetTopologySuite.Algorithm.Centroid"/>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Construct.MaximumInscribedCircle.GetCenter(NetTopologySuite.Geometries.Geometry,System.Double)">
- <summary>
- Computes the center point of the Maximum Inscribed Circle
- of a polygonal geometry, up to a given tolerance distance.
- </summary>
- <param name="polygonal">A polygonal geometry</param>
- <param name="tolerance">The distance tolerance for computing the center point</param>
- <returns>The center point of the maximum inscribed circle</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Construct.MaximumInscribedCircle.GetRadiusLine(NetTopologySuite.Geometries.Geometry,System.Double)">
- <summary>
- Computes a radius line of the Maximum Inscribed Circle
- of a polygonal geometry, up to a given tolerance distance.
- </summary>
- <param name="polygonal">A polygonal geometry</param>
- <param name="tolerance">The distance tolerance for computing the center point</param>
- <returns>A line from the center to a point on the circle</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Construct.MaximumInscribedCircle.ComputeMaximumIterations(NetTopologySuite.Geometries.Geometry,System.Double)">
- <summary>
- Computes the maximum number of iterations allowed.
- Uses a heuristic based on the size of the input geometry
- and the tolerance distance.
- A smaller tolerance distance allows more iterations.
- This is a rough heuristic, intended
- to prevent huge iterations for very thin geometries.
- </summary>
- <param name="geom">The input geometry</param>
- <param name="toleranceDist">The tolerance distance</param>
- <returns>The maximum number of iterations allowed</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Construct.MaximumInscribedCircle.#ctor(NetTopologySuite.Geometries.Geometry,System.Double)">
- <summary>
- Creates a new instance of a Maximum Inscribed Circle computation.
- </summary>
- <param name="polygonal">An areal geometry</param>
- <param name="tolerance">The distance tolerance for computing the centre point
- (must be positive)</param>
- <exception cref="T:System.ArgumentOutOfRangeException">Thrown if the tolerance is non-positive</exception>
- <exception cref="T:System.ArgumentException">Thrown if the input geometry is non-polygonal or empty</exception>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Construct.MaximumInscribedCircle.GetCenter">
- <summary>
- Gets the center point of the maximum inscribed circle
- (up to the tolerance distance).</summary>
- <returns>The center point of the maximum inscribed circle</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Construct.MaximumInscribedCircle.GetRadiusPoint">
- <summary>
- Gets a point defining the radius of the Maximum Inscribed Circle.
- This is a point on the boundary which is
- nearest to the computed center of the Maximum Inscribed Circle.
- The line segment from the center to this point
- is a radius of the constructed circle, and this point
- lies on the boundary of the circle.
- </summary>
- <returns>A point defining the radius of the Maximum Inscribed Circle</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Construct.MaximumInscribedCircle.GetRadiusLine">
- <summary>
- Gets a line representing a radius of the Largest Empty Circle.
- </summary>
- <returns>A line from the center of the circle to a point on the edge</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Construct.MaximumInscribedCircle.DistanceToBoundary(NetTopologySuite.Geometries.Point)">
- <summary>
- Computes the signed distance from a point to the area boundary.
- Points outside the polygon are assigned a negative distance.
- Their containing cells will be last in the priority queue
- (but may still end up being tested since they may need to be refined).
- </summary>
- <param name="p">The point to compute the distance for</param>
- <returns>The signed distance to the area boundary (negative indicates outside the area)</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Construct.MaximumInscribedCircle.CreateInitialGrid(NetTopologySuite.Geometries.Envelope,NetTopologySuite.Utilities.PriorityQueue{NetTopologySuite.Algorithm.Construct.MaximumInscribedCircle.Cell})">
- <summary>
- Initializes the queue with a grid of cells covering
- the extent of the area.
- </summary>
- <param name="env">The area extent to cover</param>
- <param name="cellQueue">The queue to initialize</param>
- </member>
- <member name="T:NetTopologySuite.Algorithm.Construct.MaximumInscribedCircle.Cell">
- <summary>
- A square grid cell centered on a given point
- with a given side half-length,
- and having a given distance from the center point to the constraints.
- The maximum possible distance from any point in the cell to the
- constraints can be computed.
- This is used as the ordering and upper-bound function in
- the branch-and-bound algorithm.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Construct.MaximumInscribedCircle.Cell.CompareTo(NetTopologySuite.Algorithm.Construct.MaximumInscribedCircle.Cell)">
- <summary>
- For maximum efficieny sort the PriorityQueue with largest maxDistance at front.
- Since AlternativePriorityQueue sorts least-first, need to invert the comparison
- </summary>
- </member>
- <member name="T:NetTopologySuite.Algorithm.ConvexHull">
- <summary>
- Computes the convex hull of a <see cref="T:NetTopologySuite.Geometries.Geometry" />.
- The convex hull is the smallest convex Geometry that contains all the
- points in the input Geometry.
- <para/>
- Uses the Graham Scan algorithm.
- <para/>
- Incorporates heuristics to optimize checking for degenerate results,
- and to reduce the number of points processed for large inputs.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Algorithm.ConvexHull.Create(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})">
- <summary>
- Computes the convex hull for the given sequence of <see cref="T:NetTopologySuite.Geometries.Geometry"/> instances.
- </summary>
- <param name="geoms">
- The <see cref="T:NetTopologySuite.Geometries.Geometry"/> instances whose convex hull to compute.
- </param>
- <returns>
- The convex hull of <paramref name="geoms"/>.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.ConvexHull.#ctor(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Create a new convex hull construction for the input <c>Geometry</c>.
- </summary>
- <param name="geometry"></param>
- </member>
- <member name="M:NetTopologySuite.Algorithm.ConvexHull.#ctor(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Coordinate},NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
- Create a new convex hull construction for the input <see cref="T:NetTopologySuite.Geometries.Coordinate" /> array.
- </summary>
- <param name="pts"></param>
- <param name="geomFactory">The factory to create the convex hull geometry</param>
- </member>
- <member name="M:NetTopologySuite.Algorithm.ConvexHull.#ctor(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
- Create a new convex hull construction for the input <see cref="T:NetTopologySuite.Geometries.Coordinate"/> array.
- </summary>
- <param name="pts">The coordinate array</param>
- <param name="geomFactory">The factory to create the convex hull geometry</param>
- </member>
- <member name="M:NetTopologySuite.Algorithm.ConvexHull.GetConvexHull">
- <summary>
- Returns a <c>Geometry</c> that represents the convex hull of the input point.
- The point will contain the minimal number of points needed to
- represent the convex hull. In particular, no more than two consecutive
- points will be collinear.
- </summary>
- <returns>
- If the convex hull contains 3 or more points, a <c>Polygon</c>;
- 2 points, a <c>LineString</c>;
- 1 point, a <c>Point</c>;
- 0 points, an empty <c>GeometryCollection</c>.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.ConvexHull.CreateFewPointsResult">
- <summary>
- Checks if there are ≤2 unique points,
- which produce an obviously degenerate result.
- If there are more points, returns null to indicate this.
- <para/>
- This is a fast check for an obviously degenerate result.
- If the result is not obviously degenerate (at least 3 unique points found)
- the full uniquing of the entire point set is
- done only once during the reduce phase.
- </summary>
- <returns>A degenerate hull geometry, or null if the number of input points is large</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.ConvexHull.ExtractUnique(NetTopologySuite.Geometries.Coordinate[],System.Int32)">
- <summary>
- Extracts unique coordinates from an array of coordinates,
- up to a maximum count of values.
- If more than the given maximum of unique values are found,
- this is reported by returning <c>null</c>.
- (the expectation is that the original array can then be used).
- </summary>
- <param name="pts">An array of coordinates</param>
- <param name="maxPts">The maximum number of unique points</param>
- <returns>An array of unique values, or null</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.ConvexHull.Reduce(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Uses a heuristic to reduce the number of points scanned to compute the hull.
- The heuristic is to find a polygon guaranteed to
- be in (or on) the hull, and eliminate all points inside it.
- A quadrilateral defined by the extremal points
- in the four orthogonal directions
- can be used, but even more inclusive is
- to use an octilateral defined by the points in the 8 cardinal directions.
- Note that even if the method used to determine the polygon vertices
- is not 100% robust, this does not affect the robustness of the convex hull.
- <para/>
- To satisfy the requirements of the Graham Scan algorithm,
- the returned array has at least 3 entries.
- <para/>
- This has the side effect of making the reduced points unique,
- as required by the convex hull algorithm used.
- </summary>
- <param name="pts">The coordinates to reduce</param>
- <returns>The reduced array of coordinates</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.ConvexHull.PreSort(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Sorts the points radially CW around the point with minimum Y and then X.
- </summary>
- <param name="pts">The points to sort</param>
- <returns>The sorted points</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.ConvexHull.GrahamScan(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
-
- </summary>
- <param name="c"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.ConvexHull.IsBetween(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
-
- </summary>
- <param name="c1"></param>
- <param name="c2"></param>
- <param name="c3"></param>
- <returns>
- Whether the three coordinates are collinear
- and c2 lies between c1 and c3 inclusive.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.ConvexHull.ComputeInnerOctolateralRing(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
-
- </summary>
- <param name="inputPts"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.ConvexHull.ComputeInnerOctolateralPts(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Computes the extremal points of an inner octolateral.
- Some points may be duplicates - these are collapsed later.
- </summary>
- <param name="inputPts">The points to compute the octolateral for</param>
- <returns>The extremal points of the octolateral</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.ConvexHull.LineOrPolygon(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
-
- </summary>
- <param name="coordinates"> The vertices of a linear ring, which may or may not be flattened (i.e. vertices collinear).</param>
- <returns>A 2-vertex <c>LineString</c> if the vertices are collinear;
- otherwise, a <c>Polygon</c> with unnecessary (collinear) vertices removed. </returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.ConvexHull.CleanRing(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
-
- </summary>
- <param name="original">The vertices of a linear ring, which may or may not be flattened (i.e. vertices collinear).</param>
- <returns>The coordinates with unnecessary (collinear) vertices removed.</returns>
- </member>
- <member name="T:NetTopologySuite.Algorithm.ConvexHull.RadialComparator">
- <summary>
- Compares <see cref="T:NetTopologySuite.Geometries.Coordinate" />s for their angle and distance
- relative to an origin.
- <para/>
- The origin is assumed to be lower in Y and then X than
- all other point inputs.
- The points are ordered CCW around the origin
- </summary>
- </member>
- <member name="M:NetTopologySuite.Algorithm.ConvexHull.RadialComparator.#ctor(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Creates a new comparator using a given origin.
- The origin must be lower in Y and then X to all
- compared points,
- using <see cref="M:NetTopologySuite.Geometries.Coordinate.CompareTo(NetTopologySuite.Geometries.Coordinate)"/>.
- </summary>
- <param name="origin">The origin of the radial comparison</param>
- </member>
- <member name="M:NetTopologySuite.Algorithm.ConvexHull.RadialComparator.Compare(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
-
- </summary>
- <param name="p1"></param>
- <param name="p2"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.ConvexHull.RadialComparator.PolarCompare(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Given two points p and q compare them with respect to their radial
- ordering about point o.<br/>
- First checks radial ordering using a CCW orientation.
- If the points are collinear, the comparison is based
- on their distance to the origin.
- <para/>
- p < q iff
- <list type="bullet">
- <item><description><c>ang(o-p) < ang(o-q)</c> (e.g.o-p-q is CCW)</description></item>
- <item><description><c>or ang(o-p) == ang(o-q) && dist(o, p) < dist(o, q)</c></description></item>
- </list>
- </summary>
- <param name="o">The origin</param>
- <param name="p">A point</param>
- <param name="q">Another point</param>
- <returns>-1, 0 or 1 depending on whether p is less than,
- equal to or greater than q</returns>
- </member>
- <member name="T:NetTopologySuite.Algorithm.DistanceComputer">
- <summary>
- Functions to compute distance between basic geometric structures.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Algorithm.DistanceComputer.SegmentToSegment(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Computes the distance from a line segment AB to a line segment CD
- <para/>
- Note: NON-ROBUST!
- </summary>
- <param name="A">The first point of the first line</param>
- <param name="B">The second point of the first line (must be different to A)</param>
- <param name="C">The first point of the second line</param>
- <param name="D">The second point of the second line (must be different to C)</param>
- <returns>The distance from a line segment AB to a line segment CD</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.DistanceComputer.PointToSegmentString(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Computes the distance from a point to a sequence of line segments.
- </summary>
- <param name="p">A point</param>
- <param name="line">A sequence of contiguous line segments defined by their vertices</param>
- <returns>The minimum distance between the point and the line segments</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.DistanceComputer.PointToSegmentString(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.CoordinateSequence)">
- <summary>
- Computes the distance from a point to a sequence of line segments.
- </summary>
- <param name="p">A point</param>
- <param name="line">A sequence of contiguous line segments defined by their vertices</param>
- <returns>The minimum distance between the point and the line segments</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.DistanceComputer.PointToSegment(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Computes the distance from a point p to a line segment AB
- <para/>
- Note: NON-ROBUST!
- </summary>
- <param name="p">The point to compute the distance for</param>
- <param name="A">The first point of the first line</param>
- <param name="B">The second point of the first line (must be different to A)</param>
- <returns>The distance from p to line segment AB</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.DistanceComputer.PointToLinePerpendicular(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Computes the perpendicular distance from a point p to the (infinite) line
- containing the points AB
- </summary>
- <param name="p">The point to compute the distance for</param>
- <param name="A">The first point of the first line</param>
- <param name="B">The second point of the first line (must be different to A)</param>
- <returns>The perpendicular distance from p to line segment AB</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.DistanceComputer.PointToLinePerpendicularSigned(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Computes the perpendicular distance from a point p to the (infinite) line
- containing the points AB. The result is positive if to the left, otherwise negative.
- </summary>
- <param name="p">The point to compute the distance for</param>
- <param name="A">The first point of the first line</param>
- <param name="B">The second point of the first line (must be different to A)</param>
- <returns>The perpendicular distance from p to line segment AB</returns>
- </member>
- <member name="T:NetTopologySuite.Algorithm.Distance.DiscreteFrechetDistance">
- <summary>
- The Fréchet distance is a measure of similarity between curves. Thus, it can
- be used like the Hausdorff distance.
- <para/>
- An analogy for the Fréchet distance taken from
- <a href="http://www.kr.tuwien.ac.at/staff/eiter/et-archive/cdtr9464.pdf">
- Computing Discrete Fréchet Distance</a>:
- <pre>
- A man is walking a dog on a leash: the man can move
- on one curve, the dog on the other; both may vary their
- speed, but backtracking is not allowed.
- </pre>
- </summary>
- <remarks>
- Its metric is better than the Hausdorff distance
- because it takes the directions of the curves into account.
- It is possible that two curves have a small Hausdorff but a large
- Fréchet distance.
- <para/>
- This implementation is based on the following optimized Fréchet distance algorithm:
- <pre>Thomas Devogele, Maxence Esnault, Laurent Etienne. Distance discrète de Fréchet optimisée. Spatial
- Analysis and Geomatics (SAGEO), Nov 2016, Nice, France. hal-02110055</pre>
- <para/>
- Several matrix storage implementations are provided
- <para/>
- Additional information:
- <list type="bullet">
- <item><description><a href="https://en.wikipedia.org/wiki/Fr%C3%A9chet_distance">Fréchet distance</a></description></item>
- <item><description><a href="http://www.kr.tuwien.ac.at/staff/eiter/et-archive/cdtr9464.pdf">Computing Discrete Fréchet Distance</a></description></item>
- <item><description><a href="https://hal.archives-ouvertes.fr/hal-02110055/document">Distance discrète de Fréchet optimisée</a></description></item>
- <item><description><a href="https://towardsdatascience.com/fast-discrete-fr%C3%A9chet-distance-d6b422a8fb77">Fast Discrete Fréchet Distance</a></description></item></list>
- </remarks>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Distance.DiscreteFrechetDistance.Distance(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes the Discrete Fréchet Distance between two <see cref="T:NetTopologySuite.Geometries.Geometry"/>s
- using a cartesian distance computation function.
- </summary>
- <param name="g0">The 1st geometry</param>
- <param name="g1">The 2nd geometry</param>
- <returns>The cartesian distance between <paramref name="g0"/> and <paramref name="g1"/></returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Distance.DiscreteFrechetDistance.#ctor(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Creates an instance of this class using the provided geometries.
- </summary>
- <param name="g0">A geometry</param>
- <param name="g1">A geometry</param>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Distance.DiscreteFrechetDistance.Distance">
- <summary>
- Computes the <c>Discrete Fréchet Distance</c> between the input geometries
- </summary>
- <returns>The Discrete Fréchet Distance</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Distance.DiscreteFrechetDistance.CreateMatrixStorage(System.Int32,System.Int32)">
- <summary>
- Creates a matrix to store the computed distances
- </summary>
- <param name="rows">The number of rows</param>
- <param name="cols">The number of cols</param>
- <returns>A matrix storage</returns>
- </member>
- <member name="P:NetTopologySuite.Algorithm.Distance.DiscreteFrechetDistance.Coordinates">
- <summary>
- Gets the pair of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s at which the distance is obtained.
- </summary>
- <returns>The pair of <c>Coordinate</c>s at which the distance is obtained</returns>
- </member>
- <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[]})">
- <summary>
- Computes the Fréchet Distance for the given distance matrix.
- </summary>
- <param name="coords0">An array of <c>Coordinate</c>s</param>
- <param name="coords1">An array of <c>Coordinate</c>s</param>
- <param name="diagonal">An array of alternating col/row index values for the diagonal of the distance matrix</param>
- <param name="distances">The distance matrix</param>
- <param name="distanceToPair">A lookup for coordinate pairs based on a distance</param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Distance.DiscreteFrechetDistance.GetMinDistanceAtCorner(NetTopologySuite.Algorithm.Distance.DiscreteFrechetDistance.MatrixStorage,System.Int32,System.Int32)">
- <summary>
- Returns the minimum distance at the corner (<paramref name="i"/>, <paramref name="j"/>}).
- </summary>
- <param name="matrix">A (sparse) matrix</param>
- <param name="i">The row index</param>
- <param name="j">The column index</param>
- <returns>The minimum distance</returns>
- </member>
- <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[]})">
- <summary>
- Computes relevant distances between pairs of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s for the
- computation of the <c>Discrete Fréchet Distance</c>.
- </summary>
- <param name="coords0">An array of <c>Coordinate</c>s</param>
- <param name="coords1">An array of <c>Coordinate</c>s</param>
- <param name="diagonal">An array of alternating col/row index values for the diagonal of the distance matrix</param>
- <param name="distances">The distance matrix</param>
- <param name="distanceToPair">A lookup for coordinate pairs based on a distance</param>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Distance.DiscreteFrechetDistance.BresenhamDiagonal(System.Int32,System.Int32)">
- <summary>
- Computes the indices for the diagonal of a <c>numCols x numRows</c> grid
- using the <a href="https://en.wikipedia.org/wiki/Bresenham%27s_line_algorithm">
- Bresenham's line algorithm</a>.
- </summary>
- <param name="numCols">The number of columns</param>
- <param name="numRows">The number of rows</param>
- <returns>A packed array of column and row indices.</returns>
- </member>
- <member name="T:NetTopologySuite.Algorithm.Distance.DiscreteFrechetDistance.MatrixStorage">
- <summary>
- Abstract base class for storing 2d matrix data
- </summary>
- </member>
- <member name="P:NetTopologySuite.Algorithm.Distance.DiscreteFrechetDistance.MatrixStorage.NumRows">
- <summary>
- Gets a value indicating the number of rows
- </summary>
- </member>
- <member name="P:NetTopologySuite.Algorithm.Distance.DiscreteFrechetDistance.MatrixStorage.NumCols">
- <summary>
- Gets a value indicating the number of columns
- </summary>
- </member>
- <member name="P:NetTopologySuite.Algorithm.Distance.DiscreteFrechetDistance.MatrixStorage.DefaultValue">
- <summary>
- Gets a value indicating the default value
- </summary>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Distance.DiscreteFrechetDistance.MatrixStorage.#ctor(System.Int32,System.Int32,System.Double)">
- <summary>Creates an instance of this class</summary>
- <param name="numRows">The number of rows</param>
- <param name="numCols">The number of columns</param>
- <param name="defaultValue">A default value</param>
- </member>
- <member name="P:NetTopologySuite.Algorithm.Distance.DiscreteFrechetDistance.MatrixStorage.Item(System.Int32,System.Int32)">
- <summary>
- Gets or sets a value for the cell <paramref name="i"/>, <paramref name="j"/>
- </summary>
- <param name="i">The row index</param>
- <param name="j">The column index</param>
- <returns>The value of the cell <paramref name="i"/>, <paramref name="j"/></returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Distance.DiscreteFrechetDistance.MatrixStorage.IsValueSet(System.Int32,System.Int32)">
- <summary>
- Gets a flag indicating if the matrix has a set value, e.g. one that is different
- than <see cref="P:NetTopologySuite.Algorithm.Distance.DiscreteFrechetDistance.MatrixStorage.DefaultValue"/>.
- </summary>
- <returns>A flag indicating if the matrix has a set value</returns>
- </member>
- <member name="T:NetTopologySuite.Algorithm.Distance.DiscreteFrechetDistance.RectMatrix">
- <summary>Straight forward implementation of a rectangular matrix</summary>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Distance.DiscreteFrechetDistance.RectMatrix.#ctor(System.Int32,System.Int32,System.Double)">
- <summary>
- Creates an instance of this matrix using the given number of rows and columns.
- A default value can be specified.
- </summary>
- <param name="numRows">The number of rows</param>
- <param name="numCols">The number of columns</param>
- <param name="defaultValue">A default value</param>
- </member>
- <member name="T:NetTopologySuite.Algorithm.Distance.DiscreteFrechetDistance.CsrMatrix">
- <summary>
- A matrix implementation that adheres to the
- <a href="https://en.wikipedia.org/wiki/Sparse_matrix#Compressed_sparse_row_(CSR,_CRS_or_Yale_format)">
- Compressed sparse row format</a>.<br/>
- Note: Unfortunately not as fast as expected.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Distance.DiscreteFrechetDistance.CsrMatrix.#ctor(System.Int32,System.Int32,System.Double)">
- <summary>
- Creates an instance of this matrix using the given number of rows and columns.
- A default value can be specified.
- </summary>
- <param name="numRows">The number of rows</param>
- <param name="numCols">The number of columns</param>
- <param name="defaultValue">A default value</param>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Distance.DiscreteFrechetDistance.CsrMatrix.#ctor(System.Int32,System.Int32,System.Double,System.Int32)">
- <summary>
- Creates an instance of this matrix using the given number of rows and columns.
- A default value can be specified as well as the number of values expected.
- </summary>
- <param name="numRows">The number of rows</param>
- <param name="numCols">The number of columns</param>
- <param name="defaultValue">A default value</param>
- <param name="expectedValues">The amount of expected values</param>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Distance.DiscreteFrechetDistance.CsrMatrix.ExpectedValuesHeuristic(System.Int32,System.Int32)">
- <summary>
- Computes an initial value for the number of expected values
- </summary>
- <param name="numRows">The number of rows</param>
- <param name="numCols">The number of columns</param>
- <returns>The expected number of values in the sparse matrix</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Distance.DiscreteFrechetDistance.CsrMatrix.EnsureCapacity(System.Int32)">
- <summary>
- Ensures that the column index vector (ci) and value vector (v) are sufficiently large.
- </summary>
- <param name="required">The number of items to store in the matrix</param>
- </member>
- <member name="T:NetTopologySuite.Algorithm.Distance.DiscreteFrechetDistance.HashMapMatrix">
- <summary>
- A sparse matrix based on <see cref="T:System.Collections.Generic.Dictionary`2"/>.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Distance.DiscreteFrechetDistance.HashMapMatrix.#ctor(System.Int32,System.Int32,System.Double)">
- <summary>
- Creates an instance of this matrix using the given number of rows and columns.
- A default value can be specified.
- </summary>
- <param name="numRows">The number of rows</param>
- <param name="numCols">The number of columns</param>
- <param name="defaultValue">A default value</param>
- </member>
- <member name="T:NetTopologySuite.Algorithm.Distance.DiscreteHausdorffDistance">
- <summary>
- An algorithm for computing a distance metric
- which is an approximation to the Hausdorff Distance
- based on a discretization of the input <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
- </summary>
- <remarks>
- <para>
- The algorithm computes the Hausdorff distance restricted to discrete points
- for one of the geometries.
- The points can be either the vertices of the geometries (the default),
- or the geometries with line segments densified by a given fraction.
- Also determines two points of the Geometries which are separated by the computed distance.
- </para>
- <para>
- This algorithm is an approximation to the standard Hausdorff distance.
- Specifically,
- <code>
- for all geometries a, b: DHD(a, b) <= HD(a, b)
- </code>
- The approximation can be made as close as needed by densifying the input geometries.
- In the limit, this value will approach the true Hausdorff distance:
- <code>
- DHD(A, B, densifyFactor) -> HD(A, B) as densifyFactor -> 0.0
- </code>
- The default approximation is exact or close enough for a large subset of useful cases.
- </para>
- <para>
- Examples of these are:
- <list type="bullet">
- <item><description>
- computing distance between <c>Linestring</c>s that are roughly parallel to each other,
- and roughly equal in length. This occurs in matching linear networks.
- </description></item>
- <item><description>Testing similarity of geometries.</description></item>
- </list>
- </para>
- <para>
- An example where the default approximation is not close is:
- <code>
- A = LINESTRING (0 0, 100 0, 10 100, 10 100)
- B = LINESTRING (0 100, 0 10, 80 10)
-
- DHD(A, B) = 22.360679774997898
- HD(A, B) ~= 47.8
- </code>
- </para>
- </remarks>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Distance.DiscreteHausdorffDistance.Distance(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes the Discrete Hausdorff Distance of two <see cref="T:NetTopologySuite.Geometries.Geometry"/>s.
- </summary>
- <param name="g0">A geometry</param>
- <param name="g1">A geometry</param>
- <returns>The Discrete Hausdorff Distance</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Distance.DiscreteHausdorffDistance.Distance(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,System.Double)">
- <summary>
- Computes the Discrete Hausdorff Distance of two <see cref="T:NetTopologySuite.Geometries.Geometry"/>s.
- </summary>
- <param name="g0">A geometry</param>
- <param name="g1">A geometry</param>
- <param name="densifyFraction">The densify fraction. A value of 0 indicates, that no densification should take place</param>
- <returns>The Discrete Hausdorff Distance</returns>
- </member>
- <member name="F:NetTopologySuite.Algorithm.Distance.DiscreteHausdorffDistance._densifyFrac">
- <summary>
- Value of 0.0 indicates that no densification should take place
- </summary>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Distance.DiscreteHausdorffDistance.#ctor(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Creates an instance of this class using the provided geometries
- </summary>
- <param name="g0">A geometry</param>
- <param name="g1">Another geometry</param>
- </member>
- <member name="P:NetTopologySuite.Algorithm.Distance.DiscreteHausdorffDistance.DensifyFraction">
- <summary>
- Gets or sets the fraction by which to densify each segment.
- </summary>
- <remarks>
- Each segment will be (virtually) split into a number of equal-length
- sub-segments, whose fraction of the total length is closest
- to the given fraction.
- </remarks>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Distance.DiscreteHausdorffDistance.Distance">
- <summary>
- Computes the discrete hausdorff distance between the two assigned geometries.
- </summary>
- <returns>The discrete hausdorff distance</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Distance.DiscreteHausdorffDistance.OrientedDistance">
- <summary>
- Computes the discrete hausdorff distance between the 1st and the 2nd assigned geometry
- </summary>
- <returns>The discrete hausdorff distance.</returns>
- </member>
- <member name="P:NetTopologySuite.Algorithm.Distance.DiscreteHausdorffDistance.Coordinates">
- <summary>
- Gets a value indicating the
- </summary>
- </member>
- <member name="T:NetTopologySuite.Algorithm.Distance.DiscreteHausdorffDistance.MaxPointDistanceFilter">
- <summary>
- A coordinate filter that computes the maximum <see cref="T:NetTopologySuite.Algorithm.Distance.PointPairDistance"/> between points of
- an assigned <c>Geometry</c> and all filtered geometries.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Distance.DiscreteHausdorffDistance.MaxPointDistanceFilter.#ctor(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Creates an instance of this class
- </summary>
- <param name="geom">A geometry</param>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Distance.DiscreteHausdorffDistance.MaxPointDistanceFilter.Filter(NetTopologySuite.Geometries.Coordinate)">
- <inheritdoc cref="M:NetTopologySuite.Geometries.ICoordinateFilter.Filter(NetTopologySuite.Geometries.Coordinate)"/>
- </member>
- <member name="P:NetTopologySuite.Algorithm.Distance.DiscreteHausdorffDistance.MaxPointDistanceFilter.MaxPointDistance">
- <summary>
- Gets a value indicating the maximum distance between
- an assigned <c>Geometry</c> and the filtered one.
- </summary>
- </member>
- <member name="T:NetTopologySuite.Algorithm.Distance.DiscreteHausdorffDistance.MaxDensifiedByFractionDistanceFilter">
- <summary>
- A coordinate filter that computes the maximum <see cref="T:NetTopologySuite.Algorithm.Distance.PointPairDistance"/> between points of
- an assigned <c>Geometry</c> and all filtered geometries. The filtered geometries' line segments
- are
- </summary>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Distance.DiscreteHausdorffDistance.MaxDensifiedByFractionDistanceFilter.#ctor(NetTopologySuite.Geometries.Geometry,System.Double)">
- <summary>
- Creates an instance of this filter class
- </summary>
- <param name="geom">The geometry to densify</param>
- <param name="fraction">The densification fraction</param>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Distance.DiscreteHausdorffDistance.MaxDensifiedByFractionDistanceFilter.Filter(NetTopologySuite.Geometries.CoordinateSequence,System.Int32)">
- <inheritdoc cref="M:NetTopologySuite.Geometries.ICoordinateSequenceFilter.Filter(NetTopologySuite.Geometries.CoordinateSequence,System.Int32)"/>
- </member>
- <member name="P:NetTopologySuite.Algorithm.Distance.DiscreteHausdorffDistance.MaxDensifiedByFractionDistanceFilter.GeometryChanged">
- <inheritdoc cref="P:NetTopologySuite.Geometries.ICoordinateSequenceFilter.GeometryChanged"/>
- <returns>As this filter does not change the geometry, the return value is always <c>false</c></returns>
- </member>
- <member name="P:NetTopologySuite.Algorithm.Distance.DiscreteHausdorffDistance.MaxDensifiedByFractionDistanceFilter.Done">
- <inheritdoc cref="P:NetTopologySuite.Geometries.ICoordinateSequenceFilter.Done"/>
- <returns>As this filter does not end prematurely, the return value is always <c>false</c></returns>
- </member>
- <member name="P:NetTopologySuite.Algorithm.Distance.DiscreteHausdorffDistance.MaxDensifiedByFractionDistanceFilter.MaxPointDistance">
- <summary>
- Gets a value indicating the maximum distance between p
- </summary>
- </member>
- <member name="T:NetTopologySuite.Algorithm.Distance.DistanceToPoint">
- <summary>
- Computes the Euclidean distance (L2 metric) from a <see cref="T:NetTopologySuite.Geometries.Coordinate"/> to a <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
- </summary>
- <remarks>
- Also computes two points on the geometry which are separated by the distance found.
- </remarks>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Distance.DistanceToPoint.ComputeDistance(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Algorithm.Distance.PointPairDistance)">
- <summary>
- Computes the Euclidean distance (L2 metric) from a <see cref="T:NetTopologySuite.Geometries.Coordinate"/> to a <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
- </summary>
- <param name="geom">The geometry</param>
- <param name="pt">The Point</param>
- <param name="ptDist">The <c>PointPairDistance</c></param>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Distance.DistanceToPoint.ComputeDistance(NetTopologySuite.Geometries.LineString,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Algorithm.Distance.PointPairDistance)">
- <summary>
- Computes the Euclidean distance (L2 metric) from a <see cref="T:NetTopologySuite.Geometries.Coordinate"/> to a <see cref="T:NetTopologySuite.Geometries.LineString"/>.
- </summary>
- <param name="line">The <c>LineString</c></param>
- <param name="pt">The Point</param>
- <param name="ptDist">The <c>PointPairDistance</c></param>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Distance.DistanceToPoint.ComputeDistance(NetTopologySuite.Geometries.LineSegment,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Algorithm.Distance.PointPairDistance)">
- <summary>
- Computes the Euclidean distance (L2 metric) from a <see cref="T:NetTopologySuite.Geometries.Coordinate"/> to a <see cref="T:NetTopologySuite.Geometries.LineSegment"/>.
- </summary>
- <param name="segment">The <c>LineSegment</c></param>
- <param name="pt">The Point</param>
- <param name="ptDist">The <c>PointPairDistance</c></param>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Distance.DistanceToPoint.ComputeDistance(NetTopologySuite.Geometries.Polygon,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Algorithm.Distance.PointPairDistance)">
- <summary>
- Computes the Euclidean distance (L2 metric) from a <see cref="T:NetTopologySuite.Geometries.Coordinate"/> to a <see cref="T:NetTopologySuite.Geometries.Polygon"/>.
- </summary>
- <param name="poly">The <c>Polygon</c></param>
- <param name="pt">The Point</param>
- <param name="ptDist">The <c>PointPairDistance</c></param>
- </member>
- <member name="T:NetTopologySuite.Algorithm.Distance.PointPairDistance">
- <summary>
- Contains a pair of points and the distance between them.
- </summary>
- <remarks>
- Provides methods to update with a new point pair with either maximum or minimum distance.
- </remarks>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Distance.PointPairDistance.Initialize">
- <summary>
- Initializes this instance to null.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Distance.PointPairDistance.Initialize(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Initializes the points, computing the distance between them.
- </summary>
- <param name="p0">1st coordinate</param>
- <param name="p1">2nd coordinate</param>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Distance.PointPairDistance.Initialize(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,System.Double)">
- <summary>
- Initializes the points, avoiding recomputing the distance.
- </summary>
- <param name="p0">1st coordinate</param>
- <param name="p1">2nd coordinate</param>
- <param name="distance">the distance between <see paramref="p0"/> and <see paramref="p1"/></param>
- </member>
- <member name="P:NetTopologySuite.Algorithm.Distance.PointPairDistance.Distance">
- <summary>
- The distance between the paired coordinates
- </summary>
- <returns>The distance between the paired coordinates</returns>
- </member>
- <member name="P:NetTopologySuite.Algorithm.Distance.PointPairDistance.Coordinates">
- <summary>
- Gets a value indicating the paired coordinates.
- </summary>
- <returns>An array containing the paired points</returns>
- </member>
- <member name="P:NetTopologySuite.Algorithm.Distance.PointPairDistance.Item(System.Int32)">
- <summary>
- Gets the value of one of the paired points
- </summary>
- <param name="i">An index, valid are [0, 1].</param>
- <returns>The <c>Coordinate</c> at index <c>i</c>.</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Distance.PointPairDistance.SetMaximum(NetTopologySuite.Algorithm.Distance.PointPairDistance)">
- <summary>
- Updates <c>this</c> <c>PointPairDistance</c> if <paramref name="ptDist"/>
- has greater <see cref="P:NetTopologySuite.Algorithm.Distance.PointPairDistance.Distance"/> than <c>this</c> instance.
- </summary>
- <param name="ptDist">The <c>PointPairDistance</c> to test.</param>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Distance.PointPairDistance.SetMaximum(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Updates <c>this</c> <c>PointPairDistance</c> if the distance between
- <paramref name="p0"/> and <paramref name="p1"/> is greater than the
- <see cref="P:NetTopologySuite.Algorithm.Distance.PointPairDistance.Distance"/> of <c>this</c> instance.
- </summary>
- <param name="p0">The 1st point's coordinate</param>
- <param name="p1">The 2nd point's coordinate</param>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Distance.PointPairDistance.SetMinimum(NetTopologySuite.Algorithm.Distance.PointPairDistance)">
- <summary>
- Updates <c>this</c> <c>PointPairDistance</c> if <paramref name="ptDist"/>
- has a smaller <see cref="P:NetTopologySuite.Algorithm.Distance.PointPairDistance.Distance"/> than <c>this</c> instance.
- </summary>
- <param name="ptDist">The <c>PointPairDistance</c> to test.</param>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Distance.PointPairDistance.SetMinimum(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Updates <c>this</c> <c>PointPairDistance</c> if the distance between
- <paramref name="p0"/> and <paramref name="p1"/> is smaller than the
- <see cref="P:NetTopologySuite.Algorithm.Distance.PointPairDistance.Distance"/> of <c>this</c> instance.
- </summary>
- <param name="p0">The 1st point's coordinate</param>
- <param name="p1">The 2nd point's coordinate</param>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Distance.PointPairDistance.ToString">
- <inheritdoc cref="M:System.Object.ToString"/>
- </member>
- <member name="T:NetTopologySuite.Algorithm.ElevationModel">
- <summary>
- A base elevation model class.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Algorithm.ElevationModel.#ctor">
- <summary>
- Creates an elevation model that always returns <see cref="F:NetTopologySuite.Geometries.Coordinate.NullOrdinate"/> as result.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Algorithm.ElevationModel.#ctor(System.Double)">
- <summary>
- Creates an elevation model that always returns <paramref name="z"/> as result.
- </summary>
- <param name="z">The result value for <see cref="M:NetTopologySuite.Algorithm.ElevationModel.GetZ(NetTopologySuite.Geometries.Coordinate)"/> or its overloads.</param>
- </member>
- <member name="M:NetTopologySuite.Algorithm.ElevationModel.#ctor(System.Double,NetTopologySuite.Geometries.Envelope)">
- <summary>
- Creates an elevation model that always returns <paramref name="z"/> as result.
- </summary>
- <param name="z">The result value for <see cref="M:NetTopologySuite.Algorithm.ElevationModel.GetZ(NetTopologySuite.Geometries.Coordinate)"/> or its overloads.</param>
- <param name="extent">The extent where this elevation model is valid</param>
- </member>
- <member name="P:NetTopologySuite.Algorithm.ElevationModel.NoZ">
- <summary>
- Gets or sets a value indicating the default <see cref="T:NetTopologySuite.Algorithm.ElevationModel"/>
- </summary>
- <remarks>The value <c>null</c> cannot be assigned to this property, it will be converted to a no-op elevation model.</remarks>
- </member>
- <member name="P:NetTopologySuite.Algorithm.ElevationModel.Extent">
- <summary>
- Gets a value indicating the extent where this elevation model is valid.
- </summary>
- <remarks>
- If this value is <c>null</c>, no check for the validity of the
- input arguments for <see cref="M:NetTopologySuite.Algorithm.ElevationModel.GetZ(NetTopologySuite.Geometries.Coordinate)"/> and its overload is made.
- </remarks>
- </member>
- <member name="M:NetTopologySuite.Algorithm.ElevationModel.GetZ(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Gets the z-ordinate value for a given <paramref name="coordinate"/>.
- <para/>
- For locations outside of <see cref="P:NetTopologySuite.Algorithm.ElevationModel.Extent"/>, <see cref="F:NetTopologySuite.Geometries.Coordinate.NullOrdinate"/> is returned.
- </summary>
- <param name="coordinate">A coordinate to get the z-ordinate value.</param>
- <returns>The z-ordinate value</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.ElevationModel.GetZ(System.Double,System.Double)">
- <summary>
- Gets the z-ordinate value for a given pair of <paramref name="x"/> and <paramref name="y"/> ordinates.
- <para/>
- For locations outside of <see cref="P:NetTopologySuite.Algorithm.ElevationModel.Extent"/>, <see cref="F:NetTopologySuite.Geometries.Coordinate.NullOrdinate"/> is returned.
- </summary>
- <param name="x">A x-ordinate value.</param>
- <param name="y">A y-ordinate value.</param>
- <returns>The z-ordinate value</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.ElevationModel.GetZ(System.ReadOnlySpan{System.Double},System.Span{System.Double})">
- <summary>
- Gets missing <paramref name="z"/>-ordinate values for <paramref name="xy"/>-ordinate pairs.
- <para/>
- For locations outside of <see cref="P:NetTopologySuite.Algorithm.ElevationModel.Extent"/>, <see cref="F:NetTopologySuite.Geometries.Coordinate.NullOrdinate"/> is set.
- <para/>
- In order to update z-ordinate at index idx <c>double.IsNaN(z[idx])</c> has to be true.
- </summary>
- <param name="xy">An array of x- and y- ordinates</param>
- <param name="z">An array for the missing z-ordinate values</param>
- <exception cref="T:System.ArgumentException">Thrown if xy span isn't twice the size of z-span</exception>
- </member>
- <member name="T:NetTopologySuite.Algorithm.ElevationModels">
- <summary>
- Extension methods to work with <see cref="T:NetTopologySuite.Algorithm.ElevationModel"/>s.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Algorithm.ElevationModels.CopyWithZ(NetTopologySuite.Algorithm.ElevationModel,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Creates a copy of <paramref name="c"/> that has the z-ordinate value at <paramref name="c"/>.
- If the elevation model can't retrieve a z-ordinate value, a copy of <paramref name="c"/> is
- returned.
- </summary>
- <param name="self">The elevation model to use</param>
- <param name="c">A coordinate</param>
- <returns>A copy of <paramref name="c"/> with the z-ordinate value.</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.ElevationModels.GetZ(NetTopologySuite.Algorithm.ElevationModel,System.Double[],System.Double[])">
- <summary>
- Function to get z-ordinate values for an array of xy-ordinate values
- </summary>
- <param name="self">The elevation model to use</param>
- <param name="xy">An array of xy-ordinate values</param>
- <param name="z">The array of z-ordinate values</param>
- </member>
- <member name="T:NetTopologySuite.Algorithm.ElevationModels.CoordinateSequenceToXYAndZ">
- <summary>
- Method signature to extract xy- and z-ordinate values from a coordinate sequence
- </summary>
- <param name="sequence">The sequence to extract xy- and z ordinates from</param>
- <param name="xy">The xy-ordinate values</param>
- <param name="z">The z-ordinate values</param>
- </member>
- <member name="M:NetTopologySuite.Algorithm.ElevationModels.AddMissingZ(NetTopologySuite.Algorithm.ElevationModel,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Method to add missing z-ordinate values to a geometry. The geometry must be
- built of <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>s that are able to carry z-ordinate values.
- </summary>
- <param name="self">The elevation model providing missing z-ordinate values</param>
- <param name="g">The geometry to add the missing z-ordinate values to</param>
- </member>
- <member name="M:NetTopologySuite.Algorithm.ElevationModels.AddMissingZ(NetTopologySuite.Algorithm.ElevationModel,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Algorithm.ElevationModels.CoordinateSequenceToXYAndZ)">
- <summary>
- Method to add missing z-ordinate values to a geometry. The geometry must be
- built of <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>s that are able to carry z-ordinate values.
- </summary>
- <param name="self">The elevation model providing missing z-ordinate values</param>
- <param name="g">The geometry to add the missing z-ordinate values to</param>
- <param name="seqToXYAndZ">A method to convert a coordinate sequence into arrays of xy- and z-ordinate values.</param>
- </member>
- <member name="T:NetTopologySuite.Algorithm.ElevationModels.AddMissingZFilter">
- <summary>
- A filter class to add z-ordinate values where they are missing
- </summary>
- </member>
- <member name="M:NetTopologySuite.Algorithm.ElevationModels.CsToXYAndZ(NetTopologySuite.Geometries.CoordinateSequence,System.Span{System.Double},System.Span{System.Double})">
- <summary>
- Default -naive- implementation to convert sequence to arrays of xy- and z-ordinate values
- </summary>
- <param name="seq">A coordinate sequence</param>
- <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>
- <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>
- </member>
- <member name="T:NetTopologySuite.Algorithm.HCoordinate">
- <summary>
- Represents a homogeneous coordinate in a 2-D coordinate space.
- In NTS <see cref="T:NetTopologySuite.Algorithm.HCoordinate"/>s are used as a clean way
- of computing intersections between line segments.
- </summary>
- <author>David Skea</author>
- </member>
- <member name="M:NetTopologySuite.Algorithm.HCoordinate.Intersection(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Computes the (approximate) intersection point between two line segments using homogeneous coordinates.
- </summary>
- <remarks>
- Note that this algorithm is
- not numerically stable; i.e. it can produce intersection points which
- lie outside the envelope of the line segments themselves. In order
- to increase the precision of the calculation input points should be normalized
- before passing them to this routine.
- </remarks>
- <param name="p1">1st Coordinate of 1st linesegment</param>
- <param name="p2">2nd Coordinate of 1st linesegment</param>
- <param name="q1">1st Coordinate of 2nd linesegment</param>
- <param name="q2">2nd Coordinate of 2nd linesegment</param>
- </member>
- <member name="M:NetTopologySuite.Algorithm.HCoordinate.OldIntersection(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Computes the (approximate) intersection point between two line segments
- using homogeneous coordinates.
- Note that this algorithm is
- not numerically stable; i.e. it can produce intersection points which
- lie outside the envelope of the line segments themselves. In order
- to increase the precision of the calculation input points should be normalized
- before passing them to this routine.
- </summary>
- <param name="p1"></param>
- <param name="p2"></param>
- <param name="q1"></param>
- <param name="q2"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.HCoordinate.#ctor">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Algorithm.HCoordinate.#ctor(System.Double,System.Double,System.Double)">
- <summary>
-
- </summary>
- <param name="x"></param>
- <param name="y"></param>
- <param name="w"></param>
- </member>
- <member name="M:NetTopologySuite.Algorithm.HCoordinate.#ctor(NetTopologySuite.Geometries.Coordinate)">
- <summary>
-
- </summary>
- <param name="p"></param>
- </member>
- <member name="M:NetTopologySuite.Algorithm.HCoordinate.#ctor(NetTopologySuite.Algorithm.HCoordinate,NetTopologySuite.Algorithm.HCoordinate)">
- <summary>
-
- </summary>
- <param name="p1"></param>
- <param name="p2"></param>
- </member>
- <member name="M:NetTopologySuite.Algorithm.HCoordinate.GetX">
- <summary>
-
- </summary>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.HCoordinate.GetY">
- <summary>
-
- </summary>
- <returns></returns>
- </member>
- <member name="P:NetTopologySuite.Algorithm.HCoordinate.Coordinate">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Algorithm.HCoordinate.#ctor(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Constructs a homogeneous coordinate which is the intersection of the lines <see cref="P:NetTopologySuite.Algorithm.HCoordinate.Coordinate"/>s.
- define by the homogeneous coordinates represented by two
- </summary>
- <param name="p1">A coordinate</param>
- <param name="p2">A coordinate</param>
- </member>
- <member name="M:NetTopologySuite.Algorithm.HCoordinate.#ctor(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Creates an instance of this
- </summary>
- <param name="p1"></param>
- <param name="p2"></param>
- <param name="q1"></param>
- <param name="q2"></param>
- </member>
- <member name="T:NetTopologySuite.Algorithm.Hull.ConcaveHull">
- <summary>
- Constructs a concave hull of a set of points.
- A concave hull is a possibly non-convex polygon containing all the input points.
- A given set of points has a sequence of hulls of increasing concaveness,
- determined by a numeric target parameter.
- <para/>
- The hull is constructed by removing border triangles
- of the Delaunay Triangulation of the points,
- as long as their "size" is larger than the target criterion.
- <para/>
- The target criteria are:
- <list type="table">
- <item>
- <term>Maximum Edge Length</term>
- <description>the length of the longest edge of the hull is no larger
- than this value.</description>
- </item>
- <item>
- <term>Maximum Edge Length Factor</term>
- <description>determines the Maximum Edge Length
- by a fraction of the difference between the longest and shortest edge lengths
- in the Delaunay Triangulation.
- This normalizes the <b>Maximum Edge Length</b> to be scale-free.
- A value of 1 produces the convex hull; a value of 0 produces maximum concaveness.
- </description></item>
- <item>
- <term>Alpha</term>
- <description>produces Alpha-shapes,
- by removing border triangles with a circumradius greater than alpha.
- Large values produce the convex hull; a value of 0 produces maximum concaveness.</description>
- </item>
- </list>
- The preferred criterion is the <b>Maximum Edge Length Ratio</b>, since it is
- scale-free and local(so that no assumption needs to be made about the
- total amount of concaveness present).
- <para/>
- Other length criteria can be used by setting the Maximum Edge Length directly.
- For example, use a length relative to the longest edge length
- in the Minimum Spanning Tree of the point set.
- Or, use a length derived from the <see cref="M:NetTopologySuite.Algorithm.Hull.ConcaveHull.UniformGridEdgeLength(NetTopologySuite.Geometries.Geometry)"/> value.
- <para/>
- The computed hull is always a single connected <see cref="T:NetTopologySuite.Geometries.Polygon"/>
- (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"/>).
- This constraint may cause the concave hull to fail to meet the target criteria.
- <para/>
- Optionally the concave hull can be allowed to contain holes by setting <see cref="P:NetTopologySuite.Algorithm.Hull.ConcaveHull.HolesAllowed"/>.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Hull.ConcaveHull.UniformGridEdgeLength(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes the approximate edge length of
- a uniform square grid having the same number of
- points as a geometry and the same area as its convex hull.
- This value can be used to determine a suitable length threshold value
- for computing a concave hull.
- A value from 2 to 4 times the uniform grid length
- seems to produce reasonable results.
- </summary>
- <param name="geom">A geometry</param>
- <returns>The approximate uniform grid length</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Hull.ConcaveHull.ConcaveHullByLength(NetTopologySuite.Geometries.Geometry,System.Double)">
- <summary>
- Computes the concave hull of the vertices in a geometry
- using the target criterion of maximum edge length.
- </summary>
- <param name="geom">The input geometry</param>
- <param name="maxLength">The target maximum edge length</param>
- <returns>The concave hull</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Hull.ConcaveHull.ConcaveHullByLength(NetTopologySuite.Geometries.Geometry,System.Double,System.Boolean)">
- <summary>
- Computes the concave hull of the vertices in a geometry
- using the target criterion of maximum edge length,
- and optionally allowing holes.
- </summary>
- <param name="geom">The input geometry</param>
- <param name="maxLength">The target maximum edge length</param>
- <param name="isHolesAllowed">A flag whether holes are allowed in the result</param>
- <returns>The concave hull</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Hull.ConcaveHull.ConcaveHullByLengthRatio(NetTopologySuite.Geometries.Geometry,System.Double)">
- <summary>
- Computes the concave hull of the vertices in a geometry
- using the target criterion of maximum edge length ratio.
- The edge length ratio is a fraction of the length difference
- between the longest and shortest edges
- in the Delaunay Triangulation of the input points.
- </summary>
- <param name="geom">The input geometry</param>
- <param name="lengthRatio">The target edge length ratio</param>
- <returns>The concave hull</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Hull.ConcaveHull.ConcaveHullByLengthRatio(NetTopologySuite.Geometries.Geometry,System.Double,System.Boolean)">
- <summary>
- Computes the concave hull of the vertices in a geometry
- using the target criterion of maximum edge length ratio,
- and optionally allowing holes.
- The edge length factor is a fraction of the length difference
- between the longest and shortest edges
- in the Delaunay Triangulation of the input points.
- </summary>
- <param name="geom">The input geometry</param>
- <param name="lengthRatio">The target edge length ratio</param>
- <param name="isHolesAllowed">A flag whether holes are allowed in the result</param>
- <returns>The concave hull</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Hull.ConcaveHull.AlphaShape(NetTopologySuite.Geometries.Geometry,System.Double,System.Boolean)">
- <summary>
- Computes the alpha shape of a geometry as a polygon.
- The alpha parameter is the radius of the eroding disc.
- </summary>
- <param name="geom">The input geometry</param>
- <param name="alpha">The radius of the eroding disk</param>
- <param name="isHolesAllowed">A flag indicating if holes are allowed in the result</param>
- <returns>The alpha schape polygon</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Hull.ConcaveHull.#ctor(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Creates a new instance for a given geometry.
- </summary>
- <param name="geom">The input geometry</param>
- </member>
- <member name="P:NetTopologySuite.Algorithm.Hull.ConcaveHull.MaximumEdgeLength">
- <summary>Gets or sets the target maximum edge length for the concave hull.
- The length value must be zero or greater.
- <list type="bullet">
- <item><description>The value 0.0 produces the concave hull of smallest area
- that is still connected.</description></item>
- <item><description>Larger values produce less concave results.
- A value equal or greater than the longest Delaunay Triangulation edge length
- produces the convex hull.</description></item>
- </list>
- The <see cref="M:NetTopologySuite.Algorithm.Hull.ConcaveHull.UniformGridEdgeLength(NetTopologySuite.Geometries.Geometry)"/> value may be used as
- the basis for estimating an appropriate target maximum edge length.
- </summary>
- <seealso cref="M:NetTopologySuite.Algorithm.Hull.ConcaveHull.UniformGridEdgeLength(NetTopologySuite.Geometries.Geometry)"/>
- <returns>The target maximum edge length for the concave hull</returns>
- </member>
- <member name="P:NetTopologySuite.Algorithm.Hull.ConcaveHull.MaximumEdgeLengthRatio">
- <summary>
- Gets or sets the target maximum edge length ratio for the concave hull.
- The edge length ratio is a fraction of the difference
- between the longest and shortest edge lengths
- in the Delaunay Triangulation of the input points.
- It is a value in the range 0 to 1.
- <list type="bullet">
- <item><description>The value 0.0 produces a concave hull of minimum area
- that is still connected.</description></item>
- <item><description>The value 1.0 produces the convex hull.</description></item>
- </list>
- </summary>
- <returns>The target maximum edge length factor for the concave hull</returns>
- </member>
- <member name="P:NetTopologySuite.Algorithm.Hull.ConcaveHull.Alpha">
- <summary>
- Gets or sets the alpha parameter to compute an alpha shape of the input.
- Alpha is the radius of the eroding disc.
- Border triangles with circumradius greater than alpha are removed.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Algorithm.Hull.ConcaveHull.HolesAllowed">
- <summary>
- Gets or sets whether holes are allowed in the concave hull polygon.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Hull.ConcaveHull.GetHull">
- <summary>
- Gets the computed concave hull.
- </summary>
- <returns>The concave hull</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Hull.ConcaveHull.ComputeHull(System.Collections.Generic.IList{NetTopologySuite.Triangulate.Tri.Tri})">
- <summary>Computes the concave hull using edge length as the target criteria.
- </summary>
- <remarks>
- The erosion is done in two phases: first the border, then any
- internal holes (if required).
- This allows an fast connection check to be used
- when eroding holes,
- which makes this much more efficient than the area-based algorithm.
- </remarks>
- <param name="triList">The triangulation</param>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Hull.ConcaveHull.AddBorderTri(NetTopologySuite.Algorithm.Hull.HullTri,NetTopologySuite.Utilities.PriorityQueue{NetTopologySuite.Algorithm.Hull.HullTri})">
- <summary>
- Adds a Tri to the queue.
- Only add tris with a single border edge,
- since otherwise that would risk isolating a vertex if
- the tri ends up being eroded from the hull.
- Sets the tri size according to the threshold parameter being used.
- </summary>
- <param name="tri">The Tri to add</param>
- <param name="queue">The priority queue to add to</param>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Hull.ConcaveHull.IsInHull(NetTopologySuite.Algorithm.Hull.HullTri)">
- <summary>
- Tests if a tri is included in the hull.
- Tris with size less than the maximum are included in the hull.
- </summary>
- <param name="tri">The tri to test</param>
- <returns><c>true</c> if the tri is included in the hull</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Hull.ConcaveHull.FindCandidateHoles(System.Collections.Generic.IList{NetTopologySuite.Triangulate.Tri.Tri},System.Double)">
- <summary>
- Finds tris which may be the start of holes.
- </summary>
- <remarks>
- Only tris which have a long enough edge and which do not touch the current hull
- boundary are included.<br/>
- This avoids the risk of disconnecting the result polygon.
- The list is sorted in decreasing order of size.
- </remarks>
- <param name="triList">The triangulation</param>
- <param name="maxSizeInHull">maximum tri size which is not in a hole</param>
- <returns>A list of candidate tris that may start a hole</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Hull.ConcaveHull.RemoveHole(System.Collections.Generic.IList{NetTopologySuite.Triangulate.Tri.Tri},NetTopologySuite.Algorithm.Hull.HullTri)">
- <summary>
- Erodes a hole starting at a given triangle,
- and eroding all adjacent triangles with boundary edge length above target.
- </summary>
- <param name="triList">The triangulation</param>
- <param name="triHole">A tri which is a hole</param>
- </member>
- <member name="T:NetTopologySuite.Algorithm.Hull.ConcaveHullOfPolygons">
- <summary>
- Constructs a concave hull of a set of polygons, respecting
- the polygons as constraints.
- A concave hull is a possibly non-convex polygon containing all the input polygons.
- A given set of polygons has a sequence of hulls of increasing concaveness,
- determined by a numeric target parameter.
- The computed hull "fills the gap" between the polygons,
- and does not intersect their interior.
- <para/>
- The concave hull is constructed by removing the longest outer edges
- of the Delaunay Triangulation of the space between the polygons,
- until the target criterion parameter is reached.
- <para/>
- The target criteria are:
- <list type="bullet">
- <item><term>Maximum Edge Length</term><description>the length of the longest edge between the polygons is no larger
- than this value.</description></item>
- <item><term>Maximum Edge Length Ratio</term><description>determine the Maximum Edge Length
- as a fraction of the difference between the longest and shortest edge lengths
- between the polygons.
- This normalizes the <b>Maximum Edge Length</b> to be scale-free.
- A value of 1 produces the convex hull; a value of 0 produces the original polygons.</description></item>
- </list>
- The preferred criterion is the <b>Maximum Edge Length Ratio</b>, since it is
- scale-free and local (so that no assumption needs to be made about the
- total amount of concaveness present).
- <para/>
- Optionally the concave hull can be allowed to contain holes, via
- <see cref="P:NetTopologySuite.Algorithm.Hull.ConcaveHullOfPolygons.HolesAllowed"/>.
- <para/>
- The hull can be specified as being "tight", which means it follows the outer boundaries
- of the input polygons.
- <para/>
- The input polygons must form a valid MultiPolygon
- (i.e.they must be non - overlapping).
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Hull.ConcaveHullOfPolygons.ConcaveHullByLength(NetTopologySuite.Geometries.Geometry,System.Double)">
- <summary>
- Computes a concave hull of set of polygons
- using the target criterion of maximum edge length.
- </summary>
- <param name="polygons">The input polygons</param>
- <param name="maxLength">The target maximum edge length</param>
- <returns>The concave hull</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Hull.ConcaveHullOfPolygons.ConcaveHullByLength(NetTopologySuite.Geometries.Geometry,System.Double,System.Boolean,System.Boolean)">
- <summary>
- Computes a concave hull of set of polygons
- using the target criterion of maximum edge length,
- and allowing control over whether the hull boundary is tight
- and can contain holes.
- </summary>
- <param name="polygons">The input polygons</param>
- <param name="maxLength">The target maximum edge length</param>
- <param name="isTight">A flag indicating if the hull should be tight to the outside of the polygons</param>
- <param name="isHolesAllowed">A flag indicating if holes are allowed in the hull polygon</param>
- <returns>The concave hull</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Hull.ConcaveHullOfPolygons.ConcaveHullByLengthRatio(NetTopologySuite.Geometries.Geometry,System.Double)">
- <summary>
- Computes a concave hull of set of polygons
- using the target criterion of maximum edge length ratio.
- </summary>
- <param name="polygons">The input polygons</param>
- <param name="lengthRatio">The target maximum edge length ratio</param>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Hull.ConcaveHullOfPolygons.ConcaveHullByLengthRatio(NetTopologySuite.Geometries.Geometry,System.Double,System.Boolean,System.Boolean)">
- <summary>
- Computes a concave hull of set of polygons
- using the target criterion of maximum edge length ratio,
- and allowing control over whether the hull boundary is tight
- and can contain holes.
- </summary>
- <param name="polygons">The input polygons</param>
- <param name="lengthRatio">The target maximum edge length ratio</param>
- <param name="isTight">A flag indicating if the hull should be tight to the outside of the polygons</param>
- <param name="isHolesAllowed">A flag indicating if holes are allowed in the hull polygon</param>
- <returns>The concave hull</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Hull.ConcaveHullOfPolygons.ConcaveFillByLength(NetTopologySuite.Geometries.Geometry,System.Double)">
- <summary>
- Computes a concave fill area between a set of polygons,
- using the target criterion of maximum edge length.
- </summary>
- <param name="polygons">The input polygons</param>
- <param name="maxLength">The target maximum edge length</param>
- <returns>The concave fill</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Hull.ConcaveHullOfPolygons.ConcaveFillByLengthRatio(NetTopologySuite.Geometries.Geometry,System.Double)">
- <summary>
- Computes a concave fill area between a set of polygons,
- using the target criterion of maximum edge length ratio.
- </summary>
- <param name="polygons">The input polygons</param>
- <param name="lengthRatio">The target maximum edge length ratio</param>
- <returns>The concave fill</returns>
- </member>
- <member name="F:NetTopologySuite.Algorithm.Hull.ConcaveHullOfPolygons._borderEdgeMap">
- <summary>
- Records the edge index of the longest border edge for border tris,
- so it can be tested for length and possible removal.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Hull.ConcaveHullOfPolygons.#ctor(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Creates a new instance for a given geometry.
- </summary>
- <param name="polygons">The input geometry</param>
- </member>
- <member name="P:NetTopologySuite.Algorithm.Hull.ConcaveHullOfPolygons.MaximumEdgeLength">
- <summary>
- Gets or sets the target maximum edge length for the concave hull.
- The length value must be zero or greater.
- <list type="bullet">
- <item><description>The value 0.0 produces the input polygons.</description></item>
- <item><description>Larger values produce less concave results.</description></item>
- <item><description>Above a certain large value the result is the convex hull of the input.</description></item>
- </list>
- <para/>
- The edge length ratio provides a scale-free parameter which
- is intended to produce similar concave results for a variety of inputs.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Algorithm.Hull.ConcaveHullOfPolygons.MaximumEdgeLengthRatio">
- <summary>Gets or sets the target maximum edge length ratio for the concave hull.
- The edge length ratio is a fraction of the difference
- between the longest and shortest edge lengths
- in the Delaunay Triangulation of the area between the input polygons.
- (Roughly speaking, it is a fraction of the difference between
- the shortest and longest distances between the input polygons.)
- It is a value in the range 0 to 1.
- <list type="bullet">
- <item><description>The value 0.0 produces the original input polygons.</description></item>
- <item><description>The value 1.0 produces the convex hull.</description></item>
- </list>
- </summary>
- </member>
- <member name="P:NetTopologySuite.Algorithm.Hull.ConcaveHullOfPolygons.HolesAllowed">
- <summary>
- Gets or sets a flag indicating whether holes are allowed in the concave hull polygon.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Algorithm.Hull.ConcaveHullOfPolygons.Tight">
- <summary>
- Gets or sets a flag indicating whether the boundary of the hull
- polygon is kept tight to the outer edges of the input polygons.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Hull.ConcaveHullOfPolygons.GetHull">
- <summary>
- Gets the computed concave hull.
- </summary>
- <returns>The concave hull</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Hull.ConcaveHullOfPolygons.GetFill">
- <summary>
- Gets the concave fill, which is the area between the input polygons,
- subject to the concaveness control parameter.
- </summary>
- <returns>The concave fill</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Hull.ConcaveHullOfPolygons.VertexIndex(NetTopologySuite.Triangulate.Tri.Tri,NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Get the tri vertex index of some point in a list,
- or -1 if none are vertices.
- </summary>
- <param name="tri">The tri to test for containing a point</param>
- <param name="pts">The points to test</param>
- <returns>The vertex index of a point, or -1</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Hull.ConcaveHullOfPolygons.IsTouchingSinglePolygon(NetTopologySuite.Triangulate.Tri.Tri)">
- <summary>
- Tests whether a triangle touches a single polygon at all vertices.
- If so, it is a candidate for removal if the hull polygon
- is being kept tight to the outer boundary of the input polygons.
- Tris which touch more than one polygon are called "bridging".
- </summary>
- <param name="tri"></param>
- <returns><c>true</c> if the tri touches a single polygon</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Hull.ConcaveHullOfPolygons.AddBorderTri(NetTopologySuite.Triangulate.Tri.Tri,System.Int32)">
- <summary>
- Adds an adjacent tri to the current border.
- The adjacent edge is recorded as the border edge for the tri.
- Note that only edges adjacent to another tri can become border edges.
- Since constraint-adjacent edges do not have an adjacent tri,
- they can never be on the border and thus will not be removed
- due to being shorter than the length threshold.
- The tri containing them may still be removed via another edge, however.
- </summary>
- <param name="tri">The tri adjacent to the tri to be added to the border</param>
- <param name="index">The index of the adjacent tri</param>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Hull.ConcaveHullOfPolygons.CreateFrame(NetTopologySuite.Geometries.Envelope,NetTopologySuite.Geometries.LinearRing[],NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
- Creates a rectangular "frame" around the input polygons,
- with the input polygons as holes in it.
- The frame is large enough that the constrained Delaunay triangulation
- of it should contain the convex hull of the input as edges.
- The frame corner triangles can be removed to produce a
- triangulation of the space around and between the input polygons.
- </summary>
- <param name="polygonsEnv"></param>
- <param name="polygonRings"></param>
- <param name="geomFactory"></param>
- <returns>The frame polygon</returns>
- </member>
- <member name="T:NetTopologySuite.Algorithm.Hull.HullTri">
- <summary>
- Tris which are used to form a concave hull.
- If a Tri has an edge (or edges) with no adjacent tri
- the tri is on the boundary of the triangulation.
- The edge is a boundary edge.
- The union of those edges
- forms the (linear) boundary of the triangulation.
- The triangulation area may be a Polygon or MultiPolygon, and may or may not contain holes.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Hull.HullTri.SetSizeToBoundary">
- <summary>
- Sets the size to be the length of the boundary edges.
- This is used when constructing hull without holes,
- by erosion from the triangulation boundary.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Algorithm.Hull.HullTri.BoundaryIndex">
- <summary>
- Gets an index of a boundary edge, if there is one.
- </summary>
- <returns>A boundary edge index, or -1</returns>
- </member>
- <member name="P:NetTopologySuite.Algorithm.Hull.HullTri.BoundaryIndexCCW">
- <summary>
- Gets the most CCW boundary edge index.
- This assumes there is at least one non-boundary edge.
- </summary>
- <returns>The CCW boundary edge index</returns>
- </member>
- <member name="P:NetTopologySuite.Algorithm.Hull.HullTri.BoundaryIndexCW">
- <summary>
- Gets the most CW boundary edge index.
- This assumes there is at least one non-boundary edge.
- </summary>
- <returns>The CW boundary edge index</returns>
- </member>
- <member name="P:NetTopologySuite.Algorithm.Hull.HullTri.IsConnecting">
- <summary>
- Tests if this tri is the only one connecting its 2 adjacents.
- Assumes that the tri is on the boundary of the triangulation
- and that the triangulation does not contain holes
- </summary>
- <returns><c>true</c> if the tri is the only connection</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Hull.HullTri.Adjacent2VertexIndex">
- <summary>
- Gets the index of a vertex which is adjacent to two other tris (if any).
- </summary>
- <returns>The vertex index or -1</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Hull.HullTri.IsolatedVertexIndex(System.Collections.Generic.IList{NetTopologySuite.Triangulate.Tri.Tri})">
- <summary>
- Tests whether some vertex of this Tri has degree = 1.
- In this case it is not in any other Tris.
- </summary>
- <param name="triList">The triangulation</param>
- <returns><c>true</c> if any vertex of this tri has a degree of 1</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Hull.HullTri.CompareTo(NetTopologySuite.Algorithm.Hull.HullTri)">
- <summary>
- Sorts tris in decreasing order.
- Since PriorityQueues sort in <i>ascending</i> order,
- to sort with the largest at the head,
- smaller sizes must compare as greater than larger sizes.
- (i.e. the normal numeric comparison is reversed).
- If the sizes are identical (which should be an infrequent case),
- the areas are compared, with larger areas sorting before smaller.
- (The rationale is that larger areas indicate an area of lower point density,
- which is more likely to be in the exterior of the computed hull.)
- This improves the determinism of the queue ordering.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Algorithm.Hull.HullTri.HasBoundaryTouch">
- <summary>
- Tests if this tri has a vertex which is in the boundary,
- but not in a boundary edge.
- </summary>
- <returns><c>true</c> if the tri touches the boundary at a vertex</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Hull.HullTri.IsConnected(System.Collections.Generic.IList{NetTopologySuite.Triangulate.Tri.Tri},NetTopologySuite.Algorithm.Hull.HullTri)">
- <summary>
- Tests if a triangulation is edge-connected, if a triangle is removed.<br/>
- NOTE: this is a relatively slow operation.
- </summary>
- <param name="triList">The triangulation</param>
- <param name="exceptTri">The triangle to remove</param>
- <returns><c>true</c> if the triangulation is still connected</returns>
- </member>
- <member name="T:NetTopologySuite.Algorithm.Hull.HullTriangulation">
- <summary>
- Functions to operate on triangulations represented as
- lists of <see cref="T:NetTopologySuite.Algorithm.Hull.HullTri"/>s.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Hull.HullTriangulation.Union(System.Collections.Generic.IList{NetTopologySuite.Triangulate.Tri.Tri},NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
- Creates a polygonal geometry representing the area of a triangulation
- which may be disconnected or contain holes.
- </summary>
- <param name="triList">The triangulation</param>
- <param name="geomFactory">The geometry factory</param>
- <returns>The area polygonal geometry</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Hull.HullTriangulation.TraceBoundaryPolygon(System.Collections.Generic.IList{NetTopologySuite.Triangulate.Tri.Tri},NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
- Creates a Polygon representing the area of a triangulation
- which is connected and contains no holes.
- </summary>
- <param name="triList">The triangulation</param>
- <param name="geomFactory">The geometry factory to use</param>
- <returns>The area polygon</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Hull.HullTriangulation.TraceBoundary(System.Collections.Generic.IList{NetTopologySuite.Triangulate.Tri.Tri})">
- <summary>
- Extracts the coordinates of the edgees along the boundary of a triangulation,
- by tracing CW around the border triangles.<br/>
- Assumption: there are at least 2 tris, they are connected,
- and there are no holes.
- So each tri has at least one non-border edge, and there is only one border.
- </summary>
- <param name="triList">The triangulation</param>
- <returns>The border of the triangulation</returns>
- </member>
- <member name="T:NetTopologySuite.Algorithm.InteriorPoint">
- <summary>
- Computes an interior point of a <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
- An interior point is guaranteed to lie in the interior of the Geometry,
- if it possible to calculate such a point exactly.
- For collections the interior point is computed for the collection of
- non-empty elements of highest dimension.
- Otherwise, the point may lie on the boundary of the geometry.
- <para/>
- The interior point of an empty geometry is <c>POINT EMPTY</c>.
- <h2>Algorithm</h2>
- The point is chosen to be "close to the center" of the geometry.
- The location depends on the dimension of the input:
- <list type="bullet">
- <item><term>Dimension 2</term><description>the interior point is constructed in the middle of the longest interior segment
- of a line bisecting the area.</description></item>
- <item><term>Dimension 1</term><description>the interior point is the interior or boundary vertex closest to the centroid.</description></item>
- <item><term>Dimension 0</term><description>the point is the point closest to the centroid.</description></item>
- </list>
- <see cref="T:NetTopologySuite.Algorithm.Centroid"/>
- <see cref="T:NetTopologySuite.Algorithm.Construct.MaximumInscribedCircle"/>
- <see cref="T:NetTopologySuite.Algorithm.Construct.LargestEmptyCircle"/>
- </summary>
- </member>
- <member name="M:NetTopologySuite.Algorithm.InteriorPoint.GetInteriorPoint(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes a location of an interior point in a <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
- <para/>
- Handles all geometry types.
- </summary>
- <param name="geom">A geometry in which to find an interior point</param>
- <returns>the location of an interior point, or <c>POINT EMPTY</c> if the input is empty
- </returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.InteriorPoint.GetInteriorCoord(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes a location of an interior point in a <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
- <para/>
- Handles all geometry types.
- </summary>
- <remarks>
- This function is called <c>GetInteriorPoint</c> in JTS.
- It has been renamed to <c>GetInteriorCoord</c> to prevent a breaking change.</remarks>
- <param name="geom">A geometry in which to find an interior point</param>
- <returns>the location of an interior point, or <c>null</c> if the input is empty
- </returns>
- </member>
- <member name="T:NetTopologySuite.Algorithm.InteriorPointArea">
- <summary>
- Computes a point in the interior of an areal geometry.
- The point will lie in the geometry interior
- in all except certain pathological cases.
- </summary>
- <remarks>
- <h2>Algorithm:</h2>
- For each input polygon:
- <list type="bullet">
- <item><description>
- Determine a horizontal scan line on which the interior
- point will be located.
- To increase the chance of the scan line
- having non-zero-width intersection with the polygon
- the scan line Y ordinate is chosen to be near the centre of the polygon's
- Y extent but distinct from all of vertex Y ordinates.
- </description></item>
- <item><description>
- Compute the sections of the scan line
- which lie in the interior of the polygon.
- </description></item>
- <item><description>
- Choose the widest interior section
- and take its midpoint as the interior point.
- </description></item>
- </list>
- The final interior point is chosen as
- the one occurring in the widest interior section.
- <para>
- This algorithm is a tradeoff between performance
- and point quality (where points further from the geometry
- boundary are considered to be higher quality)
- Priority is given to performance.
- This means that the computed interior point
- may not be suitable for some uses
- (such as label positioning).
- </para>
- <para>
- The algorithm handles some kinds of invalid/degenerate geometry,
- including zero-area and self-intersecting polygons.
- </para>
- <para>
- Empty geometry is handled by returning a <see langword="null"/> point.
- </para>
- <h3>KNOWN BUGS</h3>
- <list type="bullet">
- <item><description>
- If a fixed precision model is used,
- in some cases this method may return a point
- which does not lie in the interior.
- </description></item>
- <item><description>
- If the input polygon is <i>extremely</i> narrow the computed point
- may not lie in the interior of the polygon.
- </description></item>
- </list>
- </remarks>
- </member>
- <member name="M:NetTopologySuite.Algorithm.InteriorPointArea.GetInteriorPoint(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes an interior point for the
- polygonal components of a Geometry.
- </summary>
- <param name="geom">The geometry to compute.</param>
- <returns>
- The computed interior point,
- or <see langword="null"/> if the geometry has no polygonal components.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.InteriorPointArea.Avg(System.Double,System.Double)">
- <summary>
-
- </summary>
- <param name="a"></param>
- <param name="b"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.InteriorPointArea.#ctor(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Creates a new interior point finder
- for an areal geometry.
- </summary>
- <param name="g">An areal geometry</param>
- </member>
- <member name="P:NetTopologySuite.Algorithm.InteriorPointArea.InteriorPoint">
- <summary>
- Gets the computed interior point
- or <see langword="null"/> if the input geometry is empty.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Algorithm.InteriorPointArea.Process(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Processes a geometry to determine
- the best interior point for
- all component polygons.
- </summary>
- <param name="geom">The geometry to process.</param>
- </member>
- <member name="M:NetTopologySuite.Algorithm.InteriorPointArea.ProcessPolygon(NetTopologySuite.Geometries.Polygon)">
- <summary>
- Computes an interior point of a component Polygon
- and updates current best interior point
- if appropriate.
- </summary>
- <param name="polygon">The polygon to process.</param>
- </member>
- <member name="T:NetTopologySuite.Algorithm.InteriorPointArea.InteriorPointPolygon">
- <summary>
- Computes an interior point in a single <see cref="T:NetTopologySuite.Geometries.Polygon"/>,
- as well as the width of the scan-line section it occurs in
- to allow choosing the widest section occurrence.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Algorithm.InteriorPointArea.InteriorPointPolygon.#ctor(NetTopologySuite.Geometries.Polygon)">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.Algorithm.InteriorPointArea.InteriorPointPolygon"/> class.
- </summary>
- <param name="polygon">The polygon to test.</param>
- </member>
- <member name="P:NetTopologySuite.Algorithm.InteriorPointArea.InteriorPointPolygon.InteriorPoint">
- <summary>
- Gets the computed interior point,
- or <see langword="null"/> if the input geometry is empty.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Algorithm.InteriorPointArea.InteriorPointPolygon.Width">
- <summary>
- Gets the width of the scanline section containing the interior point.
- Used to determine the best point to use.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Algorithm.InteriorPointArea.InteriorPointPolygon.Process">
- <summary>
- Compute the interior point.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Algorithm.InteriorPointArea.InteriorPointPolygon.FindBestMidpoint(System.Collections.Generic.List{System.Double})">
- <summary>
- Finds the midpoint of the widest interior section.
- Sets the <see cref="F:NetTopologySuite.Algorithm.InteriorPointArea.InteriorPointPolygon._interiorPoint"/> location and the
- <see cref="F:NetTopologySuite.Algorithm.InteriorPointArea.InteriorPointPolygon._interiorSectionWidth"/>
- </summary>
- <param name="crossings">The list of scan-line X ordinates</param>
- </member>
- <member name="M:NetTopologySuite.Algorithm.InteriorPointArea.InteriorPointPolygon.IsEdgeCrossingCounted(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,System.Double)">
- <summary>
- Tests if an edge intersection contributes to the crossing count.
- Some crossing situations are not counted,
- to ensure that the list of crossings
- captures strict inside/outside topology.
- </summary>
- <param name="p0">An endpoint of the segment.</param>
- <param name="p1">An endpoint of the segment.</param>
- <param name="scanY">The Y-ordinate of the horizontal line.</param>
- <returns><see langword="true"/> if the edge crossing is counted.</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.InteriorPointArea.InteriorPointPolygon.Intersection(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,System.Double)">
- <summary>
- Computes the intersection of a segment with a horizontal line.
- The segment is expected to cross the horizontal line
- - this condition is not checked.
- Computation uses regular double-precision arithmetic.
- Test seems to indicate this is as good as using DD arithmetic.
- </summary>
- <param name="p0">An endpoint of the segment.</param>
- <param name="p1">An endpoint of the segment.</param>
- <param name="y">The Y-ordinate of the horizontal line</param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.InteriorPointArea.IntersectsHorizontalLine(NetTopologySuite.Geometries.Envelope,System.Double)">
- <summary>
- Tests if an envelope intersects a horizontal line.
- </summary>
- <param name="env">The envelope to test.</param>
- <param name="y">The Y-ordinate of the horizontal line.</param>
- <returns><see langword="true"/> if the envelope and line intersect.</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.InteriorPointArea.IntersectsHorizontalLine(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,System.Double)">
- <summary>
- Tests if a line segment intersects a horizontal line.
- </summary>
- <param name="p0">A segment endpoint.</param>
- <param name="p1">A segment endpoint.</param>
- <param name="y">The Y-ordinate of the horizontal line.</param>
- <returns><see langword="true"/> if the segment and line intersect.</returns>
- </member>
- <member name="T:NetTopologySuite.Algorithm.InteriorPointArea.ScanLineYOrdinateFinder">
- <summary>
- Finds a safe scan line Y ordinate by projecting
- the polygon segments
- to the Y axis and finding the
- Y-axis interval which contains the centre of the Y extent.
- The centre of
- this interval is returned as the scan line Y-ordinate.
- <para>
- Note that in the case of (degenerate, invalid)
- zero-area polygons the computed Y value
- may be equal to a vertex Y-ordinate.
- </para>
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="T:NetTopologySuite.Algorithm.InteriorPointLine">
- <summary>
- Computes a point in the interior of an linear point.
- Algorithm:
- Find an interior vertex which is closest to
- the centroid of the linestring.
- If there is no interior vertex, find the endpoint which is
- closest to the centroid.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Algorithm.InteriorPointLine.GetInteriorPoint(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes an interior point for the
- linear components of a Geometry.
- </summary>
- <param name="geom">The geometry to compute.</param>
- <returns>
- The computed interior point,
- or <see langword="null"/> if the geometry has no linear components.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.InteriorPointLine.#ctor(NetTopologySuite.Geometries.Geometry)">
- <summary>
-
- </summary>
- <param name="g"></param>
- </member>
- <member name="P:NetTopologySuite.Algorithm.InteriorPointLine.InteriorPoint">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Algorithm.InteriorPointLine.AddInterior(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests the interior vertices (if any)
- defined by a linear Geometry for the best inside point.
- If a Geometry is not of dimension 1 it is not tested.
- </summary>
- <param name="geom">The point to add.</param>
- </member>
- <member name="M:NetTopologySuite.Algorithm.InteriorPointLine.AddInterior(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
-
- </summary>
- <param name="pts"></param>
- </member>
- <member name="M:NetTopologySuite.Algorithm.InteriorPointLine.AddEndpoints(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests the endpoint vertices
- defined by a linear Geometry for the best inside point.
- If a Geometry is not of dimension 1 it is not tested.
- </summary>
- <param name="geom">The point to add.</param>
- </member>
- <member name="M:NetTopologySuite.Algorithm.InteriorPointLine.AddEndpoints(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
-
- </summary>
- <param name="pts"></param>
- </member>
- <member name="M:NetTopologySuite.Algorithm.InteriorPointLine.Add(NetTopologySuite.Geometries.Coordinate)">
- <summary>
-
- </summary>
- <param name="point"></param>
- </member>
- <member name="T:NetTopologySuite.Algorithm.InteriorPointPoint">
- <summary>
- Computes a point in the interior of an point point.
- Algorithm:
- Find a point which is closest to the centroid of the point.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Algorithm.InteriorPointPoint.GetInteriorPoint(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes an interior point for the
- puntal components of a Geometry.
- </summary>
- <param name="geom">The geometry to compute.</param>
- <returns>
- The computed interior point,
- or <see langword="null"/> if the geometry has no puntal components.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.InteriorPointPoint.#ctor(NetTopologySuite.Geometries.Geometry)">
- <summary>
-
- </summary>
- <param name="g"></param>
- </member>
- <member name="M:NetTopologySuite.Algorithm.InteriorPointPoint.Add(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests the point(s) defined by a Geometry for the best inside point.
- If a Geometry is not of dimension 0 it is not tested.
- </summary>
- <param name="geom">The point to add.</param>
- </member>
- <member name="M:NetTopologySuite.Algorithm.InteriorPointPoint.Add(NetTopologySuite.Geometries.Coordinate)">
- <summary>
-
- </summary>
- <param name="point"></param>
- </member>
- <member name="P:NetTopologySuite.Algorithm.InteriorPointPoint.InteriorPoint">
- <summary>
-
- </summary>
- </member>
- <member name="T:NetTopologySuite.Algorithm.IntersectionComputer">
- <summary>
- Functions to compute intersection points between lines and line segments.
- <para/>
- In general it is not possible to compute
- the intersection point of two lines exactly, due to numerical roundoff.
- This is particularly true when the lines are nearly parallel.
- These routines uses numerical conditioning on the input values
- to ensure that the computed value is very close to the correct value.
- <para/>
- The Z-ordinate is ignored, and not populated.
- </summary>
- <remarks>
- NOTE: In JTS this function is called Intersection.
- </remarks>
- <author>mdavis</author>
- </member>
- <member name="M:NetTopologySuite.Algorithm.IntersectionComputer.Intersection(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Computes the intersection point of two lines.
- If the lines are parallel or collinear this case is detected
- and <c>null</c> is returned.
- </summary>
- <param name="p1">An endpoint of line 1</param>
- <param name="p2">An endpoint of line 1</param>
- <param name="q1">An endpoint of line 2</param>
- <param name="q2">An endpoint of line 2</param>
- <returns>
- The intersection point between the lines, if there is one,
- or null if the lines are parallel or collinear</returns>
- <seealso cref="M:NetTopologySuite.Algorithm.CGAlgorithmsDD.Intersection(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)"/>
- </member>
- <member name="M:NetTopologySuite.Algorithm.IntersectionComputer.IntersectionFP(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Compute intersection of two lines, using a floating-point algorithm.
- This is less accurate than {@link CGAlgorithmsDD#intersection(Coordinate, Coordinate, Coordinate, Coordinate)}.
- It has caused spatial predicate failures in some cases.
- This is kept for testing purposes.
- </summary>
- <param name="p1">An endpoint of line 1</param>
- <param name="p2">An endpoint of line 1</param>
- <param name="q1">An endpoint of line 2</param>
- <param name="q2">An endpoint of line 2</param>
- <returns>
- The intersection point between the lines, if there is one,
- or null if the lines are parallel or collinear</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.IntersectionComputer.LineSegment(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Computes the intersection point of a line and a line segment (if any).
- There will be no intersection point if:
- <list type=">bullet">
- <item><description>the segment does not intersect the line</description></item>
- <item><description>the line or the segment are degenerate (have zero length)</description></item>
- </list>
- If the segment is collinear with the line the first segment endpoint is returned.
- </summary>
- <returns>The intersection point, or <c>null</c> if it is not possible to find an intersection</returns>
- </member>
- <member name="T:NetTopologySuite.Algorithm.IPointInAreaLocator">
- <summary>
- An interface for classes which determine the <see cref="T:NetTopologySuite.Geometries.Location"/> of points in a <see cref="T:NetTopologySuite.Geometries.Geometry"/>
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Algorithm.IPointInAreaLocator.Locate(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Determines the <see cref="T:NetTopologySuite.Geometries.Location"/> of a point in the <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
- </summary>
- <param name="p">The point to test</param>
- <returns>the location of the point in the geometry</returns>
- </member>
- <member name="T:NetTopologySuite.Algorithm.Length">
- <summary>
- Functions for computing length.
- </summary>
- <author>
- Martin Davis
- </author>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Length.OfLine(NetTopologySuite.Geometries.CoordinateSequence)">
- <summary>
- Computes the length of a <c>LineString</c> specified by a sequence of points.
- </summary>
- <param name="pts">The points specifying the <c>LineString</c></param>
- <returns>The length of the <c>LineString</c></returns>
- </member>
- <member name="T:NetTopologySuite.Algorithm.LineIntersector">
- <summary>
- A <c>LineIntersector</c> is an algorithm that can both test whether
- two line segments intersect and compute the intersection point(s)
- if they do.
- <para>
- There are three possible outcomes when determining whether two line segments intersect:
- <list type="bullet">
- <item><description><see cref="F:NetTopologySuite.Algorithm.LineIntersector.NoIntersection"/> - the segments do not intersect</description></item>
- <item><description><see cref="F:NetTopologySuite.Algorithm.LineIntersector.PointIntersection"/> - the segments intersect in a single point</description></item>
- <item><description><see cref="F:NetTopologySuite.Algorithm.LineIntersector.CollinearIntersection"/> - the segments are collinear and they intersect in a line segment</description></item>
- </list>
- </para>
- <para>
- For segments which intersect in a single point, the point may be either an endpoint
- or in the interior of each segment.
- If the point lies in the interior of both segments,
- this is termed a <i>proper intersection</i>.
- The property <see cref="P:NetTopologySuite.Algorithm.LineIntersector.IsProper"/> test for this situation.
- </para><para>
- The intersection point(s) may be computed in a precise or non-precise manner.
- Computing an intersection point precisely involves rounding it
- via a supplied <see cref="P:NetTopologySuite.Algorithm.LineIntersector.PrecisionModel"/>.
- </para><para>
- LineIntersectors do not perform an initial envelope intersection test
- to determine if the segments are disjoint.
- This is because this class is likely to be used in a context where
- envelope overlap is already known to occur (or be likely).
- </para>
- </summary>
- </member>
- <member name="F:NetTopologySuite.Algorithm.LineIntersector.NoIntersection">
- <summary>
- Indicates that line segments do not intersect
- </summary>
- </member>
- <member name="F:NetTopologySuite.Algorithm.LineIntersector.PointIntersection">
- <summary>
- Indicates that line segments intersect in a single point
- </summary>
- </member>
- <member name="F:NetTopologySuite.Algorithm.LineIntersector.CollinearIntersection">
- <summary>
- Indicates that line segments intersect in a line segment
- </summary>
- </member>
- <member name="M:NetTopologySuite.Algorithm.LineIntersector.ComputeEdgeDistance(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Computes the "edge distance" of an intersection point p along a segment.
- The edge distance is a metric of the point along the edge.
- The metric used is a robust and easy to compute metric function.
- It is not equivalent to the usual Euclidean metric.
- It relies on the fact that either the x or the y ordinates of the
- points in the edge are unique, depending on whether the edge is longer in
- the horizontal or vertical direction.
- NOTE: This function may produce incorrect distances
- for inputs where p is not precisely on p1-p2
- (E.g. p = (139,9) p1 = (139,10), p2 = (280,1) produces distance 0.0, which is incorrect.
- My hypothesis is that the function is safe to use for points which are the
- result of rounding points which lie on the line, but not safe to use for truncated points.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Algorithm.LineIntersector.NonRobustComputeEdgeDistance(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- This function is non-robust, since it may compute the square of large numbers.
- Currently not sure how to improve this.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Algorithm.LineIntersector.Result">
- <summary>
- A value indicating the intersection result
- <para/>
- Possible values are:
- <list type="bullet">
- <item><description><see cref="F:NetTopologySuite.Algorithm.LineIntersector.NoIntersection"/></description></item>
- <item><description><see cref="F:NetTopologySuite.Algorithm.LineIntersector.PointIntersection"/></description></item>
- <item><description><see cref="F:NetTopologySuite.Algorithm.LineIntersector.CollinearIntersection"/></description></item>
- </list>
- </summary>
- </member>
- <member name="F:NetTopologySuite.Algorithm.LineIntersector.InputLines">
- <summary>
- Array of coordinate arrays forming the lines
- </summary>
- </member>
- <member name="F:NetTopologySuite.Algorithm.LineIntersector.IntersectionPoint">
- <summary>
- Array of
- </summary>
- </member>
- <member name="F:NetTopologySuite.Algorithm.LineIntersector.IntersectionLineIndex">
- <summary>
- The indexes of the endpoints of the intersection lines, in order along
- the corresponding line
- </summary>
- </member>
- <member name="P:NetTopologySuite.Algorithm.LineIntersector.Pa">
- <summary>
- Alias the <see cref="F:NetTopologySuite.Algorithm.LineIntersector.IntersectionPoint"/>[0] for ease of reference
- </summary>
- </member>
- <member name="P:NetTopologySuite.Algorithm.LineIntersector.Pb">
- <summary>
- Alias the <see cref="F:NetTopologySuite.Algorithm.LineIntersector.IntersectionPoint"/>[1] for ease of reference
- </summary>
- </member>
- <member name="F:NetTopologySuite.Algorithm.LineIntersector._precisionModel">
- <summary>
- If MakePrecise is true, computed intersection coordinates will be made precise
- using <c>Coordinate.MakePrecise</c>.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Algorithm.LineIntersector.#ctor">
- <summary>
- Creates an instance of this class
- </summary>
- </member>
- <member name="P:NetTopologySuite.Algorithm.LineIntersector.PrecisionModel">
- <summary>
- Force computed intersection to be rounded to a given precision model.
- No getter is provided, because the precision model is not required to be specified.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Algorithm.LineIntersector.GetEndpoint(System.Int32,System.Int32)">
- <summary>
- Gets an endpoint of an input segment.
- </summary>
- <param name="segmentIndex">the index of the input segment (0 or 1)</param>
- <param name="ptIndex">the index of the endpoint (0 or 1)</param>
- <returns>The specified endpoint</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.LineIntersector.ComputeIntersection(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Compute the intersection of a point p and the line p1-p2.
- This function computes the bool value of the hasIntersection test.
- The actual value of the intersection (if there is one)
- is equal to the value of <c>p</c>.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Algorithm.LineIntersector.IsCollinear">
- <summary>
- Gets a value indicating if the computed intersection is collinear
- </summary>
- </member>
- <member name="M:NetTopologySuite.Algorithm.LineIntersector.ComputeIntersection(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Computes the intersection of the lines p1-p2 and p3-p4.
- This function computes both the bool value of the hasIntersection test
- and the (approximate) value of the intersection point itself (if there is one).
- </summary>
- <param name="p1">The 1st point of the 1st segment</param>
- <param name="p2">The 2nd point of the 1st segment</param>
- <param name="p3">The 1st point of the 2nd segment</param>
- <param name="p4">The 2nd point of the 2nd segment</param>
- </member>
- <member name="M:NetTopologySuite.Algorithm.LineIntersector.ComputeIntersect(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Computes the intersection of two line segments, one defined by <paramref name="p1"/> and <paramref name="p2"/>,
- the other by <paramref name="q1"/> and <paramref name="q2"/>.
- </summary>
- <param name="p1">The 1st point of the 1st segment</param>
- <param name="p2">The 2nd point of the 1st segment</param>
- <param name="q1">The 1st point of the 2nd segment</param>
- <param name="q2">The 2nd point of the 2nd segment</param>
- <returns></returns>
- <remarks>
- Don't use this function directly, it is not meant for public use.
- Please call <see cref="M:NetTopologySuite.Algorithm.LineIntersector.ComputeIntersection(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)"/>
- 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
- <see cref="P:NetTopologySuite.Algorithm.LineIntersector.IsEndPoint"/>.
- </remarks>
- </member>
- <member name="M:NetTopologySuite.Algorithm.LineIntersector.ToString">
- <inheritdoc cref="M:System.Object.ToString"/>
- </member>
- <member name="P:NetTopologySuite.Algorithm.LineIntersector.IsEndPoint">
- <summary>
- Gets a value indicating if the intersection is an end-point intersection
- </summary>
- </member>
- <member name="P:NetTopologySuite.Algorithm.LineIntersector.HasIntersection">
- <summary>
- Tests whether the input geometries intersect.
- </summary>
- <returns><c>true</c> if the input geometries intersect.</returns>
- </member>
- <member name="P:NetTopologySuite.Algorithm.LineIntersector.IntersectionNum">
- <summary>
- Returns the number of intersection points found. This will be either 0, 1 or 2.
- </summary>
- <returns>The number of intersection points found (0, 1, or 2)</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.LineIntersector.GetIntersection(System.Int32)">
- <summary>
- Returns the intIndex'th intersection point.
- </summary>
- <param name="intIndex">is 0 or 1.</param>
- <returns>The intIndex'th intersection point.</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.LineIntersector.ComputeIntLineIndex">
- <summary>
- Computes the <see cref="F:NetTopologySuite.Algorithm.LineIntersector.IntersectionLineIndex"/> values.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Algorithm.LineIntersector.IsIntersection(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Test whether a point is a intersection point of two line segments.
- Note that if the intersection is a line segment, this method only tests for
- equality with the endpoints of the intersection segment.
- It does not return true if the input point is internal to the intersection segment.
- </summary>
- <returns><c>true</c> if the input point is one of the intersection points.</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.LineIntersector.IsInteriorIntersection">
- <summary>
- Tests whether either intersection point is an interior point of one of the input segments.
- </summary>
- <returns>
- <c>true</c> if either intersection point is in the interior of one of the input segment.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.LineIntersector.IsInteriorIntersection(System.Int32)">
- <summary>
- Tests whether either intersection point is an interior point of the specified input segment.
- </summary>
- <returns>
- <c>true</c> if either intersection point is in the interior of the input segment.
- </returns>
- </member>
- <member name="P:NetTopologySuite.Algorithm.LineIntersector.IsProper">
- <summary>
- Tests whether an intersection is proper.
- The intersection between two line segments is considered proper if
- they intersect in a single point in the interior of both segments
- (e.g. the intersection is a single point and is not equal to any of the endpoints).
- The intersection between a point and a line segment is considered proper
- if the point lies in the interior of the segment (e.g. is not equal to either of the endpoints).
- </summary>
- <returns><c>true</c> if the intersection is proper.</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.LineIntersector.GetIntersectionAlongSegment(System.Int32,System.Int32)">
- <summary>
- Computes the intIndex'th intersection point in the direction of
- a specified input line segment.
- </summary>
- <param name="segmentIndex">is 0 or 1.</param>
- <param name="intIndex">is 0 or 1.</param>
- <returns>
- The intIndex'th intersection point in the direction of the specified input line segment.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.LineIntersector.GetIndexAlongSegment(System.Int32,System.Int32)">
- <summary>
- Computes the index (order) of the intIndex'th intersection point in the direction of
- a specified input line segment.
- </summary>
- <param name="segmentIndex">is 0 or 1.</param>
- <param name="intIndex">is 0 or 1.</param>
- <returns>
- The index of the intersection point along the segment (0 or 1).
- </returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.LineIntersector.ComputeIntLineIndex(System.Int32)">
- <summary>
- Computes the intersection line index
- </summary>
- <param name="segmentIndex">The segment index</param>
- </member>
- <member name="M:NetTopologySuite.Algorithm.LineIntersector.GetEdgeDistance(System.Int32,System.Int32)">
- <summary>
- Computes the "edge distance" of an intersection point along the specified input line segment.
- </summary>
- <param name="segmentIndex">is 0 or 1.</param>
- <param name="intIndex">is 0 or 1.</param>
- <returns>The edge distance of the intersection point.</returns>
- </member>
- <member name="T:NetTopologySuite.Algorithm.Locate.IndexedPointInAreaLocator">
- <summary>
- Determines the <see cref="T:NetTopologySuite.Geometries.Location"/> of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s relative to
- an areal geometry, using indexing for efficiency.
- This algorithm is suitable for use in cases where
- many points will be tested against a given area.
- <para/>
- The <c>Location</c> is computed precisely, th that points
- located on the geometry boundary or segments will
- return <see cref="F:NetTopologySuite.Geometries.Location.Boundary"/>.
- <para/>
- <see cref="T:NetTopologySuite.Geometries.IPolygonal"/> and <see cref="T:NetTopologySuite.Geometries.LinearRing"/> geometries are supported.
- <para/>
- The index is lazy-loaded, which allows
- creating instances even if they are not used.
- <para/>
- Thread-safe and immutable.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Locate.IndexedPointInAreaLocator.#ctor(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Creates a new locator for a given <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
- Geometries containing <see cref="T:NetTopologySuite.Geometries.IPolygonal"/>s and <see cref="T:NetTopologySuite.Geometries.LinearRing"/> geometries are supported
- </summary>
- <param name="g">The Geometry to locate in</param>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Locate.IndexedPointInAreaLocator.Locate(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Determines the <see cref="T:NetTopologySuite.Geometries.Location"/> of a point in an areal <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
- </summary>
- <param name="p">The point to test</param>
- <returns>The location of the point in the geometry
- </returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Locate.IndexedPointInAreaLocator.CreateIndex">
- <summary>
- Creates the indexed geometry, creating it if necessary.
- </summary>
- </member>
- <member name="T:NetTopologySuite.Algorithm.Locate.IPointOnGeometryLocator">
- <summary>
- An interface for classes which determine the <see cref="T:NetTopologySuite.Geometries.Location"/> of
- points in areal geometries.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Locate.IPointOnGeometryLocator.Locate(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Determines the <see cref="T:NetTopologySuite.Geometries.Location"/> of a point in an areal <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
- </summary>
- <param name="p">The point to test</param>
- <returns>The location of the point in the geometry</returns>
- </member>
- <member name="T:NetTopologySuite.Algorithm.Locate.PointOnGeometryLocatorExtensions">
- <summary>
- Static methods for <see cref="T:NetTopologySuite.Algorithm.Locate.IPointOnGeometryLocator"/> classes
- </summary>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Locate.PointOnGeometryLocatorExtensions.Intersects(NetTopologySuite.Algorithm.Locate.IPointOnGeometryLocator,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Convenience method to test a point for intersection with a geometry
- <para/>
- The geometry is wrapped in a <see cref="T:NetTopologySuite.Algorithm.Locate.IPointOnGeometryLocator"/> class.
- </summary>
- <param name="locator">The locator to use.</param>
- <param name="coordinate">The coordinate to test.</param>
- <returns><c>true</c> if the point is in the interior or boundary of the geometry.</returns>
- </member>
- <member name="T:NetTopologySuite.Algorithm.Locate.SimplePointInAreaLocator">
- <summary>
- Computes the location of points
- relative to an areal <see cref="T:NetTopologySuite.Geometries.Geometry"/>,
- using a simple <c>O(n)</c> algorithm.
- <para>
- The algorithm used reports
- if a point lies in the interior, exterior,
- or exactly on the boundary of the Geometry.
- </para>
- <para>
- Instance methods are provided to implement
- the interface <see cref="T:NetTopologySuite.Algorithm.Locate.IPointOnGeometryLocator"/>.
- However, they provide no performance
- advantage over the class methods.
- </para>
- <para>
- This algorithm is suitable for use in cases where
- only a few points will be tested.
- If many points will be tested,
- <see cref="T:NetTopologySuite.Algorithm.Locate.IndexedPointInAreaLocator"/> may provide better performance.
- </para>
- </summary>
- <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>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Locate.SimplePointInAreaLocator.Locate(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Determines the <see cref="T:NetTopologySuite.Geometries.Location"/> of a point in an areal <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
- The return value is one of:
- <list type="bullet">
- <item><term><see cref="F:NetTopologySuite.Geometries.Location.Interior"/></term><description>if the point is in the geometry interior</description></item>
- <item><term><see cref="F:NetTopologySuite.Geometries.Location.Boundary"/></term><description>if the point lies exactly on the boundary</description></item>
- <item><term><see cref="F:NetTopologySuite.Geometries.Location.Exterior"/></term><description>if the point is outside the geometry</description></item>
- </list>
- </summary>
- <param name="p">The point to test</param>
- <param name="geom">The areal geometry to test</param>
- <returns>The Location of the point in the geometry </returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Locate.SimplePointInAreaLocator.IsContained(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Determines whether a point is contained in a <see cref="T:NetTopologySuite.Geometries.Geometry"/>,
- or lies on its boundary.
- This is a convenience method for
- <code>
- Location.Exterior != Locate(p, geom)
- </code>
- </summary>
- <param name="p">The point to test.</param>
- <param name="geom">The geometry to test.</param>
- <returns><see langword="true"/> if the point lies in or on the geometry.</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Locate.SimplePointInAreaLocator.ContainsPointInPolygon(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Polygon)">
- <summary>
- Determines whether a point lies in a <see cref="T:NetTopologySuite.Geometries.Polygon"/>.
- If the point lies on the polygon boundary it is
- considered to be inside.
- </summary>
- <param name="p">The point to test</param>
- <param name="poly">The areal geometry to test</param>
- <returns><c>true</c> if the point lies in the polygon</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Locate.SimplePointInAreaLocator.LocatePointInRing(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.LinearRing)">
- <summary>
- Determines whether a point lies in a LinearRing, using the ring envelope to short-circuit if possible.
- </summary>
- <param name="p">The point to test</param>
- <param name="ring">A linear ring</param>
- <returns><c>true</c> if the point lies inside the ring</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Locate.SimplePointInAreaLocator.#ctor(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.Algorithm.Locate.SimplePointInAreaLocator"/> class,
- using the provided areal geometry.
- </summary>
- <param name="geom">The areal geometry to locate in.</param>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Locate.SimplePointInAreaLocator.Locate(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Determines the <see cref="T:NetTopologySuite.Geometries.Location"/> of a point in an areal <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
- The return value is one of:
- <list type="bullet">
- <item><term><see cref="F:NetTopologySuite.Geometries.Location.Interior"/></term><description>if the point is in the geometry interior</description></item>
- <item><term><see cref="F:NetTopologySuite.Geometries.Location.Boundary"/></term><description>if the point lies exactly on the boundary</description></item>
- <item><term><see cref="F:NetTopologySuite.Geometries.Location.Exterior"/></term><description>if the point is outside the geometry</description></item>
- </list>
- </summary>
- <param name="p">The point to test</param>
- <returns>The Location of the point in the geometry.</returns>
- </member>
- <member name="T:NetTopologySuite.Algorithm.Match.AreaSimilarityMeasure">
- <summary>
- Measures the degree of similarity between two <see cref="T:NetTopologySuite.Geometries.Geometry"/>s
- using the area of intersection between the geometries.
- The measure is normalized to lie in the range [0, 1].
- Higher measures indicate a great degree of similarity.
- </summary>
- <remarks>
- NOTE: Currently experimental and incomplete.
- </remarks>
- <author>mbdavis</author>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Match.AreaSimilarityMeasure.Measure(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes the similarity measure between two geometries
- </summary>
- <param name="g1">A geometry.</param>
- <param name="g2">A geometry.</param>
- <returns>
- The value of the similarity measure, in [0.0, 1.0].
- </returns>
- </member>
- <member name="T:NetTopologySuite.Algorithm.Match.FrechetSimilarityMeasure">
- <summary>
- Measures the degree of similarity between two
- <see cref="T:NetTopologySuite.Geometries.Geometry"/>s using the Fréchet distance metric.
- The measure is normalized to lie in the range [0, 1].
- Higher measures indicate a great degree of similarity.
- <para/>
- The measure is computed by computing the Fréchet distance
- between the input geometries, and then normalizing
- this by dividing it by the diagonal distance across
- the envelope of the combined geometries.
- <para/>
- Note: the input should be normalized, especially when
- measuring <see cref="T:NetTopologySuite.Geometries.MultiPoint"/> geometries because for the
- Fréchet distance the order of {@link Coordinate}s is
- important.
- </summary>
- <author>Felix Obermaier</author>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Match.FrechetSimilarityMeasure.#ctor">
- <summary>
- Creates an instance of this class
- </summary>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Match.FrechetSimilarityMeasure.Measure(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <inheritdoc/>
- </member>
- <member name="T:NetTopologySuite.Algorithm.Match.HausdorffSimilarityMeasure">
- <summary>
- Measures the degree of similarity between two <see cref="T:NetTopologySuite.Geometries.Geometry"/>s using the Hausdorff distance metric.
- </summary>
- <remarks>
- <para>
- The measure is normalized to lie in the range [0, 1]. Higher measures indicate a great degree of similarity.
- </para>
- <para>
- The measure is computed by computing the Hausdorff distance between the input geometries, and then normalizing
- this by dividing it by the diagonal distance across the envelope of the combined geometries.
- </para>
- </remarks>
- <author>mbdavis</author>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Match.HausdorffSimilarityMeasure.Measure(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <inheritdoc/>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Match.HausdorffSimilarityMeasure.DiagonalSize(NetTopologySuite.Geometries.Envelope)">
- <summary>
-
- </summary>
- <param name="env"></param>
- <returns></returns>
- </member>
- <member name="T:NetTopologySuite.Algorithm.Match.ISimilarityMeasure">
- <summary>
- An interface for classes which measures the degree of similarity between two {@link Geometry}s.
- </summary>
- <remarks>
- The computed measure lies in the range [0, 1].
- Higher measures indicate a great degree of similarity.
- A measure of 1.0 indicates that the input geometries are identical
- A measure of 0.0 indicates that the geometries have essentially no similarity.
- The precise definition of "identical" and "no similarity" may depend on the exact algorithm being used.
- </remarks>
- <author>mbdavis</author>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Match.ISimilarityMeasure.Measure(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Function to measure the similarity between two <see cref="T:NetTopologySuite.Geometries.Geometry"/>s.
- </summary>
- <param name="g1">A geometry</param>
- <param name="g2">A geometry</param>
- <returns>The similarity value between two <see cref="T:NetTopologySuite.Geometries.Geometry"/>s</returns>
- </member>
- <member name="T:NetTopologySuite.Algorithm.Match.SimilarityMeasureCombiner">
- <summary>
- Provides methods to mathematically combine <see cref="T:NetTopologySuite.Algorithm.Match.ISimilarityMeasure"/> values.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Match.SimilarityMeasureCombiner.Combine(System.Double,System.Double)">
- <summary>
-
- </summary>
- <param name="measure1"></param>
- <param name="measure2"></param>
- <returns></returns>
- </member>
- <member name="T:NetTopologySuite.Algorithm.MinimumAreaRectangle">
- <summary>
- Computes the minimum-area rectangle enclosing a <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
- Unlike the <see cref="T:NetTopologySuite.Geometries.Envelope"/>, the rectangle may not be axis-parallel.
- <para/>
- The first step in the algorithm is computing the convex hull of the Geometry.
- If the input Geometry is known to be convex, a hint can be supplied to
- avoid this computation.
- <para/>
- In degenerate cases the minimum enclosing geometry
- may be a <see cref="T:NetTopologySuite.Geometries.LineString"/> or a <see cref="T:NetTopologySuite.Geometries.Point"/>.
- <para/>
- The minimum - area enclosing rectangle does not necessarily
- have the minimum possible width.
- Use {@link MinimumDiameter} to compute this.
- </summary>
- <author>Martin Davis</author>
- <seealso cref="T:NetTopologySuite.Algorithm.MinimumDiameter"/>
- <seealso cref="T:NetTopologySuite.Algorithm.ConvexHull"/>
- </member>
- <member name="M:NetTopologySuite.Algorithm.MinimumAreaRectangle.GetMinimumRectangle(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Gets the minimum-area rectangular {@link Polygon} which encloses the input geometry.
- If the convex hull of the input is degenerate (a line or point)
- a {@link LineString} or {@link Point} is returned.
- </summary>
- <param name="geom">A Geometry</param>
- <returns>The minimum rectangle enclosing the geometry</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.MinimumAreaRectangle.#ctor(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Compute a minimum-area rectangle for a given {@link Geometry}.
- </summary>
- <param name="inputGeom">A Geometry</param>
- </member>
- <member name="M:NetTopologySuite.Algorithm.MinimumAreaRectangle.#ctor(NetTopologySuite.Geometries.Geometry,System.Boolean)">
- <summary>
- Compute a minimum rectangle for a <see cref="T:NetTopologySuite.Geometries.Geometry"/>,
- with a hint if the geometry is convex
- (e.g. a convex Polygon or LinearRing,
- or a two-point LineString, or a Point).
- </summary>
- <param name="inputGeom">A Geometry</param>
- <param name="isConvex">A flag indicating if <paramref name="inputGeom"/> is convex</param>
- </member>
- <member name="M:NetTopologySuite.Algorithm.MinimumAreaRectangle.ComputeConvexRing(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Computes the minimum-area rectangle for a convex ring of {@link Coordinate}s.
- <para/>
- This algorithm uses the "dual rotating calipers" technique.
- Performance is linear in the number of segments.
- </summary>
- <param name="ring">The convex ring to scan</param>
- </member>
- <member name="M:NetTopologySuite.Algorithm.MinimumAreaRectangle.ComputeMaximumLine(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
- Creates a line of maximum extent from the provided vertices
- </summary>
- <param name="pts">The vertices</param>
- <param name="factory">The geometry factory</param>
- <returns>The line of maximum extent</returns>
- </member>
- <member name="T:NetTopologySuite.Algorithm.MinimumBoundingCircle">
- <summary>
- Computes the <b>Minimum Bounding Circle</b> (MBC) for the points in a <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
- The MBC is the smallest circle which <tt>cover</tt>s all the input points
- (this is also sometimes known as the <b>Smallest Enclosing Circle</b>).
- This is equivalent to computing the Maximum Diameter of the input point set.
- </summary>
- <remarks>
- <para/>
- The computed circle can be specified in two equivalent ways,
- both of which are provide as output by this class:
- <list type="bullet">
- <item><description>As a centre point and a radius</description></item>
- <item><description>By the set of points defining the circle.
- Depending on the number of points in the input
- and their relative positions, this set
- contains from 0 to 3 points.
- <list type="bullet">
- <item><description>0 or 1 points indicate an empty or trivial input point arrangement.</description></item>
- <item><description>2 points define the diameter of the minimum bounding circle.</description></item>
- <item><description>3 points define an inscribed triangle of the minimum bounding circle.</description></item>
- </list>
- </description></item></list>
- <para/>
- The class can also output a <see cref="T:NetTopologySuite.Geometries.Geometry"/> which approximates the
- shape of the Minimum Bounding Circle (although as an approximation
- it is <b>not</b> guaranteed to <tt>cover</tt> all the input points.)
- <para/>
- The Maximum Diameter of the input point set can
- be computed as well. The Maximum Diameter is
- defined by the pair of input points with maximum distance between them.
- The points of the maximum diameter are two of the extremal points of the Minimum Bounding Circle.
- They lie on the convex hull of the input.
- However, that the maximum diameter is not a diameter
- of the Minimum Bounding Circle in the case where the MBC is
- defined by an inscribed triangle.
- </remarks>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Algorithm.MinimumBoundingCircle.#ctor(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Creates a new object for computing the minimum bounding circle for the
- point set defined by the vertices of the given geometry.
- </summary>
- <param name="geom">The geometry to use to obtain the point set </param>
- </member>
- <member name="M:NetTopologySuite.Algorithm.MinimumBoundingCircle.GetCircle">
- <summary>
- Gets a geometry which represents the Minimum Bounding Circle.
- </summary>
- <remarks>
- <para>
- If the input is degenerate (empty or a single unique point),
- this method will return an empty geometry or a single Point geometry.
- Otherwise, a Polygon will be returned which approximates the
- Minimum Bounding Circle. (Note that because the computed polygon is only an approximation, it may not precisely contain all the input points.)
- </para>
- </remarks>
- <returns>A Geometry representing the Minimum Bounding Circle.</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.MinimumBoundingCircle.GetMaximumDiameter">
- <summary>Gets a geometry representing the maximum diameter of the
- input. The maximum diameter is the longest line segment
- between any two points of the input.
- <para/>
- The points are two of the extremal points of the Minimum Bounding Circle.
- They lie on the convex hull of the input.
- </summary>
- <returns>
- The result is
- <list type="Bullet">
- <item><description>a LineString between the two farthest points of the input</description></item>
- <item><description>a empty LineString if the input is empty</description></item>
- <item><description>a Point if the input is a point</description></item>
- </list>
- </returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.MinimumBoundingCircle.GetFarthestPoints">
- <summary>
- Gets a geometry representing a line between the two farthest points
- in the input.
- <para/>
- These points are two of the extremal points of the Minimum Bounding Circle
- They lie on the convex hull of the input.
- </summary>
- <returns>A LineString between the two farthest points of the input</returns>
- <returns>An empty LineString if the input is empty</returns>
- <returns>A Point if the input is a point</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.MinimumBoundingCircle.FarthestPoints(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Finds the farthest pair out of 3 extremal points
- </summary>
- <param name="pts">The array of extremal points</param>
- <returns>The pair of farthest points</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.MinimumBoundingCircle.GetDiameter">
- <summary>
- Gets a geometry representing the diameter of the computed Minimum Bounding Circle.
- </summary>
- <returns>
- <list type="bullet">
- <item><description>the diameter line of the Minimum Bounding Circle</description></item>
- <item><description>an empty line if the input is empty</description></item>
- <item><description>a Point if the input is a point</description></item>
- </list>
- </returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.MinimumBoundingCircle.GetExtremalPoints">
- <summary>
- Gets the extremal points which define the computed Minimum Bounding Circle.
- There may be zero, one, two or three of these points, depending on the number
- of points in the input and the geometry of those points.
- <list type="Bullet">
- <item><description>0 or 1 points indicate an empty or trivial input point arrangement.</description></item>
- <item><description>2 points define the diameter of the Minimum Bounding Circle.</description></item>
- <item><description>3 points define an inscribed triangle of which the Minimum Bounding Circle is the circumcircle.
- The longest chords of the circle are the line segments [0-1] and[1 - 2]</description></item>
- </list>
- </summary>
- <returns>The points defining the Minimum Bounding Circle</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.MinimumBoundingCircle.GetCentre">
- <summary>
- Gets the centre point of the computed Minimum Bounding Circle.
- </summary>
- <returns>
- <list type="Bullet">
- <item><description>The centre point of the Minimum Bounding Circle or</description></item>
- <item><description><c>null</c> if the input is empty</description></item>
- </list>
- </returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.MinimumBoundingCircle.GetRadius">
- <summary>
- Gets the radius of the computed Minimum Bounding Circle.
- </summary>
- <returns>The radius of the Minimum Bounding Circle</returns>
- </member>
- <member name="T:NetTopologySuite.Algorithm.MinimumDiameter">
- <summary>
- Computes the minimum diameter of a <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
- </summary>
- <remarks>
- <para>
- The minimum diameter is defined to be the
- width of the smallest band that contains the geometry,
- where a band is a strip of the plane defined by two parallel lines.
- This can be thought of as the smallest hole that the point can be
- moved through, with a single rotation.
- </para>
- <para>
- The first step in the algorithm is computing the convex hull of the Geometry.
- If the input Geometry is known to be convex, a hint can be supplied to
- avoid this computation.
- </para>
- <para>
- This class can also be used to compute
- <list type="bullet">
- <item><description>a line segment representing the minimum diameter</description></item>
- <item><description>the <b>supporting line segment</b> of the minimum diameter</description></item>
- <item><description>a <b>minimum-width rectangle</b> of the input geometry.
- The rectangle has width equal to the minimum diameter, and has one side
- parallel to the supporting segment.
- In degenerate cases the rectangle may be a LineString or a Point.
- (Note that this may not be the enclosing rectangle with minimum area;
- use <see cref="T:NetTopologySuite.Algorithm.MinimumAreaRectangle"/> to compute this.)
- </description></item></list>
- </para>
- </remarks>
- <seealso cref="T:NetTopologySuite.Algorithm.ConvexHull"/>
- <seealso cref="T:NetTopologySuite.Algorithm.MinimumAreaRectangle"/>
- </member>
- <member name="M:NetTopologySuite.Algorithm.MinimumDiameter.GetMinimumRectangle(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Gets the minimum-width rectangular <see cref="T:NetTopologySuite.Geometries.Polygon"/> which encloses the input geometry
- and is based along the supporting segment.
- The rectangle has width equal to the minimum diameter,
- and a longer length.
- 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.
- <para/>
- This is not necessarily the rectangle with minimum area.
- Use <see cref="T:NetTopologySuite.Algorithm.MinimumAreaRectangle"/> to compute this.
- </summary>
- <param name="geom">The geometry</param>
- <returns>The minimum-width rectangle enclosing the geometry</returns>
- <seealso cref="T:NetTopologySuite.Algorithm.MinimumAreaRectangle"/>
- </member>
- <member name="M:NetTopologySuite.Algorithm.MinimumDiameter.GetMinimumDiameter(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Gets the minimum diameter enclosing a geometry.
- </summary>
- <param name="geom">The geometry</param>
- <returns>The length of the minimum diameter of the geometry</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.MinimumDiameter.#ctor(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Compute a minimum diameter for a given <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
- </summary>
- <param name="inputGeom">a Geometry.</param>
- </member>
- <member name="M:NetTopologySuite.Algorithm.MinimumDiameter.#ctor(NetTopologySuite.Geometries.Geometry,System.Boolean)">
- <summary>
- Compute a minimum diameter for a giver <c>Geometry</c>,
- with a hint if
- the Geometry is convex
- (e.g. a convex Polygon or LinearRing,
- or a two-point LineString, or a Point).
- </summary>
- <param name="inputGeom">a Geometry which is convex.</param>
- <param name="isConvex"><c>true</c> if the input point is convex.</param>
- </member>
- <member name="P:NetTopologySuite.Algorithm.MinimumDiameter.Length">
- <summary>
- Gets the length of the minimum diameter of the input Geometry.
- </summary>
- <returns>The length of the minimum diameter.</returns>
- </member>
- <member name="P:NetTopologySuite.Algorithm.MinimumDiameter.WidthCoordinate">
- <summary>
- Gets the <c>Coordinate</c> forming one end of the minimum diameter.
- </summary>
- <returns>A coordinate forming one end of the minimum diameter.</returns>
- </member>
- <member name="P:NetTopologySuite.Algorithm.MinimumDiameter.SupportingSegment">
- <summary>
- Gets the segment forming the base of the minimum diameter.
- </summary>
- <returns>The segment forming the base of the minimum diameter.</returns>
- </member>
- <member name="P:NetTopologySuite.Algorithm.MinimumDiameter.Diameter">
- <summary>
- Gets a <c>LineString</c> which is a minimum diameter.
- </summary>
- <returns>A <c>LineString</c> which is a minimum diameter.</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.MinimumDiameter.ComputeMinimumDiameter">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Algorithm.MinimumDiameter.ComputeWidthConvex(NetTopologySuite.Geometries.Geometry)">
- <summary>
-
- </summary>
- <param name="convexGeom"></param>
- </member>
- <member name="M:NetTopologySuite.Algorithm.MinimumDiameter.ComputeConvexRingMinDiameter(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Compute the width information for a ring of <c>Coordinate</c>s.
- Leaves the width information in the instance variables.
- </summary>
- <param name="pts"></param>
- </member>
- <member name="M:NetTopologySuite.Algorithm.MinimumDiameter.FindMaxPerpDistance(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.Geometries.LineSegment,System.Int32)">
- <summary>
-
- </summary>
- <param name="pts"></param>
- <param name="seg"></param>
- <param name="startIndex"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.MinimumDiameter.NextIndex(NetTopologySuite.Geometries.Coordinate[],System.Int32)">
- <summary>
-
- </summary>
- <param name="pts"></param>
- <param name="index"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.MinimumDiameter.GetMinimumRectangle">
- <summary>
- Gets the rectangular <see cref="T:NetTopologySuite.Geometries.Polygon"/> which encloses the input geometry
- and is based on the minimum diameter supporting segment.
- </summary>
- <remarks>
- <para>
- The rectangle has width equal to the minimum diameter, and a longer length.
- 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.
- </para>
- <para>
- This is not necessarily the enclosing rectangle with minimum area.
- </para>
- </remarks>
- <returns>A rectangle enclosing the input (or a line or point if degenerate)</returns>
- <seealso cref="T:NetTopologySuite.Algorithm.MinimumAreaRectangle"/>
- </member>
- <member name="M:NetTopologySuite.Algorithm.MinimumDiameter.ComputeMaximumLine(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
- Creates a line of maximum extent from the provided vertices
- </summary>
- <param name="pts">The vertices</param>
- <param name="factory">The geometry factory</param>
- <returns>The line of maximum extent</returns>
- </member>
- <member name="T:NetTopologySuite.Algorithm.NotRepresentableException">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Algorithm.NotRepresentableException.#ctor">
- <summary>
-
- </summary>
- </member>
- <member name="T:NetTopologySuite.Algorithm.Orientation">
- <summary>
- Functions to compute the orientation of basic geometric structures
- including point triplets(triangles) and rings.
- Orientation is a fundamental property of planar geometries
- (and more generally geometry on two-dimensional manifolds).
- <para/>
- Determining triangle orientation
- is notoriously subject to numerical precision errors
- in the case of collinear or nearly collinear points.
- NTS uses extended-precision arithmetic to increase
- the robustness of the computation.
- </summary>
- <author>
- Martin Davis
- </author>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Orientation.Index(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Returns the orientation index of the direction of the point <paramref name="q"/> relative to
- a directed infinite line specified by <c>p1->p2</c>.
- The index indicates whether the point lies to the <see cref="F:NetTopologySuite.Algorithm.OrientationIndex.Left"/>
- or <see cref="F:NetTopologySuite.Algorithm.OrientationIndex.Right"/> of the line, or lies on it <see cref="F:NetTopologySuite.Algorithm.OrientationIndex.Collinear"/>.
- The index also indicates the orientation of the triangle formed by the three points
- (<see cref="F:NetTopologySuite.Algorithm.OrientationIndex.CounterClockwise"/>, <see cref="F:NetTopologySuite.Algorithm.OrientationIndex.Clockwise"/>, or
- <see cref="F:NetTopologySuite.Algorithm.OrientationIndex.Straight"/> )
- </summary>
- <param name="p1">The origin point of the line vector</param>
- <param name="p2">The final point of the line vector</param>
- <param name="q">The point to compute the direction to</param>
- <returns>
- The <see cref="T:NetTopologySuite.Algorithm.OrientationIndex"/> of q in regard to the vector <c>p1->p2</c>
- <list type="table">
- <listheader>
- <term>Value</term><description>Description</description>
- </listheader>
- <item>
- <term><see cref="F:NetTopologySuite.Algorithm.OrientationIndex.Collinear"/>, <see cref="F:NetTopologySuite.Algorithm.OrientationIndex.Straight"/></term>
- <description><paramref name="q"/> is collinear with <c>p1->p2</c></description>
- </item>
- <item>
- <term><see cref="F:NetTopologySuite.Algorithm.OrientationIndex.Clockwise"/>, <see cref="F:NetTopologySuite.Algorithm.OrientationIndex.Right"/></term>
- <description><paramref name="q"/> is clockwise (right) from <c>p1->p2</c></description>
- </item>
- <item>
- <term><see cref="F:NetTopologySuite.Algorithm.OrientationIndex.CounterClockwise"/>, <see cref="F:NetTopologySuite.Algorithm.OrientationIndex.Left"/></term>
- <description><paramref name="q"/> is counter-clockwise (left) from <c>p1->p2</c></description>
- </item>
- </list>
- </returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Orientation.IsCCW(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Tests if a ring defined by an array of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s is
- oriented counter-clockwise.
- <list type="bullet">
- <item><description>The list of points is assumed to have the first and last points equal.</description></item>
- <item><description>This handles coordinate lists which contain repeated points.</description></item>
- <item><description>This handles rings which contain collapsed segments (in particular, along the top of the ring).</description></item>
- </list>
- This algorithm is guaranteed to work with valid rings.
- It also works with "mildly invalid" rings
- which contain collapsed(coincident) flat segments along the top of the ring.
- If the ring is "more" invalid (e.g.self-crosses or touches),
- the computed result may not be correct.
- </summary>
- <param name="ring">An array of <c>Coordinate</c>s forming a ring (with first and last point identical)</param>
- <returns><c>true</c> if the ring is oriented counter-clockwise.</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Orientation.IsCCW(NetTopologySuite.Geometries.CoordinateSequence)">
- <summary>
- Tests if a ring defined by a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/> is
- oriented counter-clockwise.
- <list type="bullet">
- <item><description>The list of points is assumed to have the first and last points equal.</description></item>
- <item><description>This handles coordinate lists which contain repeated points.</description></item>
- <item><description>This handles rings which contain collapsed segments (in particular, along the top of the ring).</description></item>
- </list>
- This algorithm is guaranteed to work with valid rings.
- It also works with "mildly invalid" rings
- which contain collapsed(coincident) flat segments along the top of the ring.
- If the ring is "more" invalid (e.g.self-crosses or touches),
- the computed result may not be correct.
- </summary>
- <param name="ring">A <c>CoordinateSequence</c>s forming a ring (with first and last point identical).</param>
- <returns><c>true</c> if the ring is oriented counter-clockwise.</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Orientation.IsCCWArea(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Tests if a ring defined by an array of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s is
- oriented counter-clockwise, using the signed area of the ring.
- <list type="bullet">
- <item><description>The list of points is assumed to have the first and last points equal.</description></item>
- <item><description>This handles coordinate lists which contain repeated points.</description></item>
- <item><description>This handles rings which contain collapsed segments
- (in particular, along the top of the ring).</description></item>
- <item><description>This handles rings which are invalid due to self-intersection</description></item>
- </list>
- This algorithm is guaranteed to work with valid rings.
- For invalid rings (containing self-intersections),
- the algorithm determines the orientation of
- the largest enclosed area (including overlaps).
- This provides a more useful result in some situations, such as buffering.
- <para/>
- However, this approach may be less accurate in the case of
- rings with almost zero area.
- (Note that the orientation of rings with zero area is essentially
- undefined, and hence non-deterministic.)
- </summary>
- <param name="ring">An array of Coordinates forming a ring (with first and last point identical)</param>
- <returns><c>true</c> if the ring is oriented counter-clockwise.</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Orientation.IsCCWArea(NetTopologySuite.Geometries.CoordinateSequence)">
- <summary>
- Tests if a ring defined by a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/> is
- oriented counter-clockwise, using the signed area of the ring.
- <list type="bullet">
- <item><description>The list of points is assumed to have the first and last points equal.</description></item>
- <item><description>This handles coordinate lists which contain repeated points.</description></item>
- <item><description>This handles rings which contain collapsed segments
- (in particular, along the top of the ring).</description></item>
- <item><description>This handles rings which are invalid due to self-intersection</description></item>
- </list>
- This algorithm is guaranteed to work with valid rings.
- For invalid rings (containing self-intersections),
- the algorithm determines the orientation of
- the largest enclosed area (including overlaps).
- This provides a more useful result in some situations, such as buffering.
- <para/>
- However, this approach may be less accurate in the case of
- rings with almost zero area.
- (Note that the orientation of rings with zero area is essentially
- undefined, and hence non-deterministic.)
- </summary>
- <param name="ring">An array of Coordinates forming a ring (with first and last point identical)</param>
- <returns><c>true</c> if the ring is oriented counter-clockwise.</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Orientation.ReOrient(NetTopologySuite.Algorithm.OrientationIndex)">
- <summary>
- Re-orients an orientation.
- </summary>
- <param name="orientation">The orientation</param>
- <returns></returns>
- </member>
- <member name="T:NetTopologySuite.Algorithm.OrientationIndex">
- <summary>
- Angle orientation
- </summary>
- </member>
- <member name="F:NetTopologySuite.Algorithm.OrientationIndex.Collinear">
- <summary>A value that indicates an orientation of collinear, or no turn (straight)</summary>
- </member>
- <member name="F:NetTopologySuite.Algorithm.OrientationIndex.None">
- <summary>A value that indicates an orientation of collinear, or no turn (straight)</summary>
- </member>
- <member name="F:NetTopologySuite.Algorithm.OrientationIndex.Straight">
- <summary>A value that indicates an orientation of collinear, or no turn (straight)</summary>
- </member>
- <member name="F:NetTopologySuite.Algorithm.OrientationIndex.CounterClockwise">
- <summary>A value that indicates an orientation of counterclockwise, or a left turn.</summary>
- </member>
- <member name="F:NetTopologySuite.Algorithm.OrientationIndex.Left">
- <summary>A value that indicates an orientation of counterclockwise, or a left turn.</summary>
- </member>
- <member name="F:NetTopologySuite.Algorithm.OrientationIndex.Clockwise">
- <summary>A value that indicates an orientation of clockwise or a right turn.</summary>
- </member>
- <member name="F:NetTopologySuite.Algorithm.OrientationIndex.Right">
- <summary>A value that indicates an orientation of clockwise or a right turn.</summary>
- </member>
- <member name="T:NetTopologySuite.Algorithm.PointLocation">
- <summary>
- Functions for locating points within basic geometric
- structures such as lines and rings.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Algorithm.PointLocation.IsOnSegment(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Tests whether a point lies on a line segment.
- </summary>
- <param name="p">The point to test</param>
- <param name="p0">A point of the line segment</param>
- <param name="p1">A point of the line segment</param>
- <returns><c>true</c> if the point lies on the line segment</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.PointLocation.IsOnLine(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Tests whether a point lies on the line defined by a list of
- coordinates.
- </summary>
- <param name="p">The point to test</param>
- <param name="line">The line coordinates</param>
- <returns>
- <c>true</c> if the point is a vertex of the line or lies in the interior
- of a line segment in the line
- </returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.PointLocation.IsOnLine(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.CoordinateSequence)">
- <summary>
- Tests whether a point lies on the line defined by a list of
- coordinates.
- </summary>
- <param name="p">The point to test</param>
- <param name="line">The line coordinates</param>
- <returns>
- <c>true</c> if the point is a vertex of the line or lies in the interior
- of a line segment in the line
- </returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.PointLocation.IsInRing(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Tests whether a point lies inside or on a ring. The ring may be oriented in
- either direction. A point lying exactly on the ring boundary is considered
- to be inside the ring.
- <para/>
- This method does <i>not</i> first check the point against the envelope of
- the ring.
- </summary>
- <param name="p">The point to check for ring inclusion</param>
- <param name="ring">An array of coordinates representing the ring (which must have
- first point identical to last point)</param>
- <returns><c>true</c> if p is inside ring</returns>
- <seealso cref="M:NetTopologySuite.Algorithm.PointLocation.LocateInRing(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate[])"/>
- </member>
- <member name="M:NetTopologySuite.Algorithm.PointLocation.IsInRing(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.CoordinateSequence)">
- <summary>
- Tests whether a point lies inside or on a ring. The ring may be oriented in
- either direction. A point lying exactly on the ring boundary is considered
- to be inside the ring.
- <para/>
- This method does <i>not</i> first check the point against the envelope of
- the ring.
- </summary>
- <param name="p">The point to check for ring inclusion</param>
- <param name="ring">A <c>CoordinateSequence</c> representing the ring (which must have
- first point identical to last point)</param>
- <returns><c>true</c> if p is inside ring</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.PointLocation.LocateInRing(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Determines whether a point lies in the interior, on the boundary, or in the
- exterior of a ring.The ring may be oriented in either direction.
- <para/>
- This method does<i> not</i> first check the point against the envelope of
- the ring.
- </summary>
- <param name="p">The point to check for ring inclusion</param>
- <param name="ring">A <c>CoordinateSequence</c> representing the ring (which must have
- first point identical to last point)</param>
- <returns>the <see cref="T:NetTopologySuite.Geometries.Location"/> of p relative to the ring</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.PointLocation.LocateInRing(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.CoordinateSequence)">
- <summary>
- Determines whether a point lies in the interior, on the boundary, or in the
- exterior of a ring.The ring may be oriented in either direction.
- <para/>
- This method does<i> not</i> first check the point against the envelope of
- the ring.
- </summary>
- <param name="p">The point to check for ring inclusion</param>
- <param name="ring">A <c>CoordinateSequence</c> representing the ring (which must have
- first point identical to last point)</param>
- </member>
- <member name="T:NetTopologySuite.Algorithm.PointLocator">
- <summary>
- Computes the topological relationship (<see cref="T:NetTopologySuite.Geometries.Location"/>) of a single point to a Geometry.
- </summary>
- <remarks>
- A <see cref="T:NetTopologySuite.Algorithm.IBoundaryNodeRule"/> may be specified to control the evaluation of whether the point lies on the boundary or not
- The default rule is to use the <i>SFS Boundary Determination Rule</i>
- <para>
- Notes:
- <list Type="Bullet">
- <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>
- </list>
- Instances of this class are not reentrant.
- </para>
- </remarks>
- </member>
- <member name="M:NetTopologySuite.Algorithm.PointLocator.#ctor">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.Algorithm.PointLocator"/> class.<para/>
- The default boundary rule is <see cref="F:NetTopologySuite.Algorithm.BoundaryNodeRules.EndpointBoundaryRule"/>.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Algorithm.PointLocator.#ctor(NetTopologySuite.Algorithm.IBoundaryNodeRule)">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.Algorithm.PointLocator"/> class using the provided
- <paramref name="boundaryRule">boundary rule</paramref>.
- </summary>
- <param name="boundaryRule">The boundary rule to use.</param>
- </member>
- <member name="M:NetTopologySuite.Algorithm.PointLocator.Intersects(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Convenience method to test a point for intersection with a Geometry
- </summary>
- <param name="p">The coordinate to test.</param>
- <param name="geom">The Geometry to test.</param>
- <returns><c>true</c> if the point is in the interior or boundary of the Geometry.</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.PointLocator.Locate(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes the topological relationship ({Location}) of a single point to a Geometry.
- It handles both single-element and multi-element Geometries.
- The algorithm for multi-part Geometries takes into account the boundaryDetermination rule.
- </summary>
- <returns>The Location of the point relative to the input Geometry.</returns>
- </member>
- <member name="T:NetTopologySuite.Algorithm.PolygonNodeTopology">
- <summary>
- Functions to compute topological information
- about nodes (ring intersections) in polygonal geometry.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Algorithm.PolygonNodeTopology.IsCrossing(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Check if four segments at a node cross.
- Typically the segments lie in two different rings, or different sections of one ring.
- The node is topologically valid if the rings do not cross.
- If any segments are collinear, the test returns false.
- </summary>
- <param name="nodePt">The node location</param>
- <param name="a0">The previous segment endpoint in a ring</param>
- <param name="a1">The next segment endpoint in a ring</param>
- <param name="b0">The previous segment endpoint in the other ring</param>
- <param name="b1">The next segment endpoint in the other ring</param>
- <returns>
- <c>true</c> if the rings cross at the node
- </returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.PolygonNodeTopology.IsInteriorSegment(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Tests whether an segment node-b lies in the interior or exterior
- of a corner of a ring formed by the two segments a0-node-a1.
- The ring interior is assumed to be on the right of the corner
- (i.e. a CW shell or CCW hole).
- The test segment must not be collinear with the corner segments.
- </summary>
- <param name="nodePt">The node location</param>
- <param name="a0">The first vertex of the corner</param>
- <param name="a1">The second vertex of the corner</param>
- <param name="b">The other vertex of the test segment</param>
- <returns><c>true</c> if the segment is interior to the ring corner</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.PolygonNodeTopology.IsBetween(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Tests if an edge p is between edges e0 and e1,
- where the edges all originate at a common origin.
- The "inside" of e0 and e1 is the arc which does not include the origin.
- The edges are assumed to be distinct (non-collinear).
- </summary>
- <param name="origin">the origin</param>
- <param name="p">the destination point of edge p</param>
- <param name="e0">the destination point of edge e0</param>
- <param name="e1">the destination point of edge e1</param>
- <returns><c>true</c> if p is between e0 and e1</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.PolygonNodeTopology.CompareBetween(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Compares whether an edge p is between or outside the edges e0 and e1,
- where the edges all originate at a common origin.
- The "inside" of e0 and e1 is the arc which does not include
- the positive X-axis at the origin.
- If p is collinear with an edge 0 is returned.
- </summary>
- <param name="origin">The origin</param>
- <param name="p">The destination point of edge p</param>
- <param name="e0">The destination point of edge e0</param>
- <param name="e1">The destination point of edge e1</param>
- <returns>A negative integer, zero or positive integer as the vector P lies outside, collinear with, or inside the vectors E0 and E1</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.PolygonNodeTopology.IsAngleGreater(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Tests if the angle with the origin of a vector P is greater than that of the
- vector Q.
- </summary>
- <param name="origin">The origin of the vectors</param>
- <param name="p">The endpoint of the vector P</param>
- <param name="q">The endpoint of the vector Q</param>
- <returns><c>true</c> if vector P has angle greater than Q</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.PolygonNodeTopology.CompareAngle(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Compares the angles of two vectors
- relative to the positive X-axis at their origin.
- Angles increase CCW from the X-axis.
- </summary>
- <param name="origin">The origin of the vectors</param>
- <param name="p">The endpoint of the vector P</param>
- <param name="q">The endpoint of the vector Q</param>
- <returns>
- A negative integer, zero, or a positive integer as this vector P has angle less than, equal to, or greater than vector Q
- </returns>
- </member>
- <member name="T:NetTopologySuite.Algorithm.RayCrossingCounter">
- <summary>
- Counts the number of segments crossed by a horizontal ray extending to the right
- from a given point, in an incremental fashion.
- <para>This can be used to determine whether a point lies in a <see cref="T:NetTopologySuite.Geometries.IPolygonal"/> geometry.</para>
- <para>The class determines the situation where the point lies exactly on a segment.</para>
- <para>When being used for Point-In-Polygon determination, this case allows short-circuiting the evaluation.</para>
- </summary>
- <remarks>
- This class handles polygonal geometries with any number of shells and holes.
- The orientation of the shell and hole rings is unimportant.
- In order to compute a correct location for a given polygonal geometry,
- it is essential that <b>all</b> segments are counted which
- <list type="bullet">
- <item><description>touch the ray</description></item>
- <item><description>lie in in any ring which may contain the point</description></item>
- </list>
- <para>
- The only exception is when the point-on-segment situation is detected, in which
- case no further processing is required.
- The implication of the above rule is that segments which can be a priori determined to <i>not</i> touch the ray
- (i.e. by a test of their bounding box or Y-extent) do not need to be counted. This allows for optimization by indexing.
- </para>
- <para>
- This implementation uses the extended-precision orientation test,
- to provide maximum robustness and consistency within
- other algorithms.
- </para>
- </remarks>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Algorithm.RayCrossingCounter.LocatePointInRing(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Determines the <see cref="T:NetTopologySuite.Geometries.Location"/> of a point in a ring.
- This method is an exemplar of how to use this class.
- </summary>
- <param name="p">The point to test</param>
- <param name="ring">An array of Coordinates forming a ring</param>
- <returns>The location of the point in the ring</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.RayCrossingCounter.LocatePointInRing(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.CoordinateSequence)">
- <summary>
- Determines the <see cref="T:NetTopologySuite.Geometries.Location"/> of a point in a ring.
- </summary>
- <param name="p">The point to test</param>
- <param name="ring">A coordinate sequence forming a ring</param>
- <returns>The location of the point in the ring</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.RayCrossingCounter.#ctor(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Creates an instance of this class
- </summary>
- <param name="p">A coordinate.</param>
- </member>
- <member name="M:NetTopologySuite.Algorithm.RayCrossingCounter.CountSegment(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Counts a segment
- </summary>
- <param name="p1">An endpoint of the segment</param>
- <param name="p2">Another endpoint of the segment</param>
- </member>
- <member name="P:NetTopologySuite.Algorithm.RayCrossingCounter.Count">
- <summary>
- Gets the count of crossings.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Algorithm.RayCrossingCounter.IsOnSegment">
- <summary>
- Reports whether the point lies exactly on one of the supplied segments.
- </summary>
- <remarks>
- This method may be called at any time as segments are processed. If the result of this method is <c>true</c>,
- no further segments need be supplied, since the result will never change again.
- </remarks>
- </member>
- <member name="P:NetTopologySuite.Algorithm.RayCrossingCounter.Location">
- <summary>
- Gets the <see cref="T:NetTopologySuite.Geometries.Location"/> of the point relative to the ring, polygon
- or multipolygon from which the processed segments were provided.
- </summary>
- <remarks>
- This property only determines the correct location
- if <b>all</b> relevant segments have been processed.
- </remarks>
- </member>
- <member name="P:NetTopologySuite.Algorithm.RayCrossingCounter.IsPointInPolygon">
- <summary>
- Tests whether the point lies in or on
- the ring, polygon or multipolygon from which the processed
- segments were provided.
- </summary>
- <remarks>
- This property only determines the correct location
- if <b>all</b> relevant segments have been processed
- </remarks>
- </member>
- <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)">
- <summary>
- Creates a rectangular <see cref="T:NetTopologySuite.Geometries.Polygon"/> from a base segment
- defining the position and orientation of one side of the rectangle, and
- three points defining the locations of the line segments
- forming the opposite, left and right sides of the rectangle.
- The base segment and side points must be presented so that the
- rectangle has CW orientation.
- <para/>
- The rectangle corners are computed as intersections of
- lines, which generally cannot produce exact values.
- If a rectangle corner is determined to coincide with a side point
- the side point value is used to avoid numerical inaccuracy.
- <para/>
- The first side of the constructed rectangle contains the base segment.
- </summary>
- <param name="baseRightPt">The right point of the base segment</param>
- <param name="baseLeftPt">The left point of the base segment</param>
- <param name="oppositePt">The point defining the opposite side</param>
- <param name="rightSidePt">The point defining the right side</param>
- <param name="leftSidePt">The point defining the left side</param>
- <param name="factory">The geometry factory</param>
- <returns>The rectangular polygon</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.Rectangle.ComputeLineEquationC(System.Double,System.Double,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Computes the constant C in the standard line equation Ax + By = C
- from A and B and a point on the line.
- </summary>
- <param name="a">The X coefficient</param>
- <param name="b">The Y coefficient</param>
- <param name="p">A point on the line</param>
- <returns>The constant C</returns>
- </member>
- <member name="T:NetTopologySuite.Algorithm.RectangleLineIntersector">
- <summary>
- Computes whether a rectangle intersects line segments.
- </summary>
- <remarks>
- Rectangles contain a large amount of inherent symmetry
- (or to put it another way, although they contain four
- coordinates they only actually contain 4 ordinates
- worth of information).
- The algorithm used takes advantage of the symmetry of
- the geometric situation
- to optimize performance by minimizing the number
- of line intersection tests.
- </remarks>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Algorithm.RectangleLineIntersector.#ctor(NetTopologySuite.Geometries.Envelope)">
- <summary>
- Creates a new intersector for the given query rectangle,
- specified as an <see cref="T:NetTopologySuite.Geometries.Envelope"/>.
- </summary>
- <param name="rectEnv">The query rectangle, specified as an Envelope</param>
- </member>
- <member name="M:NetTopologySuite.Algorithm.RectangleLineIntersector.Intersects(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Tests whether the query rectangle intersects a given line segment.
- </summary>
- <param name="p0">The first endpoint of the segment</param>
- <param name="p1">The second endpoint of the segment</param>
- <returns><c>true</c> if the rectangle intersects the segment</returns>
- </member>
- <member name="T:NetTopologySuite.Algorithm.RobustDeterminant">
- <summary>
- Implements an algorithm to compute the
- sign of a 2x2 determinant for double precision values robustly.
- It is a direct translation of code developed by Olivier Devillers.
-
- The original code carries the following copyright notice:
- ************************************************************************
- Author : Olivier Devillers
- Olivier.Devillers@sophia.inria.fr
- http:/www.inria.fr:/prisme/personnel/devillers/anglais/determinant.html
-
- Olivier Devillers has allowed the code to be distributed under
- the LGPL (2012-02-16) saying "It is ok for LGPL distribution."
-
- *************************************************************************
- *************************************************************************
- Copyright (c) 1995 by INRIA Prisme Project
- BP 93 06902 Sophia Antipolis Cedex, France.
- All rights reserved
- *************************************************************************
- </summary>
- </member>
- <member name="M:NetTopologySuite.Algorithm.RobustDeterminant.SignOfDet2x2(System.Double,System.Double,System.Double,System.Double)">
- <summary>
- Computes the sign of the determinant of the 2x2 matrix with the given entries, in a robust way.
- </summary>
- <param name="x1"></param>
- <param name="y1"></param>
- <param name="x2"></param>
- <param name="y2"></param>
- <returns>
- <list type="bullet">
- <item><description>-1 if the determinant is negative,</description></item>
- <item><description>1 if the determinant is positive,</description></item>
- <item><description>0 if the determinant is null.</description></item>
- </list>
- </returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.RobustDeterminant.OrientationIndex(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Returns the index of the direction of the point <c>q</c> relative to
- a vector specified by <c>p1-p2</c>.
- </summary>
- <param name="p1">The origin point of the vector</param>
- <param name="p2">The final point of the vector</param>
- <param name="q">the point to compute the direction to</param>
- <returns>
- <list type="bullet">
- <item><description>1 if q is counter-clockwise (left) from p1-p2</description></item>
- <item><description>-1 if q is clockwise (right) from p1-p2</description></item>
- <item><description>0 if q is collinear with p1-p2</description></item></list>
- </returns>
- </member>
- <member name="T:NetTopologySuite.Algorithm.RobustLineIntersector">
- <summary>
- A robust version of <see cref="T:NetTopologySuite.Algorithm.LineIntersector"/>.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Algorithm.RobustLineIntersector.#ctor">
- <summary>
- Creates an instance of this class. No <see cref="T:NetTopologySuite.Algorithm.ElevationModel"/> is assigned
- </summary>
- </member>
- <member name="M:NetTopologySuite.Algorithm.RobustLineIntersector.#ctor(NetTopologySuite.Algorithm.ElevationModel)">
- <summary>
- Creates an instance of this class assigning the provided <see cref="T:NetTopologySuite.Algorithm.ElevationModel"/>.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Algorithm.RobustLineIntersector.ComputeIntersection(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
-
- </summary>
- <param name="p"></param>
- <param name="p1"></param>
- <param name="p2"></param>
- </member>
- <member name="M:NetTopologySuite.Algorithm.RobustLineIntersector.ComputeIntersect(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <inheritdoc cref="M:NetTopologySuite.Algorithm.LineIntersector.ComputeIntersect(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)"/>
- </member>
- <member name="M:NetTopologySuite.Algorithm.RobustLineIntersector.Intersection(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- This method computes the actual value of the intersection point.
- It is rounded to the precision model if being used.
- </summary>
- <param name="p1"></param>
- <param name="p2"></param>
- <param name="q1"></param>
- <param name="q2"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.RobustLineIntersector.IntersectionSafe(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Computes a segment intersection.
- Round-off error can cause the raw computation to fail,
- (usually due to the segments being approximately parallel).
- If this happens, a reasonable approximation is computed instead.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Algorithm.RobustLineIntersector.IsInSegmentEnvelopes(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Tests whether a point lies in the envelopes of both input segments.
- A correctly computed intersection point should return <c>true</c>
- for this test.
- Since this test is for debugging purposes only, no attempt is
- made to optimize the envelope test.
- </summary>
- <param name="intPoint"></param>
- <returns><c>true</c> if the input point lies within both input segment envelopes.</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.RobustLineIntersector.NearestEndpoint(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Finds the endpoint of the segments P and Q which
- is closest to the other segment.
- This is a reasonable surrogate for the true
- intersection points in ill-conditioned cases
- (e.g. where two segments are nearly coincident,
- or where the endpoint of one segment lies almost on the other segment).
- </summary>
- <remarks>
- This replaces the older CentralEndpoint heuristic,
- which chose the wrong endpoint in some cases
- where the segments had very distinct slopes
- and one endpoint lay almost on the other segment.
- </remarks>
- <param name="p1">an endpoint of segment P</param>
- <param name="p2">an endpoint of segment P</param>
- <param name="q1">an endpoint of segment Q</param>
- <param name="q2">an endpoint of segment Q</param>
- <returns>the nearest endpoint to the other segment</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.RobustLineIntersector.WithZ(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Returns either <paramref name="p"/> or <paramref name="q"/>, depending on which one has a valid z-ordinate value
- </summary>
- <param name="p">A coordinate, possibly with z-ordinate</param>
- <param name="q">A coordinate, possibly with z-ordinate</param>
- <returns>Returns eihter p or q.</returns>
- </member>
- <member name="P:NetTopologySuite.Algorithm.RobustLineIntersector.ElevationModel">
- <summary>
- Gets or sets a value indicating the elevation model to use when z-ordinate is not known
- </summary>
- </member>
- <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)">
- <summary>
- Factory method to create an elevation model for retrieving missing z-ordinate values
- </summary>
- <param name="p1">Start point of the first line segment (P)</param>
- <param name="p2">End point of the first line segment (P)</param>
- <param name="q1">Start point of the second line segment (Q)</param>
- <param name="q2">End point of the second line segment (Q)</param>
- <param name="Pq1">Orientation of q1 in regartd to P</param>
- <param name="Pq2">Orientation of q2 in regartd to P</param>
- <param name="Qp1">Orientation of p1 in regartd to Q</param>
- <param name="Qp2">Orientation of p2 in regartd to Q</param>
- <param name="collinear">Flag indicating that the two line segments are collinear</param>
- <returns>An elevation model</returns>
- </member>
- <member name="T:NetTopologySuite.Algorithm.RobustLineIntersector.LocalElevationModel">
- <summary>
- A local elevation model.
- This mimics the functionality that was previously hard coded into <see cref="T:NetTopologySuite.Algorithm.RobustLineIntersector"/>.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Algorithm.RobustLineIntersector.LocalElevationModel.GetZ(NetTopologySuite.Geometries.Coordinate)">
- <inheritdoc/>
- </member>
- <member name="M:NetTopologySuite.Algorithm.RobustLineIntersector.LocalElevationModel.GetZ(System.Double,System.Double)">
- <summary>
- Not supported
- </summary>
- </member>
- <member name="M:NetTopologySuite.Algorithm.RobustLineIntersector.LocalElevationModel.GetZ(System.ReadOnlySpan{System.Double},System.Span{System.Double})">
- <summary>
- Not supported
- </summary>
- </member>
- <member name="M:NetTopologySuite.Algorithm.RobustLineIntersector.LocalElevationModel.GetZFromEither(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Gets the Z value of the first argument if present,
- otherwise the value of the second argument.
- </summary>
- <param name="p">A coordinate, possibly with Z</param>
- <param name="q">A coordinate, possibly with Z</param>
- <returns>The Z value if present</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.RobustLineIntersector.LocalElevationModel.GetZOrInterpolate(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Gets the Z value of a coordinate if present, or
- interpolates it from the segment it lies on.
- If the segment Z values are not fully populate
- NaN is returned.
- </summary>
- <param name="p">A coordinate, possibly with Z</param>
- <param name="p1">A segment endpoint, possibly with Z</param>
- <param name="p2">A segment endpoint, possibly with Z</param>
- <returns>The extracted or interpolated Z value (may be NaN)</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.RobustLineIntersector.LocalElevationModel.InterpolateZ(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Interpolates a Z value for a point along
- a line segment between two points.
- The Z value of the interpolation point (if any) is ignored.
- If either segment point is missing Z,
- returns NaN.
- </summary>
- <param name="p">A coordinate, possibly with Z</param>
- <param name="p1">A segment endpoint, possibly with Z</param>
- <param name="p2">A segment endpoint, possibly with Z</param>
- <returns>The extracted or interpolated Z value (may be NaN)</returns>
- </member>
- <member name="M:NetTopologySuite.Algorithm.RobustLineIntersector.LocalElevationModel.InterpolateZ(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Interpolates a Z value for a point along
- two line segments and computes their average.
- The Z value of the interpolation point (if any) is ignored.
- If one segment point is missing Z that segment is ignored
- if both segments are missing Z, returns NaN.
- </summary>
- <param name="p">A coordinate</param>
- <param name="p1">A segment endpoint, possibly with Z</param>
- <param name="p2">A segment endpoint, possibly with Z</param>
- <param name="q1">A segment endpoint, possibly with Z</param>
- <param name="q2">A segment endpoint, possibly with Z</param>
- <returns>The averaged interpolated Z value (may be NaN)</returns>
- </member>
- <member name="M:NetTopologySuite.Coverage.Corner.CompareTo(NetTopologySuite.Coverage.Corner)">
- <summary>
- Orders corners by increasing area
- To ensure equal-area corners have a deterministic ordering,
- if area is equal then compares corner index.
- </summary>
- </member>
- <member name="T:NetTopologySuite.Coverage.CornerArea">
- <summary>
- Computes the effective area of corners,
- taking into account the smoothing weight.
- </summary>
- <remarks>
- <h3>FUTURE WORK</h3>
- <list type="bullet">
- <item><description>Support computing geodetic area</description></item>
- </list>
- </remarks>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Coverage.CornerArea.#ctor">
- <summary>
- Creates a new corner area computer using the <see cref="F:NetTopologySuite.Coverage.CornerArea.DEFAULT_SMOOTH_WEIGHT"/>.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Coverage.CornerArea.#ctor(System.Double)">
- <summary>
- Creates a new corner area computer using the provided <paramref name="smoothWeight"/>
- </summary>
- <param name="smoothWeight">The weight for smoothing corners. In range [0..1].</param>
- </member>
- <member name="T:NetTopologySuite.Coverage.CoverageBoundarySegmentFinder">
- <summary>
- Finds coverage segments which occur in only a single coverage element.
- In a valid coverage, these are exactly the line segments which lie
- on the boundary of the coverage.
- <para/>
- In an invalid coverage, segments might occur in 3 or more elements.
- This situation is not detected.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="T:NetTopologySuite.Coverage.CoverageEdge">
- <summary>
- An edge of a polygonal coverage formed from all or a section of a polygon ring.
- An edge may be a free ring, which is a ring which has not node points
- (i.e.does not share a vertex with any other rings in the parent coverage).
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Coverage.CoverageEdge.Key(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Computes a key segment for a ring.
- The key is the segment starting at the lowest vertex,
- towards the lowest adjacent distinct vertex.
- </summary>
- <param name="ring">A linear ring</param>
- <returns>A LineSegment representing the key</returns>
- </member>
- <member name="M:NetTopologySuite.Coverage.CoverageEdge.Key(NetTopologySuite.Geometries.Coordinate[],System.Int32,System.Int32)">
- <summary>
- Computes a distinct key for a section of a linear ring.
- </summary>
- <param name="ring">A linear ring</param>
- <param name="start">The index of the start of the section</param>
- <param name="end">The end index of the end of the section</param>
- <returns>A LineSegment representing the key</returns>
- </member>
- <member name="P:NetTopologySuite.Coverage.CoverageEdge.IsFreeRing">
- <summary>
- Gets a value indicating if this edge is a free ring;
- i.e.one that does not have nodes
- which are anchored because they occur in another ring.
- </summary>
- </member>
- <member name="T:NetTopologySuite.Coverage.CoverageGapFinder">
- <summary>
- Finds gaps in a polygonal coverage.
- Gaps are holes in the coverage which are narrower than a given width.
- <para/>
- The coverage should be valid according to {@link CoverageValidator}.
- If this is not the case, some gaps may not be reported, or the invocation may fail.
- <para/>
- This is a more accurate way of identifying gaps
- than using {@link CoverageValidator#setGapWidth(double)}.
- Gaps which separate the coverage into two disjoint regions are not detected.
- Gores are not identified as gaps.>
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Coverage.CoverageGapFinder.FindGaps(NetTopologySuite.Geometries.Geometry[],System.Double)">
- <summary>
- Finds gaps in a polygonal coverage.
- Returns lines indicating the locations of the gaps.
- </summary>
- <param name="coverage">A set of polygons forming a polygonal coverage</param>
- <param name="gapWidth">The maximum width of gap to detect</param>
- <returns>A geometry indicating the locations of gaps (which is empty if no gaps were found), or null if the coverage was empty</returns>
- </member>
- <member name="M:NetTopologySuite.Coverage.CoverageGapFinder.#ctor(NetTopologySuite.Geometries.Geometry[])">
- <summary>
- Creates a new polygonal coverage gap finder
- </summary>
- <param name="coverage">A set of polygons forming a polygonal coverage</param>
- </member>
- <member name="M:NetTopologySuite.Coverage.CoverageGapFinder.FindGaps(System.Double)">
- <summary>
- Finds gaps in the coverage.
- Returns lines indicating the locations of the gaps.
- </summary>
- <param name="gapWidth">The maximum width of gap to detect</param>
- <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>
- </member>
- <member name="T:NetTopologySuite.Coverage.CoveragePolygonValidator">
- <summary>
- Validates that a polygon forms a valid polygonal coverage
- with the set of polygons adjacent to it.
- If the polygon is coverage-valid an empty { @link LineString} is returned.
- Otherwise, the result is a linear geometry containing
- the polygon boundary linework causing the invalidity.
- <para/>
- A polygon is coverage-valid if:
- <list type="number">
- <item><description>The polygon interior does not intersect the interior of other polygons.</description></item>
- <item><description>If the polygon boundary intersects another polygon boundary, the vertices
- and line segments of the intersection match exactly.</description></item>
- </list>
- <para/>
- The algorithm detects the following coverage errors:
- <list type="number">
- <item><description>the polygon is a duplicate of another one</description></item>
- <item><description>a polygon boundary segment equals an adjacent segment (with same orientation).
- This determines that the polygons overlap</description></item>
- <item><description>a polygon boundary segment is collinear and overlaps an adjacent segment
- but is not equal to it
- </description></item>
- <item><description>a polygon boundary segment touches an adjacent segment at a non-vertex point</description></item>
- <item><description>a polygon boundary segment crosses into an adjacent polygon</description></item>
- <item><description>a polygon boundary segment is in the interior of an adjacent polygon</description></item>
- </list>
- <para/>
-
- If any of these errors is present, the target polygon
- does not form a valid coverage with the adjacent polygons.
- <para/>
- The validity rules do not preclude properly noded gaps between coverage polygons.
- However, this class can detect narrow gaps,
- by specifying a maximum gap width using {@link #setGapWidth(double)}.
- Note that this will also identify narrow gaps separating disjoint coverage regions,
- and narrow gores.
- In some situations it may also produce false positives
- (i.e.linework identified as part of a gap which is wider than the given width).
- To fully identify gaps it maybe necessary to use <see cref="T:NetTopologySuite.Coverage.CoverageUnion"/> and analyze
- the holes in the result to see if they are acceptable.
- <para/>
- A polygon may be coverage-valid with respect to
- a set of surrounding polygons, but the collection as a whole may not
- form a clean coverage.For example, the target polygon boundary may be fully matched
- by adjacent boundary segments, but the adjacent set contains polygons
- which are not coverage - valid relative to other ones in the set.
- A coverage is valid only if every polygon in the coverage is coverage - valid.
- Use <see cref="T:NetTopologySuite.Coverage.CoverageValidator"/> to validate an entire set of polygons.
- <para/>
- The adjacent set may contain polygons which do not intersect the target polygon.
- These are effectively ignored during validation (but may decrease performance).
- </summary>
- <seealso cref="T:NetTopologySuite.Coverage.CoverageValidator"/>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Coverage.CoveragePolygonValidator.Validate(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry[])">
- <summary>
- Validates that a polygon is coverage-valid against the
- surrounding polygons in a polygonal coverage.
- </summary>
- <param name="targetPolygon">The polygon to validate</param>
- <param name="adjPolygons">The adjacent polygons</param>
- <returns>A linear geometry containing the segments causing invalidity (if any)</returns>
- </member>
- <member name="M:NetTopologySuite.Coverage.CoveragePolygonValidator.Validate(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry[],System.Double)">
- <summary>
- Validates that a polygon is coverage-valid against the
- surrounding polygons in a polygonal coverage,
- and forms no gaps narrower than a specified width.
- <para/>
- The set of surrounding polygons should include all polygons which
- are within the gap width distance of the target polygon.
- </summary>
- <param name="targetPolygon">The polygon to validate</param>
- <param name="adjPolygons">The adjacent polygons</param>
- <param name="gapWidth">The maximum width of invalid gaps</param>
- <returns>A linear geometry containing the segments causing invalidity (if any)/// </returns>
- </member>
- <member name="M:NetTopologySuite.Coverage.CoveragePolygonValidator.#ctor(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry[])">
- <summary>
- Create a new validator.
- <para/>
- If the gap width is specified, the set of surrounding polygons
- should include all polygons which
- are within the gap width distance of the target polygon.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Coverage.CoveragePolygonValidator.GapWidth">
- <summary>
- Gets or sets the maximum gap width, if narrow gaps are to be detected.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Coverage.CoveragePolygonValidator.Validate">
- <summary>
- Validates the coverage polygon against the set of adjacent polygons
- in the coverage.
- </summary>
- <returns>A linear geometry containing the segments causing invalidity (if any)</returns>
- </member>
- <member name="M:NetTopologySuite.Coverage.CoveragePolygonValidator.MarkMatchedSegments(System.Collections.Generic.List{NetTopologySuite.Coverage.CoverageRing},System.Collections.Generic.List{NetTopologySuite.Coverage.CoverageRing},NetTopologySuite.Geometries.Envelope)">
- <summary>
- Marks matched segments.
- This improves the efficiency of validity testing, since in valid coverages
- all segments (except exterior ones) are matched,
- and hence do not need to be tested further.
- Segments which are equal and have same orientation
- are detected and marked invalid.
- In fact, the entire target polygon may be matched and valid,
- which allows avoiding further tests.
- Segments matched between adjacent polygons are also marked valid,
- since this prevents them from being detected as misaligned,
- if this is being done.
- </summary>
- <param name="targetRings">The target rings</param>
- <param name="adjRngs">The adjacent rings</param>
- <param name="targetEnv">The tolerance envelope of the target</param>
- </member>
- <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})">
- <summary>
- Adds ring segments to the segment map,
- and detects if they match an existing segment.
- Matched segments are marked.
- </summary>
- </member>
- <member name="T:NetTopologySuite.Coverage.CoveragePolygonValidator.CoverageRingSegment">
- <summary>
- Models a segment in a CoverageRing.
- The segment is normalized so it can be compared with segments
- in any orientation.
- Records valid matching segments in a coverage,
- which must have opposite orientations.
- Also detects equal segments with identical
- orientation, and marks them as coverage-invalid.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Coverage.CoveragePolygonValidator.MarkInvalidInteractingSegments(System.Collections.Generic.List{NetTopologySuite.Coverage.CoverageRing},System.Collections.Generic.List{NetTopologySuite.Coverage.CoverageRing},System.Double)">
- <summary>
- Marks invalid target segments which cross an adjacent ring segment,
- lie partially in the interior of an adjacent ring,
- or are nearly collinear with an adjacent ring segment up to the distance tolerance
- </summary>
- <param name="targetRings">The rings with segments to test</param>
- <param name="adjRings">The adjacent rings</param>
- <param name="distanceTolerance">The gap distance tolerance, if any</param>
- </member>
- <member name="F:NetTopologySuite.Coverage.CoveragePolygonValidator.RING_SECTION_STRIDE">
- <summary>Stride is chosen experimentally to provide good performance</summary>
- </member>
- <member name="M:NetTopologySuite.Coverage.CoveragePolygonValidator.MarkInvalidInteriorSegments(System.Collections.Generic.List{NetTopologySuite.Coverage.CoverageRing},System.Collections.Generic.List{NetTopologySuite.Coverage.CoveragePolygon})">
- <summary>
- Marks invalid target segments which are fully interior
- to an adjacent polygon.
- </summary>
- <param name="targetRings">The rings with segments to test</param>
- <param name="adjCovPolygons">The adjacent polygons</param>
- </member>
- <member name="M:NetTopologySuite.Coverage.CoveragePolygonValidator.markInvalidInteriorSection(NetTopologySuite.Coverage.CoverageRing,System.Int32,System.Int32,System.Collections.Generic.List{NetTopologySuite.Coverage.CoveragePolygon})">
- Marks invalid target segments in a section which are interior
- to an adjacent polygon.
- Processing a section at a time dramatically improves efficiency.
- Due to the coherent organization of polygon rings,
- sections usually have a high spatial locality.
- This means that sections typically intersect only a few or often no adjacent polygons.
- The section envelope can be computed and tested against adjacent polygon envelopes quickly.
- The section can be skipped entirely if it does not interact with any polygons.
-
- @param ring
- @param iStart
- @param iEnd
- @param adjPolygons
- </member>
- <member name="M:NetTopologySuite.Coverage.CoverageRing.AllRingsValid(System.Collections.Generic.IList{NetTopologySuite.Coverage.CoverageRing})">
- <remarks>Named <c>isValid</c> in JTS</remarks>
- </member>
- <member name="M:NetTopologySuite.Coverage.CoverageRing.AllRingsKnown(System.Collections.Generic.IList{NetTopologySuite.Coverage.CoverageRing})">
- <summary>
- Tests if all rings have known status (matched or invalid)
- for all segments.
- </summary>
- <remarks>Named <c>isKnown</c> in JTS</remarks>
- <param name="rings">A list of rings</param>
- <returns><c>true</c> if all ring segments hav known status</returns>
- </member>
- <member name="P:NetTopologySuite.Coverage.CoverageRing.IsInteriorOnRight">
- <summary>
- Reports if the ring has canonical orientation,
- with the polygon interior on the right (shell is CW).
- </summary>
- </member>
- <member name="M:NetTopologySuite.Coverage.CoverageRing.MarkInvalid(System.Int32)">
- <summary>
- Marks a segment as invalid.
- </summary>
- <param name="i">The segment index</param>
- </member>
- <member name="M:NetTopologySuite.Coverage.CoverageRing.MarkMatched(System.Int32)">
- <summary>
- Marks a segment as matched.
- </summary>
- <param name="i">The segment index</param>
- </member>
- <member name="P:NetTopologySuite.Coverage.CoverageRing.IsKnown">
- <summary>
- Gets a value indicating whether all segments in the ring have a known status,
- matched or invalid.
- </summary>
- <returns><c>true</c></returns>
- </member>
- <member name="M:NetTopologySuite.Coverage.CoverageRing.IsInvalidAt(System.Int32)">
- <summary>
- Tests if a segment is marked invalid.
- </summary>
- <param name="index">The segment index</param>
- <returns><c>true</c> if the segment is invalid.</returns>
- <remarks>Named <c>isInvalid</c> in JTS</remarks>
- </member>
- <member name="P:NetTopologySuite.Coverage.CoverageRing.IsInvalid">
- <summary>
- Gets a value indicating whether all segments are invalid.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Coverage.CoverageRing.HasInvalid">
- <summary>
- Gets a value indicating whether any segment is invalid.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Coverage.CoverageRing.IsKnownAt(System.Int32)">
- <summary>
- Tests whether the validity state of a ring segment is known.
- </summary>
- <param name="i">The index of the ring segment</param>
- <returns><c>true</c> if the segment validity state is known.</returns>
- <remarks>Named <c>isKnown(int)</c> int JTS</remarks>
- </member>
- <member name="M:NetTopologySuite.Coverage.CoverageRing.FindVertexPrev(System.Int32,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Finds the previous vertex in the ring which is distinct from a given coordinate value.
- </summary>
- <param name="index">The index to start the search</param>
- <param name="pt">A coordinate value (which may not be a ring vertex)</param>
- <returns>The previous distinct vertex in the ring</returns>
- </member>
- <member name="M:NetTopologySuite.Coverage.CoverageRing.FindVertexNext(System.Int32,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Finds the next vertex in the ring which is distinct from a given coordinate value.
- </summary>
- <param name="index">The index to start the search</param>
- <param name="pt">A coordinate value (which may not be a ring vertex)</param>
- <returns>The next distinct vertex in the ring</returns>
- </member>
- <member name="M:NetTopologySuite.Coverage.CoverageRing.Prev(System.Int32)">
- <summary>
- Gets the index of the previous segment in the ring.
- </summary>
- <param name="index">A segment index</param>
- <returns>The index of the previous segment</returns>
- </member>
- <member name="M:NetTopologySuite.Coverage.CoverageRing.Next(System.Int32)">
- <summary>
- Gets the index of the next segment in the ring.
- </summary>
- <param name="index">A segment index</param>
- <returns>The index of the next segment</returns>
- </member>
- <member name="M:NetTopologySuite.Coverage.CoverageRing.CreateLine(System.Int32,System.Int32,NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
- Creates a line from a sequence of ring segments between startIndex and endIndex (inclusive).
- If the endIndex < startIndex the sequence wraps around the ring endpoint.</summary>
- <returns>A line representing the section</returns>
- </member>
- <member name="T:NetTopologySuite.Coverage.CoverageRingEdges">
- <summary>
- Models a polygonal coverage as a set of unique <see cref="T:NetTopologySuite.Coverage.CoverageEdge"/>s,
- linked to the parent rings in the coverage polygons.
- Each edge has either one or two parent rings, depending on whether
- it is an inner or outer edge of the coverage.
- The source coverage is represented as a array of polygonal geometries
- (either <see cref="T:NetTopologySuite.Geometries.Polygon"/>s or <see cref="T:NetTopologySuite.Geometries.MultiPolygon"/>s).
- <para/>
- Coverage edges are found by identifying vertices which are nodes in the coverage,
- splitting edges at nodes, and then identifying unique edges.
- The unique edges are associated to their parent ring(in order),
- to allow reforming the coverage polygons.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Coverage.CoverageRingEdges.Create(NetTopologySuite.Geometries.Geometry[])">
- <summary>
- Create a new instance for a given coverage.
- </summary>
- <param name="coverage">The set of polygonal geometries in the coverage</param>
- <returns>The edges of the coverage</returns>
- </member>
- <member name="M:NetTopologySuite.Coverage.CoverageRingEdges.AddBoundaryInnerNodes(NetTopologySuite.Geometries.LinearRing,System.Collections.Generic.ISet{NetTopologySuite.Geometries.LineSegment},System.Collections.Generic.ISet{NetTopologySuite.Geometries.Coordinate})">
- <summary>
- Detects nodes occurring at vertices which are between a boundary segment
- and an inner (shared) segment.
- These occur where two polygons are adjacent at the coverage boundary
- (this is not detected by <see cref="M:NetTopologySuite.Coverage.CoverageRingEdges.FindMultiRingNodes(NetTopologySuite.Geometries.Geometry[])"/>.
- </summary>
- <param name="ring"></param>
- <param name="boundarySegs"></param>
- <param name="nodes"></param>
- </member>
- <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})">
- <summary>
- Extracts the <see cref="T:NetTopologySuite.Coverage.CoverageEdge"/>s for a ring.
- </summary>
- <param name="index"></param>
- <param name="ring"></param>
- <param name="isPrimary"></param>
- <param name="uniqueEdgeMap"></param>
- <param name="nodes"></param>
- <returns><c>null</c> if the ring has too few distinct vertices</returns>
- </member>
- <member name="M:NetTopologySuite.Coverage.CoverageRingEdges.FindMultiRingNodes(NetTopologySuite.Geometries.Geometry[])">
- <summary>
- Finds nodes in a coverage at vertices which are shared by 3 or more rings.
- </summary>
- <param name="coverage">A list of polygonal geometries</param>
- <returns>The set of nodes contained in 3 or more rings</returns>
- </member>
- <member name="M:NetTopologySuite.Coverage.CoverageRingEdges.FindBoundaryNodes(System.Collections.Generic.ISet{NetTopologySuite.Geometries.LineSegment})">
- <summary>
- Finds nodes occurring between boundary segments.
- Nodes on boundaries occur at vertices which have
- 3 or more incident boundary segments.
- This detects situations where two rings touch only at a vertex
- (i.e. two polygons touch, or a polygon shell touches a hole)
- These nodes lie in only 2 adjacent rings,
- so are not detected by <see cref="M:NetTopologySuite.Coverage.CoverageRingEdges.FindMultiRingNodes(NetTopologySuite.Geometries.Geometry[])"/>{@link #findMultiRingNodes(Geometry[])}.
- </summary>
- <param name="boundarySegments"></param>
- <returns>A set of vertices which are nodes where two rings touch</returns>
- </member>
- <member name="M:NetTopologySuite.Coverage.CoverageRingEdges.BuildCoverage">
- <summary>
- Recreates the polygon coverage from the current edge values.
- </summary>
- <returns>An array of polygonal geometries representing the coverage</returns>
- </member>
- <member name="M:NetTopologySuite.Coverage.CoverageRingEdges.BuildPolygon(NetTopologySuite.Geometries.Polygon)">
- <summary>
-
- </summary>
- <param name="polygon"></param>
- <returns><c>null</c> if the polygon has been removed</returns>
- </member>
- <member name="T:NetTopologySuite.Coverage.CoverageSimplifier">
- <summary>
- Simplifies the boundaries of the polygons in a polygonal coverage
- while preserving the original coverage topology.
- An area-based simplification algorithm
- (similar to Visvalingam-Whyatt simplification)
- is used to provide high-quality results.
- Also supports simplifying just the inner edges in a coverage,
- which allows simplifying "patches" without affecting their boundary.
- <para/>
- The amount of simplification is determined by a tolerance value,
- which is a non-negative quantity. It equates roughly to the maximum
- distance by which a simplified line can change from the original.
- (In fact, it is the square root of the area tolerance used
- in the Visvalingam-Whyatt algorithm.)
- <para/>
- The simplified result coverage has the following characteristics:
- <list type="bullet">
- <item><description>It has the same number of polygonal geometries as the input</description></item>
- <item><description>If the input is a valid coverage, then so is the result</description></item>
- <item><description>Node points (inner vertices shared by three or more polygons,
- or boundary vertices shared by two or more) are not changed</description></item>
- <item><description>Polygons maintain their line-adjacency (edges are never removed)</description></item>
- <item><description>Rings are simplified to a minimum of 4 vertices, to better preserve their shape</description></item>
- <item><description>Rings smaller than the area tolerance are removed where possible.
- This applies to both holes and "islands" (multipolygon elements
- which are disjoint or touch another polygon at a single vertex).
- At least one polygon is retained for each input geometry
- (the one with largest area).</description></item>
- </list>
- <para/>
- This class supports simplification using different distance tolerances
- for inner and outer edges of the coverage(including no simplfication
- using a tolerance of 0.0).
- This allows, for example, inner simplification, which simplifies
- only edges of the coverage which are adjacent to two polygons.
- This allows partial simplification of a coverage, since a simplified
- subset of a coverage still matches the remainder of the coverage.
- <para/>
- The class allows specifying a separate tolerance for each element of the input coverage.
- <para/>
- The input coverage should be valid according to <see cref="T:NetTopologySuite.Coverage.CoverageValidator"/>.
- Invalid coverages may still be simplified, but the result will likely still be invalid.
- <para/>
- <b>NOTE:</b><br/>Due to different implementations of the <c>PriorityQueue</c> classes used in JTS and NTS
- the results of the <c>CoverageSimplifier</c>'s simplification methods are not guaranteed
- to be the same. Nonetheless both results are valid.
- </summary>
- <remarks>
- <h3>FUTURE WORK</h3>
- <list type="bullet">
- <description>Support geodetic data by computing true geodetic area, and accepting tolerances in metres</description>
- </list>
- </remarks>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Coverage.CoverageSimplifier.Simplify(NetTopologySuite.Geometries.Geometry[],System.Double)">
- <summary>
- Simplifies the boundaries of a set of polygonal geometries forming a coverage,
- preserving the coverage topology.
- </summary>
- <param name="coverage">A set of polygonal geometries forming a coverage</param>
- <param name="tolerance">The simplification tolerance</param>
- <returns>The simplified coverage polygons</returns>
- </member>
- <member name="M:NetTopologySuite.Coverage.CoverageSimplifier.Simplify(NetTopologySuite.Geometries.Geometry[],System.Double[])">
- <summary>
- Simplifies the boundaries of a set of polygonal geometries forming a coverage,
- preserving the coverage topology, using a separate tolerance
- for each element of the coverage.
- Coverage edges are simplified using the lowest tolerance of each adjacent
- element.
- </summary>
- <param name="coverage">A set of polygonal geometries forming a coverage</param>
- <param name="tolerances">The simplification tolerances (one per input element)</param>
- <returns>The simplified coverage polygons</returns>
- </member>
- <member name="M:NetTopologySuite.Coverage.CoverageSimplifier.SimplifyInner(NetTopologySuite.Geometries.Geometry[],System.Double)">
- <summary>
- Simplifies the inner boundaries of a set of polygonal geometries forming a coverage,
- preserving the coverage topology.
- Edges which form the exterior boundary of the coverage are left unchanged.
- </summary>
- <param name="coverage">A set of polygonal geometries forming a coverage</param>
- <param name="tolerance">The simplification tolerance</param>
- <returns>The simplified coverage polygons</returns>
- </member>
- <member name="M:NetTopologySuite.Coverage.CoverageSimplifier.SimplifyOuter(NetTopologySuite.Geometries.Geometry[],System.Double)">
- <summary>
- Simplifies the outer boundaries of a set of polygonal geometries forming a coverage,
- preserving the coverage topology.
- Edges in the interior of the coverage are left unchanged.
- </summary>
- <param name="coverage">A set of polygonal geometries forming a coverage</param>
- <param name="tolerance">The simplification tolerance</param>
- <returns>The simplified coverage polygons</returns>
- </member>
- <member name="M:NetTopologySuite.Coverage.CoverageSimplifier.#ctor(NetTopologySuite.Geometries.Geometry[])">
- <summary>
- Create a new coverage simplifier instance.
- </summary>
- <param name="coverage">A set of polygonal geometries forming a coverage</param>
- </member>
- <member name="P:NetTopologySuite.Coverage.CoverageSimplifier.RemovableRingSizeFactor">
- <summary>
- Gets or sets a value indicating the factor
- applied to the area tolerance to determine
- if small rings should be removed.
- Larger values cause more rings to be removed.
- A value of <c>0</c> prevents rings from being removed.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Coverage.CoverageSimplifier.SmoothWeight">
- <summary>
- Gets or sets a value inidcating the weight influencing
- how smooth the simplification should be.
- The weight must be between 0 and 1.
- Larger values increase the smoothness of the simplified edges.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Coverage.CoverageSimplifier.Simplify(System.Double)">
- <summary>
- Computes the simplified coverage using a single distance tolerance,
- preserving the coverage topology.
- </summary>
- <param name="tolerance">The simplification distance tolerance</param>
- <returns>The simplified coverage polygons</returns>
- </member>
- <member name="M:NetTopologySuite.Coverage.CoverageSimplifier.Simplify(System.Double,System.Double)">
- <summary>
- Computes the simplified coverage using separate distance tolerances
- for inner and outer edges, preserving the coverage topology.
- </summary>
- <param name="toleranceInner">The distance tolerance for inner edges</param>
- <param name="toleranceOuter">The distance tolerance for outer edges</param>
- <returns>The simplified coverage polygons</returns>
- </member>
- <member name="M:NetTopologySuite.Coverage.CoverageSimplifier.Simplify(System.Double[])">
- <summary>
- Computes the simplified coverage using separate distance tolerances
- for each coverage element, preserving the coverage topology.
- </summary>
- <param name="tolerances">the distance tolerances for the coverage elements</param>
- <returns>The simplified coverage polygons</returns>
- </member>
- <member name="T:NetTopologySuite.Coverage.CoverageUnion">
- <summary>
- Unions a polygonal coverage in an efficient way.
- <para/>
- Valid polygonal coverage topology allows merging polygons in a very efficient way.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Coverage.CoverageUnion.Union(NetTopologySuite.Geometries.Geometry[])">
- <summary>
- Unions a polygonal coverage.
- </summary>
- <param name="coverage">The polygons in the coverage</param>
- <returns>The union of the coverage polygons</returns>
- </member>
- <member name="T:NetTopologySuite.Coverage.CoverageValidator">
- <summary>
- Validates a polygonal coverage, and returns the locations of
- invalid polygon boundary segments if found.
- <para/>
- A polygonal coverage is a set of polygons which may be edge-adjacent but do
- not overlap.
- Coverage algorithms(such as { @link CoverageUnion}
- or simplification)
- generally require the input coverage to be valid to produce correct results.
- A polygonal coverage is valid if:
- <list type="number">
- <item><description>The interiors of all polygons do not intersect(are disjoint).
- This is the case if no polygon has a boundary which intersects the interior of another polygon,
- and no two polygons are identical.</description></item>
- <item><description>If the boundaries of polygons intersect, the vertices
- and line segments of the intersection match exactly.</description></item>
- </list>
- <para/>
- A valid coverage may contain holes(regions of no coverage).
- Sometimes it is desired to detect whether coverages contain
- narrow gaps between polygons
- (which can be a result of digitizing error or misaligned data).
- This class can detect narrow gaps,
- by specifying a maximum gap width using {@link #setGapWidth(double)}.
- Note that this also identifies narrow gaps separating disjoint coverage regions,
- and narrow gores.
- In some situations it may also produce false positives
- (linework identified as part of a gap which is actually wider).
- See <see cref="T:NetTopologySuite.Coverage.CoverageGapFinder"/> for an alternate way to detect gaps which may be more accurate.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Coverage.CoverageValidator.IsValid(NetTopologySuite.Geometries.Geometry[])">
- <summary>
- Tests whether a polygonal coverage is valid.
- </summary>
- <param name="coverage">An array of polygons forming a coverage</param>
- <returns><c>true</c> if the coverage is valid</returns>
- <remarks>Named <c>isValid</c> in JTS</remarks>
- </member>
- <member name="M:NetTopologySuite.Coverage.CoverageValidator.HasInvalidResult(NetTopologySuite.Geometries.Geometry[])">
- <summary>
- Tests if some element of an array of geometries is a coverage invalidity
- indicator.
- </summary>
- <param name="validateResult">An array produced by a polygonal coverage validation</param>
- <returns><c>true</c> if the result has at least one invalid indicator</returns>
- </member>
- <member name="M:NetTopologySuite.Coverage.CoverageValidator.Validate(NetTopologySuite.Geometries.Geometry[])">
- <summary>
- Validates that a set of polygons forms a valid polygonal coverage,
- and returns linear geometries indicating the locations of invalidities, if any.
- </summary>
- <param name="coverage">An array of polygons forming a coverage</param>
- <returns>An array of linear geometries indicating coverage errors, or nulls</returns>
- </member>
- <member name="M:NetTopologySuite.Coverage.CoverageValidator.Validate(NetTopologySuite.Geometries.Geometry[],System.Double)">
- <summary>
- Validates that a set of polygons forms a valid polygonal coverage
- and contains no gaps narrower than a specified width.
- The result is an array of linear geometries indicating the locations of invalidities,
- or null if the polygon is coverage-valid.
- </summary>
- <param name="coverage">An array of polygons forming a coverage</param>
- <param name="gapWidth">The maximum width of invalid gaps</param>
- <returns>An array of linear geometries indicating coverage errors, or nulls</returns>
- </member>
- <member name="M:NetTopologySuite.Coverage.CoverageValidator.#ctor(NetTopologySuite.Geometries.Geometry[])">
- <summary>
- Creates a new coverage validator
- </summary>
- <param name="coverage">An array of polygons representing a polygonal coverage</param>
- </member>
- <member name="P:NetTopologySuite.Coverage.CoverageValidator.GapWidth">
- <summary>
- Gets or sets a value indicating the maximum gap, if narrow gaps are to be detected.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Coverage.CoverageValidator.Validate">
- <summary>
- Validates the polygonal coverage.
- The result is an array of the same size as the input coverage.
- Each array entry is either null, or if the polygon does not form a valid coverage,
- a linear geometry containing the boundary segments
- which intersect polygon interiors, which are mismatched,
- or form gaps (if checked).
- </summary>
- <returns>An array of nulls or linear geometries</returns>
- </member>
- <member name="T:NetTopologySuite.Coverage.InvalidSegmentDetector">
- <summary>
- Detects invalid coverage topology where ring segments interact.
- The inputs to <see cref="M:NetTopologySuite.Coverage.InvalidSegmentDetector.ProcessIntersections(NetTopologySuite.Noding.ISegmentString,System.Int32,NetTopologySuite.Noding.ISegmentString,System.Int32)"/>
- must be <see cref="T:NetTopologySuite.Coverage.CoverageRing"/>s.
- If an invalid situation is detected the input target segment is
- marked invalid using <see cref="M:NetTopologySuite.Coverage.CoverageRing.MarkInvalid(System.Int32)"/>.
- <para/>
- This class assumes it is used with <see cref="T:NetTopologySuite.Noding.ISegmentSetMutualIntersector"/>,
- so that segments in the same ring are not evaluated.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Coverage.InvalidSegmentDetector.ProcessIntersections(NetTopologySuite.Noding.ISegmentString,System.Int32,NetTopologySuite.Noding.ISegmentString,System.Int32)">
- <summary>
- Process interacting segments.
- The input order is important.
- The adjacent segment is first, the target is second.
- The inputs must be <see cref="T:NetTopologySuite.Coverage.CoverageRing"/>s.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Coverage.InvalidSegmentDetector.IsCollinearOrInterior(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Coverage.CoverageRing,System.Int32)">
- <summary>
- Checks if the segments are collinear, or if the target segment
- intersects the interior of the adjacent ring.
- Segments which are collinear must be non-equal and hence invalid,
- since matching segments have already been marked as valid and
- are not passed to this code.
- </summary>
- </member>
- <member name="T:NetTopologySuite.Coverage.TPVWSimplifier">
- <summary>
- Computes a Topology-Preserving Visvalingnam-Whyatt simplification
- of a set of input lines.
- The simplified lines will contain no more intersections than are present
- in the original input.
- Line and ring endpoints are preserved, except for rings
- which are flagged as "free".
- Rings which are smaller than the tolerance area
- may be removed entirely, as long as they are flagged as removable.
- <para/>
- The amount of simplification is determined by a tolerance value,
- which is a non-zero quantity.
- It is the square root of the area tolerance used
- in the Visvalingam-Whyatt algorithm.
- This equates roughly to the maximum
- distance by which a simplfied line can change from the original.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Coverage.TPVWSimplifier.Edge.#ctor(NetTopologySuite.Geometries.Coordinate[],System.Double,System.Boolean,System.Boolean)">
- <summary>
- Creates a new edge.
- The endpoints of the edge are preserved during simplification,
- unless it is a ring and the <paramref name="isFreeRing"/> flag is set.
- </summary>
- <param name="pts"></param>
- <param name="distanceTolerance">The simplification tolerance</param>
- <param name="isFreeRing">A flag indiciating if a ring endpoint can be removed</param>
- <param name="isRemovable"></param>
- </member>
- <member name="M:NetTopologySuite.Coverage.TPVWSimplifier.Edge.HasIntersectingVertex(NetTopologySuite.Coverage.Corner,NetTopologySuite.Geometries.Envelope,NetTopologySuite.Coverage.TPVWSimplifier.Edge)">
- <summary>
- Tests if any vertices in a line intersect the corner triangle.
- Uses the vertex spatial index for efficiency.
- </summary>
- <param name="corner">The corner vertices</param>
- <param name="cornerEnv">The envelope of the corner</param>
- <param name="edge">The edge to test</param>
- <returns><c>true</c> if there is an intersecting vertex</returns>
- </member>
- <member name="M:NetTopologySuite.Coverage.TPVWSimplifier.Edge.RemoveCorner(NetTopologySuite.Coverage.Corner,System.Double,NetTopologySuite.Coverage.CornerArea,NetTopologySuite.Utilities.PriorityQueue{NetTopologySuite.Coverage.Corner})">
- <summary>
- Removes a corner by removing the apex vertex from the ring.
- Two new corners are created with apexes
- at the other vertices of the corner
- (if they are non-convex and thus removable).
- </summary>
- <param name="corner">The corner to remove</param>
- <param name="areaTolerance"></param>
- <param name="cornerArea"></param>
- <param name="cornerQueue">The corner queue</param>
- </member>
- <member name="T:NetTopologySuite.Coverage.VertexRingCounter">
- <summary>
- Counts the number of rings containing each vertex.
- Vertices which are contained by 3 or more rings are nodes in the coverage topology
- (although not the only ones -
- boundary vertices with 3 or more incident edges are also nodes).
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="T:NetTopologySuite.DataStructures.Interval">
- <summary>
- Structure for a closed 1-dimensional ℝ-interval
- </summary>
- </member>
- <member name="F:NetTopologySuite.DataStructures.Interval.Min">
- <summary>
- The lower bound of the interval
- </summary>
- </member>
- <member name="F:NetTopologySuite.DataStructures.Interval.Max">
- <summary>
- The upper bound of the interval
- </summary>
- </member>
- <member name="M:NetTopologySuite.DataStructures.Interval.#ctor(System.Double)">
- <summary>
- Initializes this structure with <see cref="F:NetTopologySuite.DataStructures.Interval.Min"/> = <see cref="F:NetTopologySuite.DataStructures.Interval.Max"/> = <paramref name="value"/>
- </summary>
- <param name="value">The value for min and max</param>
- </member>
- <member name="M:NetTopologySuite.DataStructures.Interval.#ctor(System.Double,System.Double)">
- <summary>
- Initializes this structure with <paramref name="min"/> and <paramref name="max"/> values
- </summary>
- <param name="min">The minimum interval values</param>
- <param name="max">The maximum interval values</param>
- </member>
- <member name="M:NetTopologySuite.DataStructures.Interval.ExpandedByValue(System.Double)">
- <summary>
- Method to expand
- </summary>
- <param name="p"></param>
- <returns></returns>
- </member>
- <member name="P:NetTopologySuite.DataStructures.Interval.IsEmpty">
- <summary>
- Gets a value if this interval is empty/undefined
- </summary>
- </member>
- <member name="M:NetTopologySuite.DataStructures.Interval.GetHashCode">
- <inheritdoc cref="M:System.Object.GetHashCode" />
- </member>
- <member name="M:NetTopologySuite.DataStructures.Interval.Equals(System.Object)">
- <inheritdoc cref="M:System.Object.Equals(System.Object)"/>
- </member>
- <member name="M:NetTopologySuite.DataStructures.Interval.Equals(NetTopologySuite.DataStructures.Interval)">
- <inheritdoc cref="M:System.IEquatable`1.Equals(`0)" />
- </member>
- <member name="M:NetTopologySuite.DataStructures.Interval.ToString">
- <inheritdoc/>
- </member>
- <member name="P:NetTopologySuite.DataStructures.Interval.Width">
- <summary>
- Gets a value indicating the width of the <see cref="T:NetTopologySuite.DataStructures.Interval"/>
- </summary>
- </member>
- <member name="P:NetTopologySuite.DataStructures.Interval.Centre">
- <summary>
- Gets a value indicating the centre of the interval (Min + Width * 0.5)
- </summary>
- </member>
- <member name="M:NetTopologySuite.DataStructures.Interval.ExpandedByInterval(NetTopologySuite.DataStructures.Interval)">
- <summary>
- Function to compute an interval that contains this and <paramref name="interval"/> <see cref="T:NetTopologySuite.DataStructures.Interval"/>
- </summary>
- <param name="interval">The interval</param>
- <returns>An interval</returns>
- </member>
- <member name="M:NetTopologySuite.DataStructures.Interval.Overlaps(NetTopologySuite.DataStructures.Interval)">
- <summary>
- Function to test if this <see cref="T:NetTopologySuite.DataStructures.Interval"/> overlaps <paramref name="interval"/>.
- </summary>
- <param name="interval">The interval to test</param>
- <returns><c>true</c> if this interval overlaps <paramref name="interval"/></returns>
- </member>
- <member name="M:NetTopologySuite.DataStructures.Interval.Overlaps(System.Double,System.Double)">
- <summary>
- Function to test if this <see cref="T:NetTopologySuite.DataStructures.Interval"/> overlaps the interval ℝ[<paramref name="min"/>, <paramref name="max"/>].
- </summary>
- <param name="min">The minimum value of the interval</param>
- <param name="max">The maximum value of the interval</param>
- <returns><c>true</c> if this interval overlaps the interval ℝ[<paramref name="min"/>, <paramref name="max"/>]</returns>
- </member>
- <member name="M:NetTopologySuite.DataStructures.Interval.Contains(NetTopologySuite.DataStructures.Interval)">
- <summary>
- Function to test if this <see cref="T:NetTopologySuite.DataStructures.Interval"/> contains <paramref name="interval"/>.
- </summary>
- <remarks>This is more rigid than <see cref="M:NetTopologySuite.DataStructures.Interval.Overlaps(NetTopologySuite.DataStructures.Interval)"/></remarks>
- <param name="interval">The interval to test</param>
- <returns><c>true</c> if this interval contains <paramref name="interval"/></returns>
- </member>
- <member name="M:NetTopologySuite.DataStructures.Interval.Contains(System.Double,System.Double)">
- <summary>
- Function to test if this <see cref="T:NetTopologySuite.DataStructures.Interval"/> contains the interval ℝ[<paramref name="min"/>, <paramref name="max"/>].
- </summary>
- <remarks>This is more rigid than <see cref="M:NetTopologySuite.DataStructures.Interval.Overlaps(System.Double,System.Double)"/></remarks>
- <param name="min">The minimum value of the interval</param>
- <param name="max">The maximum value of the interval</param>
- <returns><c>true</c> if this interval contains the interval ℝ[<paramref name="min"/>, <paramref name="max"/>]</returns>
- </member>
- <member name="M:NetTopologySuite.DataStructures.Interval.Contains(System.Double)">
- <summary>
- Function to test if this <see cref="T:NetTopologySuite.DataStructures.Interval"/> contains the value <paramref name="p"/>.
- </summary>
- <param name="p">The value to test</param>
- <returns><c>true</c> if this interval contains the value <paramref name="p"/></returns>
- </member>
- <member name="M:NetTopologySuite.DataStructures.Interval.Intersects(NetTopologySuite.DataStructures.Interval)">
- <summary>
- Function to test if this <see cref="T:NetTopologySuite.DataStructures.Interval"/> intersects the interval <paramref name="other"/>.
- </summary>
- <param name="other"></param>
- <returns></returns>
- <returns><c>true</c> if this interval intersects <paramref name="other"/></returns>
- </member>
- <member name="M:NetTopologySuite.DataStructures.Interval.Intersects(System.Double,System.Double)">
- <summary>
- Function to test if this <see cref="T:NetTopologySuite.DataStructures.Interval"/> intersects the interval ℝ[<paramref name="min"/>, <paramref name="max"/>].
- </summary>
- <param name="min">The minimum value of the interval</param>
- <param name="max">The maximum value of the interval</param>
- <returns><c>true</c> if this interval intersects the interval ℝ[<paramref name="min"/>, <paramref name="max"/>].</returns>
- </member>
- <member name="M:NetTopologySuite.DataStructures.Interval.Create">
- <summary>
- Creates an empty or uninitialized Interval
- </summary>
- <returns>An empty or uninitialized <see cref="T:NetTopologySuite.DataStructures.Interval"/></returns>
- </member>
- <member name="M:NetTopologySuite.DataStructures.Interval.Create(System.Double)">
- <summary>
- Creates an interval with the range ℝ[<paramref name="value"/>,<paramref name="value"/>]
- </summary>
- <param name="value">The value</param>
- <returns>An <see cref="T:NetTopologySuite.DataStructures.Interval"/></returns>
- </member>
- <member name="M:NetTopologySuite.DataStructures.Interval.Create(System.Double,System.Double)">
- <summary>
- Creates an interval with the range ℝ[<paramref name="val1"/>,<paramref name="val2"/>]. <br/>
- If necessary, val1 and val2 are exchanged.
- </summary>
- <param name="val1">The minimum value</param>
- <param name="val2">The maximum value</param>
- <returns>An <see cref="T:NetTopologySuite.DataStructures.Interval"/></returns>
- </member>
- <member name="M:NetTopologySuite.DataStructures.Interval.Create(NetTopologySuite.DataStructures.Interval)">
- <summary>
- Creates an interval with the range ℝ[<see cref="F:NetTopologySuite.DataStructures.Interval.Min"/>,<see cref="F:NetTopologySuite.DataStructures.Interval.Max"/>].
- </summary>
- <param name="interval">The template interval</param>
- <returns>An <see cref="T:NetTopologySuite.DataStructures.Interval"/></returns>
- </member>
- <member name="M:NetTopologySuite.DataStructures.Interval.op_Equality(NetTopologySuite.DataStructures.Interval,NetTopologySuite.DataStructures.Interval)">
- <summary>
- Equality operator for <see cref="T:NetTopologySuite.DataStructures.Interval"/>s
- </summary>
- <param name="lhs">The left-hand-side <see cref="T:NetTopologySuite.DataStructures.Interval"/></param>
- <param name="rhs">The right-hand-side <see cref="T:NetTopologySuite.DataStructures.Interval"/></param>
- <returns><c>true</c> if the <see cref="T:NetTopologySuite.DataStructures.Interval"/>s are equal.</returns>
- </member>
- <member name="M:NetTopologySuite.DataStructures.Interval.op_Inequality(NetTopologySuite.DataStructures.Interval,NetTopologySuite.DataStructures.Interval)">
- <summary>
- Inequality operator for <see cref="T:NetTopologySuite.DataStructures.Interval"/>s
- </summary>
- <param name="lhs">The left-hand-side <see cref="T:NetTopologySuite.DataStructures.Interval"/></param>
- <param name="rhs">The right-hand-side <see cref="T:NetTopologySuite.DataStructures.Interval"/></param>
- <returns><c>true</c> if the <see cref="T:NetTopologySuite.DataStructures.Interval"/>s are <b>not</b> equal.</returns>
- </member>
- <member name="T:NetTopologySuite.Densify.Densifier">
- <summary>
- Densifies a geometry by inserting extra vertices along the line segments
- contained in the geometry.
- All segments in the created densified geometry will be <b>no longer</b>
- than the given distance tolerance
- (that is, all segments in the output will have length less than or equal to
- the distance tolerance).
- </summary>
- <remarks>
- Densified polygonal geometries are guaranteed to be topologically correct.
- <para/>
- The coordinates created during densification respect the input geometry's <see cref="T:NetTopologySuite.Geometries.PrecisionModel"/>.
- <para/>
- By default polygonal results are processed to ensure they are valid.
- This processing is costly, and it is very rare for results to be invalid.
- Validation processing can be disabled by setting the <see cref="P:NetTopologySuite.Densify.Densifier.Validate"/> property to <c>false</c>.
- <para/>
- <b>Note:</b> At some future point this class will offer a variety of densification strategies.
- </remarks>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Densify.Densifier.Densify(NetTopologySuite.Geometries.Geometry,System.Double)">
- <summary>
- Densifies a geometry using a given distance tolerance, and respecting the input geometry's <see cref="T:NetTopologySuite.Geometries.PrecisionModel"/>.
- </summary>
- <param name="geom">The geometry densify</param>
- <param name="distanceTolerance">The distance tolerance (<see cref="P:NetTopologySuite.Densify.Densifier.DistanceTolerance"/>)</param>
- <returns>The densified geometry</returns>
- </member>
- <member name="M:NetTopologySuite.Densify.Densifier.DensifyPoints(NetTopologySuite.Geometries.Coordinate[],System.Double,NetTopologySuite.Geometries.PrecisionModel)">
- <summary>
- Densifies a list of coordinates.
- </summary>
- <param name="pts">The coordinate list</param>
- <param name="distanceTolerance">The densify tolerance</param>
- <param name="precModel">The precision model to apply on the new coordinates</param>
- <returns>The densified coordinate sequence</returns>
- </member>
- <member name="F:NetTopologySuite.Densify.Densifier._validate">
- <summary>
- Indicates whether areas should be topologically validated.
- <br/><b>Note:</b> JTS name <c>_isValidated</c>
- </summary>
- </member>
- <member name="M:NetTopologySuite.Densify.Densifier.#ctor(NetTopologySuite.Geometries.Geometry)">
- <summary>Creates a new densifier instance</summary>
- <param name="inputGeom">The geometry to densify</param>
- </member>
- <member name="P:NetTopologySuite.Densify.Densifier.DistanceTolerance">
- <summary>
- Gets or sets the distance tolerance for the densification. All line segments
- in the densified geometry will be no longer than the distance tolerance.
- The distance tolerance must be positive.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Densify.Densifier.Validate">
- <summary>
- Gets or sets whether polygonal results are processed to ensure they are valid.
- </summary>
- <returns><c>true</c> if polygonal input is validated.</returns>
- </member>
- <member name="M:NetTopologySuite.Densify.Densifier.GetResultGeometry">
- <summary>
- Gets the densified geometry.
- </summary>
- <returns>The densified geometry</returns>
- </member>
- <member name="F:NetTopologySuite.Densify.Densifier.DensifyTransformer._validate">
- <summary>
- Indicates whether areas should be topologically validated.
- <br/><b>Note:</b> JTS name <c>_isValidated</c>
- </summary>
- </member>
- <member name="M:NetTopologySuite.Densify.Densifier.DensifyTransformer.CreateValidArea(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Creates a valid area geometry from one that possibly has bad topology
- (i.e. self-intersections). Since buffer can handle invalid topology, but
- always returns valid geometry, constructing a 0-width buffer "corrects"
- the topology. Note this only works for area geometries, since buffer
- always returns areas. This also may return empty geometries, if the input
- has no actual area.
- </summary>
- <param name="roughAreaGeom">An area geometry possibly containing self-intersections</param>
- <returns>A valid area geometry</returns>
- </member>
- <member name="T:NetTopologySuite.Dissolve.DissolveEdgeGraph">
- <summary>
- A graph containing <see cref="T:NetTopologySuite.Dissolve.DissolveHalfEdge"/>s.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Dissolve.DissolveEdgeGraph.CreateEdge(NetTopologySuite.Geometries.Coordinate)">
- <inheritdoc/>
- </member>
- <member name="T:NetTopologySuite.Dissolve.DissolveHalfEdge">
- <summary>
- A HalfEdge which carries information
- required to support <see cref="T:NetTopologySuite.Dissolve.LineDissolver"/>.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Dissolve.DissolveHalfEdge.#ctor(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Creates an instance of a <c>DissolveHalfEdge</c> using the provided origin.
- </summary>
- <param name="orig">The origin</param>
- </member>
- <member name="P:NetTopologySuite.Dissolve.DissolveHalfEdge.IsStart">
- <summary>
- Tests whether this edge is the starting segment
- in a LineString being dissolved.
- </summary>
- <returns><c>true</c> if this edge is a start segment</returns>
- </member>
- <member name="M:NetTopologySuite.Dissolve.DissolveHalfEdge.SetStart">
- <summary>
- Sets this edge to be the start segment of an input LineString.
- </summary>
- </member>
- <member name="T:NetTopologySuite.Dissolve.LineDissolver">
- <summary>
- Dissolves the linear components
- from a collection of <see cref="T:NetTopologySuite.Geometries.Geometry"/>s.
- into a set of maximal-length <see cref="T:NetTopologySuite.Geometries.LineString"/>s
- in which every unique segment appears once only.
- The output linestrings run between node vertices
- of the input, which are vertices which have
- either degree 1, or degree 3 or greater.
- </summary>
- <remarks>
- Use cases for dissolving linear components
- include generalization
- (in particular, simplifying polygonal coverages),
- and visualization
- (in particular, avoiding symbology conflicts when
- depicting shared polygon boundaries).
- </remarks>
- <remarks>
- This class does NOT node the input lines.
- If there are line segments crossing in the input,
- they will still cross in the output.
- </remarks>
- </member>
- <member name="M:NetTopologySuite.Dissolve.LineDissolver.Dissolve(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Dissolves the linear components in a geometry.
- </summary>
- <param name="g">the geometry to dissolve</param>
- <returns>the dissolved lines</returns>
- </member>
- <member name="M:NetTopologySuite.Dissolve.LineDissolver.#ctor">
- <summary>
- Creates an instance of this class
- </summary>
- </member>
- <member name="M:NetTopologySuite.Dissolve.LineDissolver.Add(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Adds a <see cref="T:NetTopologySuite.Geometries.Geometry"/> to be dissolved.
- Any number of geometries may be added by calling this method multiple times.
- Any type of Geometry may be added. The constituent linework will be
- extracted to be dissolved.
- </summary>
- <param name="geometry">geometry to be line-merged</param>
- </member>
- <member name="M:NetTopologySuite.Dissolve.LineDissolver.Add(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})">
- <summary>
- Adds a collection of Geometries to be processed. May be called multiple times.
- Any dimension of Geometry may be added; the constituent linework will be
- extracted.
- </summary>
- <param name="geometries">the geometries to be line-merged</param>
- </member>
- <member name="M:NetTopologySuite.Dissolve.LineDissolver.GetResult">
- <summary>
- Gets the dissolved result as a <see cref="T:NetTopologySuite.Geometries.MultiLineString"/>.
- </summary>
- <returns>the dissolved lines</returns>
- </member>
- <member name="M:NetTopologySuite.Dissolve.LineDissolver.BuildLines">
- <summary>
- For each edge in stack
- (which must originate at a node)
- extracts the line it initiates.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Dissolve.LineDissolver.UpdateRingStartEdge(NetTopologySuite.Dissolve.DissolveHalfEdge)">
- <summary>
- Updates the tracked ringStartEdge
- if the given edge has a lower origin
- (using the standard <see cref="T:NetTopologySuite.Geometries.Coordinate"/> ordering).
- </summary>
- <remarks>
- Identifying the lowest starting node meets two goals:
- * It ensures that isolated input rings are created using the original node and orientation.
- * For isolated rings formed from multiple input linestrings,
- it provides a canonical node and orientation for the output
- (rather than essentially random, and thus hard to test).
- </remarks>
- <param name="e"></param>
- </member>
- <member name="M:NetTopologySuite.Dissolve.LineDissolver.BuildLine(NetTopologySuite.EdgeGraph.HalfEdge)">
- <summary>
- Builds a line starting from the given edge.
- The start edge origin is a node (valence = 1 or >= 3),
- unless it is part of a pure ring.
- </summary>
- <remarks>
- A pure ring has no other incident lines.
- In this case the start edge may occur anywhere on the ring.
- </remarks>
- <remarks>
- The line is built up to the next node encountered,
- or until the start edge is re-encountered
- (which happens if the edges form a ring).
- </remarks>
- <param name="eStart"></param>
- </member>
- <member name="M:NetTopologySuite.Dissolve.LineDissolver.StackEdges(NetTopologySuite.EdgeGraph.HalfEdge)">
- <summary>
- Adds edges around this node to the stack.
- </summary>
- <param name="node"></param>
- </member>
- <member name="T:NetTopologySuite.EdgeGraph.EdgeGraph">
- <summary>
- A graph comprised of <see cref="T:NetTopologySuite.EdgeGraph.HalfEdge"/>s.
- It supports tracking the vertices in the graph
- via edges incident on them,
- to allow efficient lookup of edges and vertices.
- </summary>
- <remarks>
- This class may be subclassed to use a
- different subclass of HalfEdge,
- by overriding <see cref="M:NetTopologySuite.EdgeGraph.EdgeGraph.CreateEdge(NetTopologySuite.Geometries.Coordinate)"/>.
- If additional logic is required to initialize
- edges then <see cref="M:NetTopologySuite.EdgeGraph.EdgeGraph.AddEdge(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)"/>
- can be overridden as well.
- </remarks>
- </member>
- <member name="M:NetTopologySuite.EdgeGraph.EdgeGraph.CreateEdge(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Creates a single HalfEdge.
- Override to use a different HalfEdge subclass.
- </summary>
- <param name="orig">the origin location</param>
- <returns>a new <see cref="T:NetTopologySuite.EdgeGraph.HalfEdge"/> with the given origin</returns>
- </member>
- <member name="M:NetTopologySuite.EdgeGraph.EdgeGraph.Create(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Creates a <see cref="T:NetTopologySuite.EdgeGraph.HalfEdge"/> pair, using the <c>HalfEdge</c> type of the graph subclass
- </summary>
- <param name="p0"></param>
- <param name="p1"></param>
- <returns>A <see cref="T:NetTopologySuite.EdgeGraph.HalfEdge"/> pair</returns>
- </member>
- <member name="M:NetTopologySuite.EdgeGraph.EdgeGraph.AddEdge(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Adds an edge between the coordinates orig and dest
- to this graph.
- </summary>
- <remarks>
- Only valid edges can be added (in particular, zero-length segments cannot be added)
- </remarks>
- <param name="orig">the edge origin location</param>
- <param name="dest">the edge destination location</param>
- <returns>The created edge</returns>
- <returns><c>null</c> if the edge was invalid and not added</returns>
- <seealso cref="M:NetTopologySuite.EdgeGraph.EdgeGraph.IsValidEdge(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)"/>
- </member>
- <member name="M:NetTopologySuite.EdgeGraph.EdgeGraph.IsValidEdge(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Test if an the coordinates for an edge form a valid edge (with non-zero length)
- </summary>
- <param name="orig">The start coordinate</param>
- <param name="dest">The end coordinate</param>
- <returns><c>true</c> of the edge formed is valid</returns>
- </member>
- <member name="M:NetTopologySuite.EdgeGraph.EdgeGraph.Insert(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.EdgeGraph.HalfEdge)">
- <summary>
- Inserts an edge not already present into the graph.
- </summary>
- <param name="orig">the edge origin location</param>
- <param name="dest">the edge destination location</param>
- <param name="eAdj">an existing edge with same orig (if any)</param>
- <returns>the created edge</returns>
- </member>
- <member name="M:NetTopologySuite.EdgeGraph.EdgeGraph.GetVertexEdges">
- <summary>
- Gets all <see cref="T:NetTopologySuite.EdgeGraph.HalfEdge"/>s in the graph.
- Both edges of edge pairs are included.
- </summary>
- <returns>An enumeration of the graph edges</returns>
- </member>
- <member name="M:NetTopologySuite.EdgeGraph.EdgeGraph.FindEdge(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Finds an edge in this graph with the given origin
- and destination, if one exists.
- </summary>
- <param name="orig">the origin location</param>
- <param name="dest">the destination location</param>
- <returns>an edge with the given orig and dest, or null if none exists</returns>
- </member>
- <member name="T:NetTopologySuite.EdgeGraph.EdgeGraphBuilder">
- <summary>
- Builds an edge graph from geometries containing edges.
- </summary>
- </member>
- <member name="M:NetTopologySuite.EdgeGraph.EdgeGraphBuilder.Build(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})">
- <summary>
- Factory method to build an <c>EdgeGraph</c>.
- </summary>
- <param name="geoms">The geometries to make up the <c>EdgeGraph</c></param>
- <returns>An <c>EdgeGraph</c> of the <paramref name="geoms"/></returns>
- </member>
- <member name="M:NetTopologySuite.EdgeGraph.EdgeGraphBuilder.#ctor">
- <summary>
- Creates a new <c>EdgeGraphBuilder</c>.
- </summary>
- </member>
- <member name="M:NetTopologySuite.EdgeGraph.EdgeGraphBuilder.GetGraph">
- <summary>
- Gets the created <c>EdgeGraph</c>
- </summary>
- <returns>The created <c>EdgeGraph</c></returns>
- </member>
- <member name="M:NetTopologySuite.EdgeGraph.EdgeGraphBuilder.Add(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Adds the edges of a Geometry to the graph.
- May be called multiple times.
- Any dimension of Geometry may be added; the constituent edges are extracted.
- </summary>
- <param name="geometry">geometry to be added</param>
- </member>
- <member name="M:NetTopologySuite.EdgeGraph.EdgeGraphBuilder.Add(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})">
- <summary>
- Adds the edges in a collection of <see cref="T:NetTopologySuite.Geometries.Geometry"/>s to the graph.
- May be called multiple times.
- Any dimension of <see cref="T:NetTopologySuite.Geometries.Geometry"/> may be added.
- </summary>
- <param name="geometries">the geometries to be added</param>
- </member>
- <member name="T:NetTopologySuite.EdgeGraph.HalfEdge">
- <summary>
- Represents a directed component of an edge in an <see cref="T:NetTopologySuite.EdgeGraph.EdgeGraph"/>.
- HalfEdges link vertices whose locations are defined by <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s.
- HalfEdges start at an <b>origin</b> vertex,
- and terminate at a <b>destination</b> vertex.
- HalfEdges always occur in symmetric pairs, with the <see cref="P:NetTopologySuite.EdgeGraph.HalfEdge.Sym"/> method
- giving access to the oppositely-oriented component.
- HalfEdges and the methods on them form an edge algebra,
- which can be used to traverse and query the topology
- of the graph formed by the edges.
- <para/>
- To support graphs where the edges are sequences of coordinates
- each edge may also have a direction point supplied.
- This is used to determine the ordering
- of the edges around the origin.
- HalfEdges with the same origin are ordered
- so that the ring of edges formed by them is oriented CCW.
- <para/>
- By design HalfEdges carry minimal information
- about the actual usage of the graph they represent.
- They can be subclassed to carry more information if required.
- <para/>
- HalfEdges form a complete and consistent data structure by themselves,
- but an <see cref="T:NetTopologySuite.EdgeGraph.EdgeGraph"/> is useful to allow retrieving edges
- by vertex and edge location, as well as ensuring
- edges are created and linked appropriately.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.EdgeGraph.HalfEdge.Create(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Creates a HalfEdge pair representing an edge
- between two vertices located at coordinates p0 and p1.
- </summary>
- <param name="p0">a vertex coordinate</param>
- <param name="p1">a vertex coordinate</param>
- <returns>the HalfEdge with origin at p0</returns>
- </member>
- <member name="M:NetTopologySuite.EdgeGraph.HalfEdge.Init(NetTopologySuite.EdgeGraph.HalfEdge,NetTopologySuite.EdgeGraph.HalfEdge)">
- <summary>
- Initialize a symmetric pair of halfedges.
- Intended for use by <see cref="T:NetTopologySuite.EdgeGraph.EdgeGraph" />
- subclasses.
- <para/>
- The edges are initialized to have each other
- as the <see cref="P:NetTopologySuite.EdgeGraph.HalfEdge.Sym"/> edge, and to have
- <see cref="P:NetTopologySuite.EdgeGraph.HalfEdge.Next"/> pointers which point to edge other.
- This effectively creates a graph containing a single edge.
- </summary>
- <param name="e0">A halfedge</param>
- <param name="e1">A symmetric halfedge</param>
- <returns>The initialized edge e0</returns>
- </member>
- <member name="M:NetTopologySuite.EdgeGraph.HalfEdge.#ctor(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Creates an edge originating from a given coordinate.
- </summary>
- <param name="orig">the origin coordinate</param>
- </member>
- <member name="M:NetTopologySuite.EdgeGraph.HalfEdge.Link(NetTopologySuite.EdgeGraph.HalfEdge)">
- <summary>
- Links this edge with its sym (opposite) edge.
- This must be done for each pair of edges created.
- </summary>
- <param name="sym">The sym edge to link.</param>
- </member>
- <member name="M:NetTopologySuite.EdgeGraph.HalfEdge.Init(NetTopologySuite.EdgeGraph.HalfEdge)">
- <summary>
- Initializes this edge with <paramref name="e"/> as <see cref="P:NetTopologySuite.EdgeGraph.HalfEdge.Sym"/> edge.
- </summary>
- <param name="e">A symmetric half edge.</param>
- </member>
- <member name="P:NetTopologySuite.EdgeGraph.HalfEdge.Orig">
- <summary>
- Gets the origin coordinate of this edge.
- </summary>
- </member>
- <member name="P:NetTopologySuite.EdgeGraph.HalfEdge.Dest">
- <summary>
- Gets the destination coordinate of this edge.
- </summary>
- </member>
- <member name="P:NetTopologySuite.EdgeGraph.HalfEdge.DirectionX">
- <summary>
- Gets a value indicating the X component of the direction vector.
- </summary>
- <returns>The X component of the direction vector</returns>
- </member>
- <member name="P:NetTopologySuite.EdgeGraph.HalfEdge.DirectionY">
- <summary>
- Gets a value indicating the Y component of the direction vector.
- </summary>
- <returns>The Y component of the direction vector</returns>
- </member>
- <member name="P:NetTopologySuite.EdgeGraph.HalfEdge.DirectionPt">
- <summary>
- Gets a value indicating the direction point of this edge.
- In the base case this is the dest coordinate
- of the edge.
- <para/>
- Subclasses may override to
- allow a HalfEdge to represent an edge with more than two coordinates.
- </summary>
- <returns>The direction point for the edge</returns>
- </member>
- <member name="P:NetTopologySuite.EdgeGraph.HalfEdge.Sym">
- <summary>
- Gets or sets the symmetric (opposite) edge of this edge.
- </summary>
- </member>
- <member name="P:NetTopologySuite.EdgeGraph.HalfEdge.Next">
- <summary>
- Gets the next edge CCW around the destination vertex of this edge.
- If the destination vertex has degree <c>1</c> then this is the <c>Sym</c> edge.
- </summary>
- <returns>The next outgoing edge CCW around the destination vertex</returns>
- </member>
- <member name="P:NetTopologySuite.EdgeGraph.HalfEdge.Prev">
- <summary>
- Gets the previous edge CW around the origin
- vertex of this edge,
- with that vertex being its destination.
- <para/>
- It is always true that <c>e.Next.Prev == e</c>
- <para/>
- Note that this requires a scan of the origin edges,
- so may not be efficient for some uses.
- </summary>
- <returns>The previous edge CW around the origin vertex</returns>
- </member>
- <member name="P:NetTopologySuite.EdgeGraph.HalfEdge.ONext">
- <summary>
- Gets the next edge CCW around the origin of this edge,
- with the same origin.<br/>
- If the origin vertex has degree <c>1</c> then this is the edge itself.
- <para/>
- <c>e.ONext</c> is equal to <c>e.Sym.Next()</c>
- </summary>
- <returns>The next edge around the origin</returns>
- </member>
- <member name="M:NetTopologySuite.EdgeGraph.HalfEdge.Find(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Finds the edge starting at the origin of this edge
- with the given dest vertex, if any.
- </summary>
- <param name="dest">the dest vertex to search for</param>
- <returns>
- the edge with the required dest vertex,
- if it exists, or null
- </returns>
- </member>
- <member name="M:NetTopologySuite.EdgeGraph.HalfEdge.Equals(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Tests whether this edge has the given orig and dest vertices.
- </summary>
- <param name="p0">the origin vertex to test</param>
- <param name="p1">the destination vertex to test</param>
- <returns><c>true</c> if the vertices are equal to the ones of this edge</returns>
- </member>
- <member name="M:NetTopologySuite.EdgeGraph.HalfEdge.Insert(NetTopologySuite.EdgeGraph.HalfEdge)">
- <summary>
- Inserts an edge
- into the ring of edges around the origin vertex of this edge,
- ensuring that the edges remain ordered CCW.
- The inserted edge must have the same origin as this edge.
- </summary>
- <param name="eAdd">the edge to insert</param>
- </member>
- <member name="M:NetTopologySuite.EdgeGraph.HalfEdge.InsertionEdge(NetTopologySuite.EdgeGraph.HalfEdge)">
- <summary>
- Finds the insertion edge for a edge
- being added to this origin,
- ensuring that the star of edges
- around the origin remains fully CCW.
- </summary>
- <param name="eAdd">The edge being added</param>
- <returns>The edge to insert after</returns>
- </member>
- <member name="M:NetTopologySuite.EdgeGraph.HalfEdge.InsertAfter(NetTopologySuite.EdgeGraph.HalfEdge)">
- <summary>
- Insert an edge with the same origin after this one.
- Assumes that the inserted edge is in the correct
- position around the ring.
- </summary>
- <param name="e">the edge to insert (with same origin)</param>
- </member>
- <member name="P:NetTopologySuite.EdgeGraph.HalfEdge.IsEdgesSorted">
- <summary>
- Tests whether the edges around the origin
- are sorted correctly.
- Note that edges must be strictly increasing,
- which implies no two edges can have the same direction point.
- </summary>
- <returns><c>true</c> if the origin edges are sorted correctly
- </returns>
- </member>
- <member name="M:NetTopologySuite.EdgeGraph.HalfEdge.FindLowest">
- <summary>
- Finds the lowest edge around the origin,
- using the standard edge ordering.
- </summary>
- <returns>The lowest edge around the origin</returns>
- </member>
- <member name="M:NetTopologySuite.EdgeGraph.HalfEdge.CompareTo(NetTopologySuite.EdgeGraph.HalfEdge)">
- <summary>
- Compares edges which originate at the same vertex
- based on the angle they make at their origin vertex with the positive X-axis.
- This allows sorting edges around their origin vertex in CCW order.
- </summary>
- </member>
- <member name="M:NetTopologySuite.EdgeGraph.HalfEdge.CompareAngularDirection(NetTopologySuite.EdgeGraph.HalfEdge)">
- <summary>
- Implements the total order relation.
- The angle of edge a is greater than the angle of edge b,
- where the angle of an edge is the angle made by
- the first segment of the edge with the positive x-axis.
- When applied to a list of edges originating at the same point,
- this produces a CCW ordering of the edges around the point.
- Using the obvious algorithm of computing the angle is not robust,
- since the angle calculation is susceptible to round off error.
- </summary>
- <remarks>
- A robust algorithm is:
- 1. compare the quadrants the edge vectors lie in.
- If the quadrants are different,
- it is trivial to determine which edge has a greater angle.
- 2. If the vectors lie in the same quadrant, the
- <see cref="M:NetTopologySuite.Algorithm.Orientation.Index(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)"/> function
- can be used to determine the relative orientation of the vectors.
- </remarks>
- </member>
- <member name="P:NetTopologySuite.EdgeGraph.HalfEdge.DeltaX">
- <summary>
- The X component of the distance between the orig and dest vertices.
- </summary>
- </member>
- <member name="P:NetTopologySuite.EdgeGraph.HalfEdge.DeltaY">
- <summary>
- The Y component of the distance between the orig and dest vertices.
- </summary>
- </member>
- <member name="M:NetTopologySuite.EdgeGraph.HalfEdge.ToString">
- <summary>
- Computes a string representation of a HalfEdge.
- </summary>
- </member>
- <member name="M:NetTopologySuite.EdgeGraph.HalfEdge.ToStringNode">
- <summary>
- Provides a string representation of the edges around
- the origin node of this edge.
- </summary>
- <remarks>
- Uses the subclass representation for each edge.
- </remarks>
- <returns>A string showing the edges around the origin</returns>
- </member>
- <member name="M:NetTopologySuite.EdgeGraph.HalfEdge.Degree">
- <summary>
- Computes the degree of the origin vertex.
- The degree is the number of edges
- originating from the vertex.
- </summary>
- <returns>the degree of the origin vertex</returns>
- </member>
- <member name="M:NetTopologySuite.EdgeGraph.HalfEdge.PrevNode">
- <summary>
- Finds the first node previous to this edge, if any.
- If no such node exists (i.e. the edge is part of a ring)
- then null is returned.
- </summary>
- <returns>
- an edge originating at the node prior to this edge, if any,
- or null if no node exists
- </returns>
- </member>
- <member name="T:NetTopologySuite.EdgeGraph.MarkHalfEdge">
- <summary>
- A <see cref="T:NetTopologySuite.EdgeGraph.HalfEdge"/> which supports
- marking edges with a boolean flag.
- Useful for algorithms which perform graph traversals.
- </summary>
- </member>
- <member name="M:NetTopologySuite.EdgeGraph.MarkHalfEdge.IsMarked(NetTopologySuite.EdgeGraph.HalfEdge)">
- <summary>
- Returns a value indicating that the given edge is marked.
- </summary>
- <param name="e">An edge</param>
- <returns><c>true</c> if the edge is marked</returns>
- </member>
- <member name="M:NetTopologySuite.EdgeGraph.MarkHalfEdge.Mark(NetTopologySuite.EdgeGraph.HalfEdge)">
- <summary>
- Marks the edge.
- </summary>
- <param name="e">An edge to mark</param>
- </member>
- <member name="M:NetTopologySuite.EdgeGraph.MarkHalfEdge.SetMark(NetTopologySuite.EdgeGraph.HalfEdge,System.Boolean)">
- <summary>
- Sets the mark for the given edge to a boolean value.
- </summary>
- <param name="e">An Edge to update</param>
- <param name="isMarked">The mark value to set</param>
- </member>
- <member name="M:NetTopologySuite.EdgeGraph.MarkHalfEdge.SetMarkBoth(NetTopologySuite.EdgeGraph.HalfEdge,System.Boolean)">
- <summary>
- Sets the mark for the given edge pair to a boolean value.
- </summary>
- <param name="e">an edge of the pair to update</param>
- <param name="isMarked">the mark value to set</param>
- </member>
- <member name="M:NetTopologySuite.EdgeGraph.MarkHalfEdge.MarkBoth(NetTopologySuite.EdgeGraph.HalfEdge)">
- <summary>
- Marks the edges in a pair.
- </summary>
- <param name="e">an edge of the pair to mark</param>
- </member>
- <member name="M:NetTopologySuite.EdgeGraph.MarkHalfEdge.#ctor(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Creates a new marked edge.
- </summary>
- <param name="orig">the coordinate of the edge origin</param>
- </member>
- <member name="M:NetTopologySuite.EdgeGraph.MarkHalfEdge.Mark">
- <summary>
- Marks this edge.
- </summary>
- </member>
- <member name="P:NetTopologySuite.EdgeGraph.MarkHalfEdge.Marked">
- <summary>
- Gets or sets a value indicating if this <c>MarkHalfEdge</c> is marked
- </summary>
- </member>
- <member name="T:NetTopologySuite.Geometries.Coordinate">
- <summary>
- A lightweight class used to store coordinates on the 2-dimensional Cartesian plane.
- <para>
- The base data object is suitable for use with coordinate sequences with
- <c>dimension</c> = 2 and <c>measures</c> = 0.
- </para>
- </summary>
- <remarks>
- It is distinct from <see cref="T:NetTopologySuite.Geometries.Point"/>, which is a subclass of <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
- Unlike objects of type <see cref="T:NetTopologySuite.Geometries.Point"/> (which contain additional
- information such as an envelope, a precision model, and spatial reference
- system information), a <c>Coordinate</c> only contains ordinate values
- and properties.
- <para/>
- Implementations may optionally support Z-ordinate and M-measure values
- as appropriate for a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>. Use of <see cref="P:NetTopologySuite.Geometries.Coordinate.Z"/>
- and <see cref="P:NetTopologySuite.Geometries.Coordinate.M"/> setters or <see cref="P:NetTopologySuite.Geometries.Coordinate.this[int]" /> indexer are recommended.
- </remarks>
- </member>
- <member name="F:NetTopologySuite.Geometries.Coordinate.NullOrdinate">
- <summary>
- The value used to indicate a null or missing ordinate value.
- In particular, used for the value of ordinates for dimensions
- greater than the defined dimension of a coordinate.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.Coordinate.X">
- <summary>
- Gets or sets the X-ordinate value.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.Coordinate.Y">
- <summary>
- Gets or sets the Y-ordinate value.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.Coordinate.Z">
- <summary>
- Gets or sets the Z-ordinate value, if supported.
- If no Z value is present, returns <see cref="F:NetTopologySuite.Geometries.Coordinate.NullOrdinate"/>.
- </summary>
- <exception cref="T:System.InvalidOperationException">
- Thrown if an attempt is made to <b>set</b> the Z-ordinate value on an instance where
- the Z-ordinate value is not supported.
- </exception>
- </member>
- <member name="P:NetTopologySuite.Geometries.Coordinate.M">
- <summary>
- Gets or sets the value of the measure, if supported.
- If no measure value is present, returns <see cref="F:NetTopologySuite.Geometries.Coordinate.NullOrdinate"/>.
- </summary>
- <exception cref="T:System.InvalidOperationException">
- Thrown if an attempt is made to <b>set</b> the measure value on an instance where
- measures are not supported.
- </exception>
- </member>
- <member name="M:NetTopologySuite.Geometries.Coordinate.#ctor(System.Double,System.Double)">
- <summary>
- Constructs a <c>Coordinate</c> at (x,y).
- </summary>
- <param name="x">The X value</param>
- <param name="y">The Y value</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Coordinate.#ctor">
- <summary>
- Constructs a <c>Coordinate</c> at (0,0).
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.Coordinate.#ctor(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Constructs a <c>Coordinate</c> having the same (x,y,z) values as
- <paramref name="c"/>.
- </summary>
- <param name="c"><c>Coordinate</c> to copy.</param>
- </member>
- <member name="P:NetTopologySuite.Geometries.Coordinate.Item(NetTopologySuite.Geometries.Ordinate)">
- <summary>
- Gets or sets the value for the given ordinate.
- </summary>
- <param name="ordinate">The ordinate.</param>
- <returns>The ordinate value</returns>
- <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>
- </member>
- <member name="P:NetTopologySuite.Geometries.Coordinate.Item(System.Int32)">
- <summary>
- Gets or sets the ordinate value for the given index.
- </summary>
- <remarks>
- The base implementation supports 0 (X) and 1 (Y) as values for the index.
- </remarks>
- <param name="ordinateIndex">The ordinate index</param>
- <returns>The ordinate value</returns>
- <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="ordinateIndex"/> is not in the valid range.</exception>
- </member>
- <member name="M:NetTopologySuite.Geometries.Coordinate.op_Implicit(System.ValueTuple{System.Double,System.Double})~NetTopologySuite.Geometries.Coordinate">
- <summary>
- Implicitly cast a tuple to a new <see cref="T:NetTopologySuite.Geometries.Coordinate"/> as a copy of this instance.
- </summary>
- <param name="value"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Coordinate.Deconstruct(System.Double@,System.Double@)">
- <summary>
- Deconstructs this <see cref="T:NetTopologySuite.Geometries.Coordinate"/> into its components.
- </summary>
- <param name="x"></param>
- <param name="y"></param>
- </member>
- <member name="P:NetTopologySuite.Geometries.Coordinate.CoordinateValue">
- <summary>
- Gets/Sets <c>Coordinate</c>s (x,y,z) values.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.Coordinate.IsValid">
- <summary>Gets a value indicating if the <c>Coordinate</c>
- has valid x- and y ordinate values
- <para/>
- An ordinate value is valid if it is finite.
- </summary>
- <returns><c>true</c> if the coordinate is valid</returns>
- <see cref="M:System.Double.IsInfinity(System.Double)"/>
- <see cref="M:System.Double.IsNaN(System.Double)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Coordinate.IsFinite(System.Double)">
- <summary>
- Predicate to check if a <see cref="T:System.Double"/> value is finite.
- <para/>
- 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>
- </summary>
- <param name="value">The value to test</param>
- <returns><c>value</c></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Coordinate.Equals2D(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Returns whether the planar projections of the two <c>Coordinate</c>s are equal.
- </summary>
- <param name="other"><c>Coordinate</c> with which to do the 2D comparison.</param>
- <returns>
- <c>true</c> if the x- and y-coordinates are equal;
- the Z coordinates do not have to be equal.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Coordinate.Equals2D(NetTopologySuite.Geometries.Coordinate,System.Double)">
- <summary>
- Tests if another Coordinate has the same values for the X and Y ordinates,
- within a specified tolerance value. The Z ordinate is ignored.
- </summary>
- <param name="c">A <see cref="T:NetTopologySuite.Geometries.Coordinate"/>.</param>
- <param name="tolerance">The tolerance value to use.</param>
- <returns><c>true</c> if the X and Y ordinates are within the given tolerance.</returns>
- <remarks>The Z ordinate is ignored.</remarks>
- </member>
- <member name="M:NetTopologySuite.Geometries.Coordinate.Equals(NetTopologySuite.Geometries.Coordinate)">
- <summary>
-
- </summary>
- <param name="other"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Coordinate.CompareTo(System.Object)">
- <summary>
- Compares this object with the specified object for order.
- Since Coordinates are 2.5D, this routine ignores the z value when making the comparison.
- Returns
- -1 : this.x < other.x || ((this.x == other.x) AND (this.y < other.y))
- 0 : this.x == other.x AND this.y = other.y
- 1 : this.x > other.x || ((this.x == other.x) AND (this.y > other.y))
- </summary>
- <param name="o"><c>Coordinate</c> with which this <c>Coordinate</c> is being compared.</param>
- <returns>
- A negative integer, zero, or a positive integer as this <c>Coordinate</c>
- is less than, equal to, or greater than the specified <c>Coordinate</c>.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Coordinate.CompareTo(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Compares this object with the specified object for order.
- Since Coordinates are 2.5D, this routine ignores the z value when making the comparison.
- Returns
- -1 : this.x < other.x || ((this.x == other.x) AND (this.y < other.y))
- 0 : this.x == other.x AND this.y = other.y
- 1 : this.x > other.x || ((this.x == other.x) AND (this.y > other.y))
- </summary>
- <param name="other"><c>Coordinate</c> with which this <c>Coordinate</c> is being compared.</param>
- <returns>
- A negative integer, zero, or a positive integer as this <c>Coordinate</c>
- is less than, equal to, or greater than the specified <c>Coordinate</c>.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Coordinate.Copy">
- <summary>
- Create a copy of this <see cref="T:NetTopologySuite.Geometries.Coordinate"/>.
- </summary>
- <returns>A copy of this coordinate.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Coordinate.Create(System.Double,System.Double,System.Double,System.Double)">
- <summary>
- Create a Coordinate of the same type as this Coordinate, using the provided values.
- </summary>
- <remarks>Depending on the actual type the following limitations are in place:
- <list type="table">
- <listheader><term>Coordinate (Sub-)Class</term><description>Limitation</description></listheader>
- <item><term><c>Coordinate</c></term><description><paramref name="z"/>-parameter and <paramref name="m"/>-parameter are silently dropped.</description></item>
- <item><term><c>CoordinateZ</c></term><description><paramref name="m"/>-parameter is silently dropped.</description></item>
- <item><term><c>CoordinateM</c></term><description><paramref name="z"/>-parameter is silently dropped.</description></item>
- <item><term><c>CoordinateZM</c></term><description>No parameter is dropped.</description></item>
- </list>
- </remarks>
- <param name="x">The x-ordinate value, if not provided, it is <c>0d</c>.</param>
- <param name="y">The y-ordinate value, if not provided, it is <c>0d</c>.</param>
- <param name="z">The z-ordinate value, if not provided, it is <see cref="F:NetTopologySuite.Geometries.Coordinate.NullOrdinate"/>.</param>
- <param name="m">The m-ordinate value, if not provided, it is <see cref="F:NetTopologySuite.Geometries.Coordinate.NullOrdinate"/>.</param>
- <returns>A new <see cref="T:NetTopologySuite.Geometries.Coordinate"/></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Coordinate.Distance(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Computes the 2-dimensional Euclidean distance to another location.
- </summary>
- <param name="c">A <see cref="T:NetTopologySuite.Geometries.Coordinate"/> with which to do the distance comparison.</param>
- <returns>the 2-dimensional Euclidean distance between the locations.</returns>
- <remarks>The Z-ordinate is ignored.</remarks>
- </member>
- <member name="M:NetTopologySuite.Geometries.Coordinate.Equals(System.Object)">
- <summary>
- Returns <c>true</c> if <c>other</c> has the same values for the x and y ordinates.
- Since Coordinates are 2.5D, this routine ignores the z value when making the comparison.
- </summary>
- <param name="o"><c>Coordinate</c> with which to do the comparison.</param>
- <returns><c>true</c> if <c>other</c> is a <c>Coordinate</c> with the same values for the x and y ordinates.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Coordinate.GetHashCode">
- <summary>
- Gets a hashcode for this coordinate.
- </summary>
- <returns>A hashcode for this coordinate.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Coordinate.ToString">
- <summary>
- Returns a <c>string</c> of the form <I>(x,y,z)</I> .
- </summary>
- <returns><c>string</c> of the form <I>(x,y,z)</I></returns>
- </member>
- <member name="T:NetTopologySuite.Geometries.CoordinateArrays">
- <summary>
- Useful utility functions for handling Coordinate arrays.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateArrays.Dimension(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Determine dimension based on subclass of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>.
- </summary>
- <param name="pts">pts supplied coordinates</param>
- <returns>number of ordinates recorded</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateArrays.Measures(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Determine number of measures based on subclass of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>.
- </summary>
- <param name="pts">supplied coordinates</param>
- <returns>number of measures recorded</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateArrays.EnforceConsistency(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Utility method ensuring array contents are of consistent dimension and measures.
- <para/>
- Array is modified in place if required, coordinates are replaced in the array as required
- to ensure all coordinates have the same dimension and measures. The final dimension and
- measures used are the maximum found when checking the array.
- </summary>
- <param name="array">Modified in place to coordinates of consistent dimension and measures.</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateArrays.EnforceConsistency(NetTopologySuite.Geometries.Coordinate[],System.Int32,System.Int32)">
- <summary>
- Utility method ensuring array contents are of the specified dimension and measures.
- <para/>
- Array is returned unmodified if consistent, or a copy of the array is made with
- each inconsistent coordinate duplicated into an instance of the correct dimension and measures.
- </summary>
- <param name="array">A coordinate array</param>
- <param name="dimension"></param>
- <param name="measures"></param>
- <returns>Input array or copy created if required to enforce consistency.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateArrays.IsRing(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Tests whether an array of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s forms a ring, by checking length and closure.
- Self-intersection is not checked.
- </summary>
- <param name="pts">An array of Coordinates</param>
- <returns>true if the coordinate form a ring.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateArrays.PointNotInList(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Finds a <see cref="T:NetTopologySuite.Geometries.Coordinate"/> in a list of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s
- which is not contained in another list of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s.
- </summary>
- <param name="testPts">The <see cref="T:NetTopologySuite.Geometries.Coordinate" />s to test.</param>
- <param name="pts">An array of <see cref="T:NetTopologySuite.Geometries.Coordinate" />s to test the input points against.</param>
- <returns>
- A <see cref="T:NetTopologySuite.Geometries.Coordinate" /> from <paramref name="testPts" />
- which is not in <paramref name="pts" />, or <c>null</c>.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateArrays.Compare(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Compares two <see cref="T:NetTopologySuite.Geometries.Coordinate" /> arrays
- in the forward direction of their coordinates,
- using lexicographic ordering.
- </summary>
- <param name="pts1"></param>
- <param name="pts2"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateArrays.IncreasingDirection(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Determines which orientation of the <see cref="T:NetTopologySuite.Geometries.Coordinate" /> array is (overall) increasing.
- In other words, determines which end of the array is "smaller"
- (using the standard ordering on <see cref="T:NetTopologySuite.Geometries.Coordinate" />).
- Returns an integer indicating the increasing direction.
- If the sequence is a palindrome, it is defined to be
- oriented in a positive direction.
- </summary>
- <param name="pts">The array of Coordinates to test.</param>
- <returns>
- <c>1</c> if the array is smaller at the start or is a palindrome,
- <c>-1</c> if smaller at the end.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateArrays.IsEqualReversed(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Determines whether two <see cref="T:NetTopologySuite.Geometries.Coordinate" /> arrays of equal length
- are equal in opposite directions.
- </summary>
- <param name="pts1"></param>
- <param name="pts2"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateArrays.CopyDeep(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Creates a deep copy of the argument <c>Coordinate</c> array.
- </summary>
- <param name="coordinates">Array of Coordinates.</param>
- <returns>Deep copy of the input.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateArrays.CopyDeep(NetTopologySuite.Geometries.Coordinate[],System.Int32,NetTopologySuite.Geometries.Coordinate[],System.Int32,System.Int32)">
- <summary>
- Creates a deep copy of a given section of a source <see cref="T:NetTopologySuite.Geometries.Coordinate"/> array into a destination Coordinate array.
- The destination array must be an appropriate size to receive the copied coordinates.
- </summary>
- <param name="src">An array of Coordinates</param>
- <param name="srcStart">The index to start copying from</param>
- <param name="dest">The array to receive the deep-copied coordinates</param>
- <param name="destStart">The destination index to start copying to</param>
- <param name="length">The number of items to copy</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateArrays.ToCoordinateArray(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Coordinate})">
- <summary>
- Converts the given <see cref="T:System.Collections.Generic.IEnumerable`1" /> of
- <see cref="T:NetTopologySuite.Geometries.Coordinate" />s into a <see cref="T:NetTopologySuite.Geometries.Coordinate" /> array.
- </summary>
- <param name="coordList"><see cref="T:System.Collections.Generic.IEnumerable`1"/> of coordinates.</param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateArrays.HasRepeatedPoints(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Returns whether <see cref="M:NetTopologySuite.Geometries.Coordinate.Equals(System.Object)"/> returns true
- for any two consecutive coordinates in the given array.
- </summary>
- <param name="coord">An array of <c>Coordinate</c>s.</param>
- <returns>true if coord has repeated points; false otherwise.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateArrays.AtLeastNCoordinatesOrNothing(System.Int32,NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Returns either the given coordinate array if its length is greater than
- the given amount, or an empty coordinate array.
- </summary>
- <param name="n">Length amount.</param>
- <param name="c">Array of Coordinates.</param>
- <returns>New Coordinate array.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateArrays.RemoveRepeatedPoints(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- If the coordinate array argument has repeated points,
- constructs a new array containing no repeated points.
- Otherwise, returns the argument.
- </summary>
- <param name="coord">An array of <c>Coordinate</c>s</param>
- <returns>The array with repeated coordinates removed</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateArrays.HasRepeatedOrInvalidPoints(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Tests whether an array has any repeated or invalid coordinates.
- </summary>
- <param name="coord">An array of coordinates</param>
- <returns><c>true</c> if the array contains repeated or invalid coordinates</returns>
- <see cref="P:NetTopologySuite.Geometries.Coordinate.IsValid"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateArrays.RemoveRepeatedOrInvalidPoints(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- If the coordinate array argument has repeated or invalid points,
- constructs a new array containing no repeated points.
- Otherwise, returns the argument.
- </summary>
- <param name="coord">An array of coordinates</param>
- <returns>The array with repeated or invalid coordinates removed.</returns>
- <see cref="M:NetTopologySuite.Geometries.CoordinateArrays.HasRepeatedOrInvalidPoints(NetTopologySuite.Geometries.Coordinate[])"/>
- <see cref="P:NetTopologySuite.Geometries.Coordinate.IsValid"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateArrays.RemoveNull(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Collapses a coordinate array to remove all null elements.
- </summary>
- <param name="coord">The coordinate array to collapse</param>
- <returns>An Array containing only non-null elements</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateArrays.Reverse(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Reverses the coordinates in an array in-place.
- </summary>
- <param name="coord">Array of Coordinates.</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateArrays.Equals(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Returns <c>true</c> if the two arrays are identical, both <c>null</c>, or pointwise
- equal (as compared using Coordinate.Equals).
- </summary>
- <param name="coord1">First array of Coordinates.</param>
- <param name="coord2">Second array of Coordinates.</param>
- <returns><c>true</c> if two Coordinates array are equals; false otherwise</returns>
- </member>
- <member name="T:NetTopologySuite.Geometries.CoordinateArrays.ForwardComparator">
- <summary>
- Compares two <see cref="T:NetTopologySuite.Geometries.Coordinate" /> arrays
- in the forward direction of their coordinates,
- using lexicographic ordering.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateArrays.ForwardComparator.Compare(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Compares the specified <see cref="T:NetTopologySuite.Geometries.Coordinate" />s arrays.
- </summary>
- <param name="pts1">An array of coordinates</param>
- <param name="pts2">An array of coordinates</param>
- </member>
- <member name="T:NetTopologySuite.Geometries.CoordinateArrays.BidirectionalComparator">
- <summary>
- A comparator for <see cref="T:NetTopologySuite.Geometries.Coordinate" /> arrays modulo their directionality.
- E.g. if two coordinate arrays are identical but reversed
- they will compare as equal under this ordering.
- If the arrays are not equal, the ordering returned
- is the ordering in the forward direction.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateArrays.BidirectionalComparator.Compare(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Compares the specified <see cref="T:NetTopologySuite.Geometries.Coordinate" />s arrays.
- </summary>
- <param name="pts1">An array of coordinates</param>
- <param name="pts2">An array of coordinates</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateArrays.BidirectionalComparator.OldCompare(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.Geometries.Coordinate[])">
- <summary/>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateArrays.Equals(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.Geometries.Coordinate[],System.Collections.Generic.IComparer{NetTopologySuite.Geometries.Coordinate[]})">
- <summary>
- Returns <c>true</c> if the two arrays are identical, both <c>null</c>, or pointwise
- equal, using a user-defined <see cref="T:System.Collections.IComparer" />
- for <see cref="T:NetTopologySuite.Geometries.Coordinate" />s.
- </summary>
- <param name="coord1">An array of <see cref="T:NetTopologySuite.Geometries.Coordinate" />s.</param>
- <param name="coord2">Another array of <see cref="T:NetTopologySuite.Geometries.Coordinate" />s.</param>
- <param name="coordinateComparer">
- A <see cref="T:System.Collections.IComparer" /> for <see cref="T:NetTopologySuite.Geometries.Coordinate" />s.
- </param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateArrays.MinCoordinate(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Returns the minimum coordinate, using the usual lexicographic comparison.
- </summary>
- <param name="coordinates">Array to search.</param>
- <returns>The minimum coordinate in the array, found using <c>CompareTo</c>.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateArrays.Scroll(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Shifts the positions of the coordinates until <c>firstCoordinate</c> is first.
- </summary>
- <param name="coordinates">Array to rearrange.</param>
- <param name="firstCoordinate">Coordinate to make first.</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateArrays.Scroll(NetTopologySuite.Geometries.Coordinate[],System.Int32)">
- <summary>
- Shifts the positions of the coordinates until the coordinate
- at <c>indexOfFirstCoordinate</c> is first.
- </summary>
- <param name="coordinates">The array of coordinates to arrange</param>
- <param name="indexOfFirstCoordinate">The index of the coordinate to make first</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateArrays.Scroll(NetTopologySuite.Geometries.Coordinate[],System.Int32,System.Boolean)">
- <summary>
- Shifts the positions of the coordinates until the coordinate
- at <c>indexOfFirstCoordinate</c> is first.
- </summary>
- <remarks>
- If <paramref name="ensureRing"/> is <c>true</c>, first and last
- coordinate of the returned array are equal.
- </remarks>
- <param name="coordinates">The array of coordinates to arrange</param>
- <param name="indexOfFirstCoordinate">The index of the coordinate to make first</param>
- <param name="ensureRing">A flag indicating if returned array should form a ring.</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateArrays.IndexOf(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Returns the index of <paramref name="coordinate" /> in <paramref name="coordinates" />.
- The first position is 0; the second is 1; etc.
- </summary>
- <param name="coordinate">A <see cref="T:NetTopologySuite.Geometries.Coordinate" /> to search for.</param>
- <param name="coordinates">A <see cref="T:NetTopologySuite.Geometries.Coordinate" /> array to search.</param>
- <returns>The position of <c>coordinate</c>, or -1 if it is not found.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateArrays.Extract(NetTopologySuite.Geometries.Coordinate[],System.Int32,System.Int32)">
- <summary>
- Extracts a subsequence of the input <see cref="T:NetTopologySuite.Geometries.Coordinate" /> array
- from indices <paramref name="start" /> to <paramref name="end"/> (inclusive).
- The input indices are clamped to the array size;
- If the end index is less than the start index,
- the extracted array will be empty.
- </summary>
- <param name="pts">The input array.</param>
- <param name="start">The index of the start of the subsequence to extract.</param>
- <param name="end">The index of the end of the subsequence to extract.</param>
- <returns>A subsequence of the input array.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateArrays.Envelope(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Computes the <see cref="M:NetTopologySuite.Geometries.CoordinateArrays.Envelope(NetTopologySuite.Geometries.Coordinate[])"/> of the coordinates.
- </summary>
- <param name="coordinates">the <see cref="T:NetTopologySuite.Geometries.Coordinate"/> array to scan.</param>
- <returns>the <see cref="M:NetTopologySuite.Geometries.CoordinateArrays.Envelope(NetTopologySuite.Geometries.Coordinate[])"/> of the <paramref name="coordinates"/>.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateArrays.Intersection(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.Geometries.Envelope)">
- <summary>
- Extracts the coordinates which intersect an <see cref="M:NetTopologySuite.Geometries.CoordinateArrays.Envelope(NetTopologySuite.Geometries.Coordinate[])"/>.
- </summary>
- <param name="coordinates">The coordinates to scan</param>
- <param name="env">The envelope to intersect with</param>
- <returns>An array of coordinates which intersect with the envelope</returns>
- </member>
- <member name="T:NetTopologySuite.Geometries.CoordinateEqualityComparer">
- <summary>
- A class that can be used to test coordinates for equality.
- <para/>
- It uses the algorithm that was default for NTS prior to v2.2,
- i.e. checks if the 2d distance between coordinates <c>x</c>
- and <c>y</c> is less than or equal to a tolerance value.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateEqualityComparer.Equals(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <inheritdoc cref="M:System.Collections.Generic.EqualityComparer`1.Equals(`0,`0)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateEqualityComparer.Equals(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,System.Double)">
- <summary>
- Compares <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s <paramref name="x"/> and <paramref name="y"/> for equality allowing for a <paramref name="tolerance"/>.
- </summary>
- <param name="x">A <c>Coordinate</c></param>
- <param name="y">A <c>Coordinate</c></param>
- <param name="tolerance">A tolerance value.</param>
- <returns><c>true</c> if <paramref name="x"/> and <paramref name="y"/> can be considered equal; otherwise <c>false</c>.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateEqualityComparer.GetHashCode(NetTopologySuite.Geometries.Coordinate)">
- <inheritdoc cref="M:System.Collections.Generic.EqualityComparer`1.GetHashCode(`0)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateEqualityComparer.AreEqual(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,System.Double)">
- <summary>
- Method to test 2 <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s for equality, allowing a tolerance.
- </summary>
- <param name="a">The 1st Coordinate</param>
- <param name="b">The 2nd Coordinate</param>
- <param name="tolerance">A tolerance value</param>
- <returns><c>true</c> if <paramref name="a"/> and <paramref name="b"/> can be considered equal.</returns>
- </member>
- <member name="T:NetTopologySuite.Geometries.PerOrdinateEqualityComparer">
- <summary>
- A class that can be used to test coordinates for equality.
- <para/>
- This class test for each ordinate if the distance is less
- than a tolerance value.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.PerOrdinateEqualityComparer.AreEqual(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,System.Double)">
- <summary>
- Method to test 2 <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s for equality, allowing a tolerance.
- </summary>
- <param name="a">The 1st Coordinate</param>
- <param name="b">The 2nd Coordinate</param>
- <param name="tolerance">A tolerance value</param>
- <returns><c>true</c> if <paramref name="a"/> and <paramref name="b"/> can be considered equal.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.PerOrdinateEqualityComparer.Distance(System.Double,System.Double)">
- <summary>
- Computes the distance between two <see cref="T:System.Double"/> values
- </summary>
- <param name="a">1st double</param>
- <param name="b">2nd double</param>
- <returns>The distance between <paramref name="a"/> and <paramref name="b"/></returns>
- </member>
- <member name="T:NetTopologySuite.Geometries.CoordinateFilter">
- <summary>
- An implementation of <see cref="T:NetTopologySuite.Geometries.ICoordinateFilter"/> that delegates the
- filter action to a provided method.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateFilter.#ctor(System.Action{NetTopologySuite.Geometries.Coordinate})">
- <summary>
- Creates an instance of this class providing the action
- to perform on any coordinate.
- </summary>
- <param name="coordFilterAction">The action</param>
- <exception cref="T:System.ArgumentNullException"> thrown if <paramref name="coordFilterAction"/> is <c>null</c>.</exception>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateFilter.Filter(NetTopologySuite.Geometries.Coordinate)">
- <inheritdoc/>
- </member>
- <member name="T:NetTopologySuite.Geometries.CoordinateList">
- <summary>
- A list of Coordinates, which may
- be set to prevent repeated coordinates from occurring in the list.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateList.#ctor">
- <summary>
- Constructs a new list without any coordinates
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateList.#ctor(System.Int32)">
- <summary>
- Constructs a new list without any coordinates but an initial capacity
- </summary>
- <param name="capacity">The initial capacity of the list.</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateList.#ctor(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Constructs a new list from an array of Coordinates, allowing repeated points.
- (I.e. this constructor produces a <see cref="T:NetTopologySuite.Geometries.CoordinateList"/> with exactly the same set of points
- as the input array.)
- </summary>
- <param name="coord">Initial coordinates</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateList.#ctor(System.Collections.Generic.IList{NetTopologySuite.Geometries.Coordinate})">
- <summary>
- Constructs a new list from a collection of Coordinates,
- allows repeated points.
- </summary>
- <param name="coordList">Collection of coordinates to load into the list.</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateList.#ctor(System.Collections.Generic.IList{NetTopologySuite.Geometries.Coordinate},System.Boolean)">
- <summary>
- Constructs a new list from a collection of Coordinates,
- allowing caller to specify if repeated points are to be removed.
- </summary>
- <param name="coordList">Collection of coordinates to load into the list.</param>
- <param name="allowRepeated">If <c>false</c>, repeated points are removed.</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateList.#ctor(NetTopologySuite.Geometries.Coordinate[],System.Boolean)">
- <summary>
- Constructs a new list from an array of Coordinates,
- allowing caller to specify if repeated points are to be removed.
- </summary>
- <param name="coord">Array of coordinates to load into the list.</param>
- <param name="allowRepeated">If <c>false</c>, repeated points are removed.</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateList.GetCoordinate(System.Int32)">
- <summary>
- Returns the coordinate at specified index.
- </summary>
- <param name="i">Coordinate index.</param>
- <return>Coordinate specified.</return>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateList.Add(NetTopologySuite.Geometries.Coordinate[],System.Boolean,System.Int32,System.Int32)">
- <summary>
- Adds a section of an array of coordinates to the list.
- </summary>
- <param name="coord">The coordinates</param>
- <param name="allowRepeated">If set to false, repeated coordinates are collapsed</param>
- <param name="start">The index to start from</param>
- <param name="end">The index to add up to but not including</param>
- <returns>true (as by general collection contract)</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateList.Add(NetTopologySuite.Geometries.Coordinate[],System.Boolean,System.Boolean)">
- <summary>
- Adds an array of coordinates to the list.
- </summary>
- <param name="coord">Coordinates to be inserted.</param>
- <param name="allowRepeated">If set to false, repeated coordinates are collapsed.</param>
- <param name="direction">If false, the array is added in reverse order.</param>
- <returns>Return true.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateList.Add(NetTopologySuite.Geometries.Coordinate[],System.Boolean)">
- <summary>
- Adds an array of coordinates to the list.
- </summary>
- <param name="coord">Coordinates to be inserted.</param>
- <param name="allowRepeated">If set to false, repeated coordinates are collapsed.</param>
- <returns>Return true.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateList.Add(System.Object,System.Boolean)">
- <summary>
- Adds a coordinate to the list.
- </summary>
- <param name="obj">Coordinate to be inserted, as object.</param>
- <param name="allowRepeated">If set to false, repeated coordinates are collapsed.</param>
- <returns>Return true.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateList.Add(NetTopologySuite.Geometries.Coordinate,System.Boolean)">
- <summary>
- Adds a coordinate to the end of this list.
- </summary>
- <param name="coord">Coordinate to be inserted.</param>
- <param name="allowRepeated">If set to false, repeated coordinates are collapsed.</param>
- <returns>Return true if all ok.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateList.Add(System.Int32,NetTopologySuite.Geometries.Coordinate,System.Boolean)">
- <summary>
- Inserts the specified coordinate at the specified position in this list.
- </summary>
- <param name="i">The position at which to insert</param>
- <param name="coord">the coordinate to insert</param>
- <param name="allowRepeated">if set to false, repeated coordinates are collapsed</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateList.AddAll(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Coordinate},System.Boolean)">
- <summary>
- Add an array of coordinates.
- </summary>
- <param name="coll">Coordinates collection to be inserted.</param>
- <param name="allowRepeated">If set to false, repeated coordinates are collapsed.</param>
- <returns>Return true if at least one element has added (IList not empty).</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateList.CloseRing">
- <summary>
- Ensure this coordList is a ring, by adding the start point if necessary.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateList.ToCoordinateArray">
- <summary>
- Returns the Coordinates in this collection.
- </summary>
- <returns>Coordinates as <c>Coordinate[]</c> array.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateList.ToCoordinateArray(System.Boolean)">
- <summary>
- Creates an array containing the coordinates in this list,
- oriented in the given direction (forward or reverse).
- </summary>
- <param name="isForward">The direction value: <c>true</c> for forward, <c>false</c> for reverse</param>
- <returns>An oriented array of coordinates</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateList.Clone">
- <summary>
- Returns a deep copy of this collection.
- </summary>
- <returns>The copied object.</returns>
- </member>
- <member name="T:NetTopologySuite.Geometries.CoordinateM">
- <summary>
- A lightweight class used to store coordinates on the 2-dimensional Cartesian plane
- and an additional measure (<see cref="P:NetTopologySuite.Geometries.CoordinateM.M"/>) value.
- <para>
- This data object is suitable for use with coordinate sequences with
- <c>dimension</c> = 3 and <c>measures</c> = 1.
- </para>
- </summary>
- <remarks>
- It is distinct from <see cref="T:NetTopologySuite.Geometries.Point"/>, which is a subclass of <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
- Unlike objects of type <see cref="T:NetTopologySuite.Geometries.Point"/> (which contain additional
- information such as an envelope, a precision model, and spatial reference
- system information), a <c>CoordinateM</c> only contains ordinate values
- and properties.
- <para/>
- <c>CoordinateM</c>s are two-dimensional points, with an additional M-ordinate.
- If an M-ordinate value is not specified or not defined,
- constructed coordinates have a M-ordinate of <c>NaN</c>
- (which is also the value of <see cref="F:NetTopologySuite.Geometries.Coordinate.NullOrdinate"/>).
- Apart from the basic accessor functions, NTS supports
- only specific operations involving the M-ordinate.
- <para/>
- Implementations may optionally support Z-ordinate and M-measure values
- as appropriate for a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>. Use of <see cref="P:NetTopologySuite.Geometries.CoordinateZ.Z"/>
- and <see cref="P:NetTopologySuite.Geometries.CoordinateM.M"/> setters or <see cref="P:NetTopologySuite.Geometries.CoordinateM.this[int]" /> indexer are recommended.
- </remarks>
- </member>
- <member name="P:NetTopologySuite.Geometries.CoordinateM.M">
- <summary>
- Gets or sets the M-ordinate value.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateM.#ctor(System.Double,System.Double,System.Double)">
- <summary>
- Constructs a <c>CoordinateM</c> at (x,y,z).
- </summary>
- <param name="x">The X value</param>
- <param name="y">The Y value</param>
- <param name="m">The measure value</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateM.#ctor">
- <summary>
- Constructs a <c>CoordinateM</c> at (0,0,NaN).
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateM.#ctor(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Constructs a <c>CoordinateM</c> having the same (x,y) values as
- <paramref name="c"/>.
- </summary>
- <param name="c"><c>Coordinate</c> to copy.</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateM.#ctor(System.Double,System.Double)">
- <summary>
- Constructs a <c>CoordinateM</c> at (x,y,NaN).
- </summary>
- <param name="x">X value.</param>
- <param name="y">Y value.</param>
- </member>
- <member name="P:NetTopologySuite.Geometries.CoordinateM.Item(System.Int32)">
- <summary>
- Gets or sets the ordinate value for the given index.
- </summary>
- <remarks>
- The base implementation supports 0 (X), 1 (Y) and 2 (M) as values for the index.
- </remarks>
- <param name="ordinateIndex">The ordinate index</param>
- <returns>The ordinate value</returns>
- <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="ordinateIndex"/> is not in the valid range.</exception>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateM.op_Implicit(System.ValueTuple{System.Double,System.Double})~NetTopologySuite.Geometries.CoordinateM">
- <summary>
- Implicit conversion of a <c>(double x, double y)</c> value to a <c>CoordinateM</c>.
- </summary>
- <param name="value"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateM.op_Implicit(System.ValueTuple{System.Double,System.Double,System.Double})~NetTopologySuite.Geometries.CoordinateM">
- <summary>
- Implicit conversion of a <c>(double x, double y, double m)</c> value to a <c>CoordinateM</c>.
- </summary>
- <param name="value"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateM.Deconstruct(System.Double@,System.Double@,System.Double@)">
- <summary>
- Deconstructs this <c>CoordinateM</c> into its x, y and m values.
- </summary>
- <param name="x"></param>
- <param name="y"></param>
- <param name="m"></param>
- </member>
- <member name="P:NetTopologySuite.Geometries.CoordinateM.CoordinateValue">
- <summary>
- Gets/Sets <c>CoordinateM</c>s (x,y,z) values.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateM.Create(System.Double,System.Double,System.Double,System.Double)">
- <summary>
- Create a Coordinate of the same type as this Coordinate,
- using the provided values for <paramref name="x"/>, <paramref name="y"/> and <paramref name="m"/>.
- </summary>
- <remarks>A provided value for <paramref name="z"/> will be silently dropped.</remarks>
- <param name="x">The x-ordinate value, if not provided, it is <c>0d</c>.</param>
- <param name="y">The y-ordinate value, if not provided, it is <c>0d</c>.</param>
- <param name="z">The z-ordinate value, if not provided, it is <see cref="F:NetTopologySuite.Geometries.Coordinate.NullOrdinate"/>.</param>
- <param name="m">The m-ordinate value, if not provided, it is <see cref="F:NetTopologySuite.Geometries.Coordinate.NullOrdinate"/>.</param>
- <returns>A new <see cref="T:NetTopologySuite.Geometries.CoordinateM"/></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateM.ToString">
- <summary>
- Returns a <c>string</c> of the form <i>(x, y, m=m)</i>.
- </summary>
- <returns><c>string</c> of the form <i>(x, y, m=m)</i></returns>
- </member>
- <member name="T:NetTopologySuite.Geometries.Coordinates">
- <summary>
- Useful utility functions for handling Coordinate objects.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.Coordinates.Create(System.Int32)">
- <summary>
- Factory method providing access to common Coordinate implementations.
- </summary>
- <param name="dimension"></param>
- <returns>created coordinate</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Coordinates.Create(System.Int32,System.Int32)">
- <summary>
- Factory method providing access to common Coordinate implementations.
- </summary>
- <param name="dimension"></param>
- <param name="measures"></param>
- <returns>created coordinate</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Coordinates.Dimension(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Determine dimension based on subclass of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>.
- </summary>
- <param name="coordinate">supplied coordinate</param>
- <returns>number of ordinates recorded</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Coordinates.SpatialDimension(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Evaluates the number of spatial dimensions (x, y, z) that a coordinate can carry.
- </summary>
- <param name="c">A coordinate</param>
- <returns>The number of spatial dimensions</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Coordinates.HasZ(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Check if coordinate can store a z-ordinate value, based on subclass of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>.
- </summary>
- <param name="coordinate">A coordinate</param>
- <returns><c>true</c> if <paramref name="coordinate"/> can carry a z-ordinate value</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Coordinates.Measures(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Determine number of measures based on subclass of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>.
- </summary>
- <param name="coordinate">supplied coordinate</param>
- <returns>number of measures recorded </returns>
- </member>
- <member name="T:NetTopologySuite.Geometries.CoordinateSequence">
- <seealso cref="T:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateSequence.#ctor(System.Int32,System.Int32,System.Int32)">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/> class.
- </summary>
- <param name="count">The value for <see cref="P:NetTopologySuite.Geometries.CoordinateSequence.Count"/>.</param>
- <param name="dimension">The value for <see cref="P:NetTopologySuite.Geometries.CoordinateSequence.Dimension"/>.</param>
- <param name="measures">The value for <see cref="P:NetTopologySuite.Geometries.CoordinateSequence.Measures"/>.</param>
- <exception cref="T:System.ArgumentOutOfRangeException">
- Thrown when any argument is negative.
- </exception>
- <exception cref="T:System.ArgumentException">
- Thrown when <paramref name="dimension"/> and <paramref name="measures"/> specify fewer
- than two (2) spatial dimensions.
- </exception>
- </member>
- <member name="P:NetTopologySuite.Geometries.CoordinateSequence.Dimension">
- <summary>
- Returns the dimension (number of ordinates in each coordinate) for this sequence.
- <para>
- This total includes any measures, indicated by non-zero <see cref="P:NetTopologySuite.Geometries.CoordinateSequence.Measures"/>.
- </para>
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.CoordinateSequence.Measures">
- <summary>
- Gets the number of measures included in <see cref="P:NetTopologySuite.Geometries.CoordinateSequence.Dimension"/> for each coordinate for this
- sequence.
- </summary>
- <remarks>
- For a measured coordinate sequence a non-zero value is returned.
- <list type="bullet">
- <item><description>For <see cref="F:NetTopologySuite.Geometries.Ordinates.XY"/> sequence measures is zero</description></item>
- <item><description>For <see cref="F:NetTopologySuite.Geometries.Ordinates.XYM"/> sequence measure is one</description></item>
- <item><description>For <see cref="F:NetTopologySuite.Geometries.Ordinates.XYZ"/> sequence measure is zero</description></item>
- <item><description>For <see cref="F:NetTopologySuite.Geometries.Ordinates.XYZM"/> sequence measure is one</description></item>
- <item><description>Values greater than one are supported</description></item>
- </list>
- </remarks>
- </member>
- <member name="P:NetTopologySuite.Geometries.CoordinateSequence.Spatial">
- <summary>
- Gets the number of non-measure dimensions included in <see cref="P:NetTopologySuite.Geometries.CoordinateSequence.Dimension"/> for each
- coordinate for this sequence.
- <para>
- Equivalent to <c>Dimension - Measures</c>.
- </para>
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.CoordinateSequence.Ordinates">
- <summary>
- Gets the kind of ordinates this sequence supplies.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.CoordinateSequence.HasZ">
- <summary>
- Gets a value indicating if <see cref="M:NetTopologySuite.Geometries.CoordinateSequence.GetZ(System.Int32)"/> is supported.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.CoordinateSequence.HasM">
- <summary>
- Gets a value indicating if <see cref="M:NetTopologySuite.Geometries.CoordinateSequence.GetM(System.Int32)"/> is supported.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.CoordinateSequence.ZOrdinateIndex">
- <summary>
- Gets the index of the Z ordinate (for use with <see cref="M:NetTopologySuite.Geometries.CoordinateSequence.GetOrdinate(System.Int32,System.Int32)"/> or
- <see cref="M:NetTopologySuite.Geometries.CoordinateSequence.SetOrdinate(System.Int32,System.Int32,System.Double)"/>), or -1 if <see cref="P:NetTopologySuite.Geometries.CoordinateSequence.HasZ"/> is
- <see langword="false"/>.
- </summary>
- <remarks>
- 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"/>.
- </remarks>
- </member>
- <member name="P:NetTopologySuite.Geometries.CoordinateSequence.MOrdinateIndex">
- <summary>
- Gets the index of the M ordinate (for use with <see cref="M:NetTopologySuite.Geometries.CoordinateSequence.GetOrdinate(System.Int32,System.Int32)"/> or
- <see cref="M:NetTopologySuite.Geometries.CoordinateSequence.SetOrdinate(System.Int32,System.Int32,System.Double)"/>), or -1 if <see cref="P:NetTopologySuite.Geometries.CoordinateSequence.HasM"/> is
- <see langword="false"/>.
- </summary>
- <remarks>
- 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"/>.
- </remarks>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateSequence.CreateCoordinate">
- <summary>
- Creates a coordinate for use in this sequence.
- </summary>
- <remarks>
- The coordinate is created supporting the same number of <see cref="P:NetTopologySuite.Geometries.CoordinateSequence.Dimension"/> and <see cref="P:NetTopologySuite.Geometries.CoordinateSequence.Measures"/>
- as this sequence and is suitable for use with <see cref="M:NetTopologySuite.Geometries.CoordinateSequence.GetCoordinate(System.Int32,NetTopologySuite.Geometries.Coordinate)"/>.
- </remarks>
- <returns>A coordinate for use with this sequence</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateSequence.GetCoordinate(System.Int32)">
- <summary>
- Returns (possibly a copy of) the ith Coordinate in this collection.
- Whether or not the Coordinate returned is the actual underlying
- Coordinate or merely a copy depends on the implementation.
- Note that in the future the semantics of this method may change
- to guarantee that the Coordinate returned is always a copy. Callers are
- advised not to assume that they can modify a CoordinateSequence by
- modifying the Coordinate returned by this method.
- </summary>
- <param name="i"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateSequence.GetCoordinateCopy(System.Int32)">
- <summary>
- Returns a copy of the i'th coordinate in this sequence.
- This method optimizes the situation where the caller is
- going to make a copy anyway - if the implementation
- has already created a new Coordinate object, no further copy is needed.
- </summary>
- <param name="i">The index of the coordinate to retrieve.</param>
- <returns>A copy of the i'th coordinate in the sequence</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateSequence.GetCoordinate(System.Int32,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Copies the i'th coordinate in the sequence to the supplied Coordinate.
- At least the first two dimensions <b>must</b> be copied.
- </summary>
- <param name="index">The index of the coordinate to copy.</param>
- <param name="coord">A Coordinate to receive the value.</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateSequence.GetX(System.Int32)">
- <summary>
- Returns ordinate X (0) of the specified coordinate.
- </summary>
- <param name="index"></param>
- <returns>The value of the X ordinate in the index'th coordinate.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateSequence.GetY(System.Int32)">
- <summary>
- Returns ordinate Y (1) of the specified coordinate.
- </summary>
- <param name="index"></param>
- <returns>The value of the Y ordinate in the index'th coordinate.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateSequence.GetZ(System.Int32)">
- <summary>
- Returns ordinate Z of the specified coordinate if available.
- </summary>
- <param name="index"></param>
- <returns>
- The value of the Z ordinate in the index'th coordinate, or
- <see cref="F:NetTopologySuite.Geometries.Coordinate.NullOrdinate"/> if not defined.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateSequence.GetM(System.Int32)">
- <summary>
- Returns ordinate M of the specified coordinate if available.
- </summary>
- <param name="index"></param>
- <returns>
- The value of the M ordinate in the index'th coordinate, or
- <see cref="F:NetTopologySuite.Geometries.Coordinate.NullOrdinate"/> if not defined.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateSequence.SetX(System.Int32,System.Double)">
- <summary>
- Sets ordinate X (0) of the specified coordinate to the specified value.
- </summary>
- <param name="index">
- The index of the coordinate whose X value to set.
- </param>
- <param name="value">
- The value to set the coordinate's X value to.
- </param>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateSequence.SetY(System.Int32,System.Double)">
- <summary>
- Sets ordinate Y (1) of the specified coordinate to the specified value.
- </summary>
- <param name="index">
- The index of the coordinate whose Y value to set.
- </param>
- <param name="value">
- The value to set the coordinate's Y value to.
- </param>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateSequence.SetZ(System.Int32,System.Double)">
- <summary>
- Sets ordinate Z of the specified coordinate to the specified value if present.
- </summary>
- <param name="index">
- The index of the coordinate whose Z value to set if present.
- </param>
- <param name="value">
- The value to set the coordinate's Z value to if present.
- </param>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateSequence.SetM(System.Int32,System.Double)">
- <summary>
- Sets ordinate M of the specified coordinate to the specified value if present.
- </summary>
- <param name="index">
- The index of the coordinate whose M value to set if present.
- </param>
- <param name="value">
- The value to set the coordinate's M value to if present.
- </param>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateSequence.GetOrdinate(System.Int32,System.Int32)">
- <summary>
- Returns the ordinate of a coordinate in this sequence.
- Ordinate indices 0 and 1 are assumed to be X and Y.
- <para/>
- Ordinate indices greater than 1 have user-defined semantics
- (for instance, they may contain other dimensions or measure
- values as described by <see cref="P:NetTopologySuite.Geometries.CoordinateSequence.Dimension"/> and <see cref="P:NetTopologySuite.Geometries.CoordinateSequence.Measures"/>.
- </summary>
- <remarks>
- 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"/>.
- </remarks>
- <param name="index">The coordinate index in the sequence.</param>
- <param name="ordinateIndex">The ordinate index in the coordinate (in range [0, dimension-1]).</param>
- <returns>The ordinate value, or <see cref="F:NetTopologySuite.Geometries.Coordinate.NullOrdinate"/> if the sequence does not provide values for <paramref name="ordinateIndex"/>"/></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateSequence.GetOrdinate(System.Int32,NetTopologySuite.Geometries.Ordinate)">
- <summary>
- Returns the ordinate of a coordinate in this sequence.
- </summary>
- <param name="index">The coordinate index in the sequence.</param>
- <param name="ordinate">The ordinate value to get.</param>
- <returns>The ordinate value, or <see cref="F:NetTopologySuite.Geometries.Coordinate.NullOrdinate"/> if the sequence does not provide values for <paramref name="ordinate"/>"/></returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.CoordinateSequence.First">
- <summary>
- Gets a value indicating the first <c>Coordinate</c> in this sequence.<br/>
- For <c>LineString</c>s e.g. this is the starting point.
- </summary>
- <returns>First <c>Coordinate</c> in sequence or <c>null</c> if empty.</returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.CoordinateSequence.Last">
- <summary>
- Gets a value indicating the last <c>Coordinate</c> in this sequence.<br/>
- For <c>LineString</c>s e.g. this is the ending point.
- </summary>
- <returns>Last <c>Coordinate</c> in sequence or <c>null</c> if empty.</returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.CoordinateSequence.Count">
- <summary>
- Gets a value indicating the number of coordinates in this sequence.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateSequence.SetOrdinate(System.Int32,System.Int32,System.Double)">
- <summary>
- Sets the value for a given ordinate of a coordinate in this sequence.
- </summary>
- <remarks>
- If the sequence can't store the ordinate value, the implementation <b>must not</b> throw an exception, it should simply ignore the call.
- </remarks>
- <param name="index">The coordinate index in the sequence.</param>
- <param name="ordinateIndex">The ordinate index in the coordinate (in range [0, dimension-1]).</param>
- <param name="value">The new ordinate value.</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateSequence.SetOrdinate(System.Int32,NetTopologySuite.Geometries.Ordinate,System.Double)">
- <summary>
- Sets the value for a given ordinate of a coordinate in this sequence.
- </summary>
- <param name="index">The coordinate index in the sequence.</param>
- <param name="ordinate">The ordinate value to set.</param>
- <param name="value">The new ordinate value.</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateSequence.ToCoordinateArray">
- <summary>
- Returns (possibly copies of) the Coordinates in this collection.
- Whether or not the Coordinates returned are the actual underlying
- Coordinates or merely copies depends on the implementation. Note that
- if this implementation does not store its data as an array of Coordinates,
- this method will incur a performance penalty because the array needs to
- be built from scratch.
- </summary>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateSequence.ExpandEnvelope(NetTopologySuite.Geometries.Envelope)">
- <summary>
- Expands the given Envelope to include the coordinates in the sequence.
- Allows implementing classes to optimize access to coordinate values.
- </summary>
- <param name="env">The envelope to expand.</param>
- <returns>A reference to the expanded envelope.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateSequence.Copy">
- <summary>
- Returns a deep copy of this collection.
- </summary>
- <returns>A copy of the coordinate sequence containing copies of all points</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateSequence.Reversed">
- <summary>
- Returns a reversed copy of this <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>.
- </summary>
- <returns>
- A reversed copy of this <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>.
- </returns>
- <exception cref="T:System.InvalidOperationException">
- Thrown when <see cref="M:NetTopologySuite.Geometries.CoordinateSequence.Copy"/> returned <see langword="null"/>.
- </exception>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateSequence.TryGetOrdinateIndex(NetTopologySuite.Geometries.Ordinate,System.Int32@)">
- <summary>
- Retrieves the index at which this sequence stores a particular <see cref="T:NetTopologySuite.Geometries.Ordinate"/>'s
- values, if that ordinate is present in <see cref="P:NetTopologySuite.Geometries.CoordinateSequence.Ordinates"/>.
- </summary>
- <param name="ordinate">
- The <see cref="T:NetTopologySuite.Geometries.Ordinate"/> value whose index to retrieve.
- </param>
- <param name="ordinateIndex">
- When this method returns, contains the index of the requested ordinate, if the ordinate
- is present in this sequence; otherwise, -1. This parameter is passed uninitialized.
- </param>
- <returns>
- <see langword="true"/> if this sequence contains <paramref name="ordinate"/>; otherwise,
- <see langword="false"/>.
- </returns>
- </member>
- <member name="T:NetTopologySuite.Geometries.CoordinateSequenceComparator">
- <summary>
- Compares two <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>s.
- </summary><remarks>
- <para>
- For sequences of the same dimension, the ordering is lexicographic.
- Otherwise, lower dimensions are sorted before higher.
- The dimensions compared can be limited; if this is done
- ordinate dimensions above the limit will not be compared.
- </para>
- <para>
- If different behaviour is required for comparing size, dimension,
- or coordinate values, any or all methods can be overridden.</para>
- </remarks>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateSequenceComparator.Compare(System.Double,System.Double)">
- <summary>
- Compare two <c>double</c>s, allowing for NaN values.
- NaN is treated as being less than any valid number.
- </summary>
- <param name="a">A <c>double</c></param>
- <param name="b">A <c>double</c></param>
- <returns>-1, 0, or 1 depending on whether a is less than, equal to or greater than b</returns>
- </member>
- <member name="F:NetTopologySuite.Geometries.CoordinateSequenceComparator.DimensionLimit">
- <summary>
- The number of dimensions to test
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateSequenceComparator.#ctor">
- <summary>
- Creates a comparator which will test all dimensions.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateSequenceComparator.#ctor(System.Int32)">
- <summary>
- Creates a comparator which will test only the specified number of dimensions.
- </summary>
- <param name="dimensionLimit">The number of dimensions to test</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateSequenceComparator.Compare(System.Object,System.Object)">
- <summary>
- Compares two <see cref="T:NetTopologySuite.Geometries.CoordinateSequence" />s for relative order.
- </summary>
- <param name="o1">A coordinate sequence</param>
- <param name="o2">A coordinate sequence</param>
- <returns>-1, 0, or 1 depending on whether o1 is less than, equal to, or greater than o2</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateSequenceComparator.CompareCoordinate(NetTopologySuite.Geometries.CoordinateSequence,NetTopologySuite.Geometries.CoordinateSequence,System.Int32,System.Int32)">
- <summary>
- Compares the same coordinate of two <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>s
- </summary>
- <param name="s1">A coordinate sequence</param>
- <param name="s2">A coordinate sequence</param>
- <param name="i">The index of the coordinate to test</param>
- <param name="dimension">the number of dimensions to test</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateSequenceComparator.Compare(NetTopologySuite.Geometries.CoordinateSequence,NetTopologySuite.Geometries.CoordinateSequence)">
- <summary>
- Compares two <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>s for relative order.
- </summary>
- <param name="s1">A coordinate sequence</param>
- <param name="s2">A coordinate sequence</param>
- <returns>-1, 0, or 1 depending on whether s1 is less than, equal to, or greater than s2</returns>
- </member>
- <member name="T:NetTopologySuite.Geometries.CoordinateSequenceFactory">
- <summary>
- An object that knows how to build a particular implementation of
- <c>CoordinateSequence</c> from an array of Coordinates.
- </summary>
- <seealso cref="T:NetTopologySuite.Geometries.CoordinateSequence" />
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateSequenceFactory.#ctor">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.Geometries.CoordinateSequenceFactory"/> class.`
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateSequenceFactory.#ctor(NetTopologySuite.Geometries.Ordinates)">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.Geometries.CoordinateSequenceFactory"/> class.
- </summary>
- <param name="ordinates">
- The maximum set of <see cref="T:NetTopologySuite.Geometries.Ordinates"/> flags that this instance will be
- able to create sequences for.
- </param>
- </member>
- <member name="P:NetTopologySuite.Geometries.CoordinateSequenceFactory.Ordinates">
- <summary>
- Gets the Ordinate flags that sequences created by this factory can maximal cope with.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateSequenceFactory.Create(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Returns a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence" /> based on the given array;
- whether or not the array is copied is implementation-dependent.
- </summary>
- <param name="coordinates">A coordinates array, which may not be null nor contain null elements</param>
- <returns>A coordinate sequence.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateSequenceFactory.Create(NetTopologySuite.Geometries.CoordinateSequence)">
- <summary>
- Creates a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence" /> which is a copy
- of the given <see cref="T:NetTopologySuite.Geometries.CoordinateSequence" />.
- This method must handle null arguments by creating an empty sequence.
- </summary>
- <param name="coordSeq"></param>
- <returns>A coordinate sequence</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateSequenceFactory.Create(System.Int32,System.Int32)">
- <summary>
- Creates a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence" /> of the specified size and dimension.
- For this to be useful, the <see cref="T:NetTopologySuite.Geometries.CoordinateSequence" /> implementation must be mutable.
- </summary>
- <remarks>
- If the requested dimension is larger than the CoordinateSequence implementation
- can provide, then a sequence of maximum possible dimension should be created.
- An error should not be thrown.
- </remarks>
- <param name="size"></param>
- <param name="dimension">the dimension of the coordinates in the sequence
- (if user-specifiable, otherwise ignored)</param>
- <returns>A coordinate sequence</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateSequenceFactory.Create(System.Int32,System.Int32,System.Int32)">
- <summary>
- Creates a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence" /> of the specified size and dimension
- with measure support. For this to be useful, the <see cref="T:NetTopologySuite.Geometries.CoordinateSequence" />
- implementation must be mutable.
- </summary>
- <remarks>
- If the requested dimension or measures are larger than the CoordinateSequence implementation
- can provide, then a sequence of maximum possible dimension should be created.
- An error should not be thrown.
- </remarks>
- <param name="size">The number of coordinates in the sequence</param>
- <param name="dimension">The dimension of the coordinates in the sequence (if user-specifiable,
- otherwise ignored)</param>
- <param name="measures">The number of measures of the coordinates in the sequence (if user-specifiable,
- otherwise ignored)</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateSequenceFactory.Create(System.Int32,NetTopologySuite.Geometries.Ordinates)">
- <summary>
- Creates a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence" /> of the specified size and ordinates.
- For this to be useful, the <see cref="T:NetTopologySuite.Geometries.CoordinateSequence" /> implementation must be mutable.
- </summary>
- <param name="size">The number of coordinates.</param>
- <param name="ordinates">
- 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.
- </param>
- <returns>A coordinate sequence.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateSequenceFactory.GetCommonSequenceParameters(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Gets the three parameters needed to create any <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/> instance
- (<see cref="P:NetTopologySuite.Geometries.CoordinateSequence.Count"/>, <see cref="P:NetTopologySuite.Geometries.CoordinateSequence.Dimension"/>, and
- <see cref="P:NetTopologySuite.Geometries.CoordinateSequence.Measures"/>) such that the sequence can store all the data
- from a given array of <see cref="T:NetTopologySuite.Geometries.Coordinate"/> instances.
- </summary>
- <param name="coordinates">
- The array of <see cref="T:NetTopologySuite.Geometries.Coordinate"/> instances that the sequence will be created from.
- </param>
- <returns>
- The values of the three parameters to use for creating the sequence.
- </returns>
- </member>
- <member name="T:NetTopologySuite.Geometries.CoordinateSequences">
- <summary>
- Utility functions for manipulating <see cref="T:NetTopologySuite.Geometries.CoordinateSequence" />s.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateSequences.Reverse(NetTopologySuite.Geometries.CoordinateSequence)">
- <summary>
- Reverses the coordinates in a sequence in-place.
- </summary>
- <param name="seq">The coordinate sequence to reverse.</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateSequences.Swap(NetTopologySuite.Geometries.CoordinateSequence,System.Int32,System.Int32)">
- <summary>
- Swaps two coordinates in a sequence.
- </summary>
- <param name="seq">seq the sequence to modify</param>
- <param name="i">the index of a coordinate to swap</param>
- <param name="j">the index of a coordinate to swap</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateSequences.Copy(NetTopologySuite.Geometries.CoordinateSequence,System.Int32,NetTopologySuite.Geometries.CoordinateSequence,System.Int32,System.Int32)">
- <summary>
- Copies a section of a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/> to another <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>.
- The sequences may have different dimensions;
- in this case only the common dimensions are copied.
- </summary>
- <param name="src">The sequence to copy coordinates from</param>
- <param name="srcPos">The starting index of the coordinates to copy</param>
- <param name="dest">The sequence to which the coordinates should be copied to</param>
- <param name="destPos">The starting index of the coordinates in <see paramref="dest"/></param>
- <param name="length">The number of coordinates to copy</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateSequences.TryRawCopy(NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence,System.Int32,NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence,System.Int32,System.Int32)">
- <summary>
- Copies a section of a <see cref="T:NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence"/> to another <see cref="T:NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence"/>.
- The sequences must have same dimensions.
- </summary>
- <param name="src">The sequence to copy coordinates from</param>
- <param name="srcPos">The starting index of the coordinates to copy</param>
- <param name="dest">The sequence to which the coordinates should be copied to</param>
- <param name="destPos">The starting index of the coordinates in <see paramref="dest"/></param>
- <param name="length">The number of coordinates to copy</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateSequences.TryRawCopy(NetTopologySuite.Geometries.Implementation.PackedFloatCoordinateSequence,System.Int32,NetTopologySuite.Geometries.Implementation.PackedFloatCoordinateSequence,System.Int32,System.Int32)">
- <summary>
- Copies a section of a <see cref="T:NetTopologySuite.Geometries.Implementation.PackedFloatCoordinateSequence"/> to another <see cref="T:NetTopologySuite.Geometries.Implementation.PackedFloatCoordinateSequence"/>.
- The sequences must have same dimensions.
- </summary>
- <param name="src">The sequence to copy coordinates from</param>
- <param name="srcPos">The starting index of the coordinates to copy</param>
- <param name="dest">The sequence to which the coordinates should be copied to</param>
- <param name="destPos">The starting index of the coordinates in <see paramref="dest"/></param>
- <param name="length">The number of coordinates to copy</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateSequences.TryRawCopy(NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence,System.Int32,NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence,System.Int32,System.Int32)">
- <summary>
- Copies a section of a <see cref="T:NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence"/> to another <see cref="T:NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence"/>.
- The sequences must have same dimensions.
- </summary>
- <param name="src">The sequence to copy coordinates from</param>
- <param name="srcPos">The starting index of the coordinates to copy</param>
- <param name="dest">The sequence to which the coordinates should be copied to</param>
- <param name="destPos">The starting index of the coordinates in <see paramref="dest"/></param>
- <param name="length">The number of coordinates to copy</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateSequences.CopyCoord(NetTopologySuite.Geometries.CoordinateSequence,System.Int32,NetTopologySuite.Geometries.CoordinateSequence,System.Int32)">
- <summary>
- Copies a coordinate of a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/> to another <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>.
- The sequences may have different dimensions;
- in this case only the common dimensions are copied.
- </summary>
- <param name="src">The sequence to copy coordinate from</param>
- <param name="srcPos">The index of the coordinate to copy</param>
- <param name="dest">The sequence to which the coordinate should be copied to</param>
- <param name="destPos">The index of the coordinate in <see paramref="dest"/></param>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateSequences.CopyCoord(NetTopologySuite.Geometries.CoordinateSequence,System.Int32,NetTopologySuite.Geometries.CoordinateSequence,System.Int32,System.Int32,System.Int32)">
- <summary>
- Copies a coordinate of a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/> to another <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>.
- The sequences may have different dimensions;
- in this case only the common dimensions are copied.
- </summary>
- <param name="src">The sequence to copy coordinate from</param>
- <param name="srcPos">The index of the coordinate to copy</param>
- <param name="dest">The sequence to which the coordinate should be copied to</param>
- <param name="destPos">The index of the coordinate in <see paramref="dest"/></param>
- <param name="numSpatial">The number of spatial ordinates to copy</param>
- <param name="numMeasures">The number of measure ordinates to copy</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateSequences.IsRing(NetTopologySuite.Geometries.CoordinateSequence)">
- <summary>
- Tests whether a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/> forms a valid <see cref="T:NetTopologySuite.Geometries.LinearRing"/>,
- by checking the sequence length and closure
- (whether the first and last points are identical in 2D).
- Self-intersection is not checked.
- </summary>
- <param name="seq">The sequence to test</param>
- <returns>True if the sequence is a ring</returns>
- <seealso cref="T:NetTopologySuite.Geometries.LinearRing"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateSequences.EnsureValidRing(NetTopologySuite.Geometries.CoordinateSequenceFactory,NetTopologySuite.Geometries.CoordinateSequence)">
- <summary>
- Ensures that a CoordinateSequence forms a valid ring,
- returning a new closed sequence of the correct length if required.
- If the input sequence is already a valid ring, it is returned
- without modification.
- If the input sequence is too short or is not closed,
- it is extended with one or more copies of the start point.
- </summary>
- <param name="fact">The CoordinateSequenceFactory to use to create the new sequence</param>
- <param name="seq">The sequence to test</param>
- <returns>The original sequence, if it was a valid ring, or a new sequence which is valid.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateSequences.Extend(NetTopologySuite.Geometries.CoordinateSequenceFactory,NetTopologySuite.Geometries.CoordinateSequence,System.Int32)">
- <summary>
- Extends a given <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>.
- <para/>
- Because coordinate sequences are fix in size, extending is done by
- creating a new coordinate sequence of the requested size.
- <para/>
- The new, trailing coordinate entries (if any) are filled with the last
- coordinate of the input sequence
- </summary>
- <param name="fact">The factory to use when creating the new sequence.</param>
- <param name="seq">The sequence to extend.</param>
- <param name="size">The required size of the extended sequence</param>
- <returns>The extended sequence</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateSequences.IsEqual(NetTopologySuite.Geometries.CoordinateSequence,NetTopologySuite.Geometries.CoordinateSequence)">
- <summary>
- Tests whether two <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>s are equal.
- To be equal, the sequences must be the same length.
- They do not need to be of the same dimension,
- but the ordinate values for the smallest dimension of the two
- must be equal.
- Two <c>NaN</c> ordinates values are considered to be equal.
- </summary>
- <param name="seq1">a CoordinateSequence</param>
- <param name="seq2">a CoordinateSequence</param>
- <returns><c>true</c> if the sequences are equal in the common dimensions</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateSequences.IsEqualAt(NetTopologySuite.Geometries.CoordinateSequence,System.Int32,NetTopologySuite.Geometries.CoordinateSequence,System.Int32)">
- <summary>
- Tests whether two <c>Coordinate</c>s <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>s are equal.
- They do not need to be of the same dimension,
- but the ordinate values for the common ordinates of the two
- must be equal.
- Two <c>NaN</c> ordinates values are considered to be equal.
- </summary>
- <param name="seq1">A CoordinateSequence</param>
- <param name="pos1">The index of the <c>Coordinate</c> in <paramref name="seq1"/>.</param>
- <param name="seq2">a CoordinateSequence</param>
- <param name="pos2">The index of the <c>Coordinate</c> in <paramref name="seq2"/>.</param>
- <returns><c>true</c> if the sequences are equal in the common dimensions</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateSequences.IsEqualAt(NetTopologySuite.Geometries.CoordinateSequence,System.Int32,NetTopologySuite.Geometries.CoordinateSequence,System.Int32,System.Int32,System.Int32)">
- <summary>
- Tests whether two <c>Coordinate</c>s <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>s are equal.
- They do not need to be of the same dimension,
- but the ordinate values for the common ordinates of the two
- must be equal.
- Two <c>NaN</c> ordinates values are considered to be equal.
- </summary>
- <param name="seq1">A CoordinateSequence</param>
- <param name="pos1">The index of the <c>Coordinate</c> in <paramref name="seq1"/>.</param>
- <param name="seq2">a CoordinateSequence</param>
- <param name="pos2">The index of the <c>Coordinate</c> in <paramref name="seq2"/>.</param>
- <param name="numSpatial">The number of spatial ordinates to compare</param>
- <param name="numMeasures">The number of measure ordinates to compare</param>
- <returns><c>true</c> if the sequences are equal in the common dimensions</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateSequences.ToString(NetTopologySuite.Geometries.CoordinateSequence)">
- <summary>
- Creates a string representation of a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>.
- The format is:
- <para>
- ( ord0,ord1.. ord0,ord1,... ... )
- </para>
- </summary>
- <param name="cs">the sequence to output</param>
- <returns>the string representation of the sequence</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateSequences.MinCoordinate(NetTopologySuite.Geometries.CoordinateSequence)">
- <summary>
- Returns the minimum coordinate, using the usual lexicographic comparison.
- </summary>
- <param name="seq">The coordinate sequence to search</param>
- <returns>The minimum coordinate in the sequence, found using <see cref="M:NetTopologySuite.Geometries.Coordinate.CompareTo(NetTopologySuite.Geometries.Coordinate)"/></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateSequences.MinCoordinateIndex(NetTopologySuite.Geometries.CoordinateSequence)">
- <summary>
- Returns the index of the minimum coordinate of the whole
- coordinate sequence, using the usual lexicographic comparison.
- </summary>
- <param name="seq">The coordinate sequence to search</param>
- <returns>The index of the minimum coordinate in the sequence, found using <see cref="M:NetTopologySuite.Geometries.Coordinate.CompareTo(NetTopologySuite.Geometries.Coordinate)"/></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateSequences.MinCoordinateIndex(NetTopologySuite.Geometries.CoordinateSequence,System.Int32,System.Int32)">
- <summary>
- Returns the index of the minimum coordinate of a part of
- the coordinate sequence (defined by <paramref name="from"/>
- and <paramref name="to"/>), using the usual lexicographic
- comparison.
- </summary>
- <param name="seq">The coordinate sequence to search</param>
- <param name="from">The lower search index</param>
- <param name="to">The upper search index</param>
- <returns>The index of the minimum coordinate in the sequence, found using <see cref="M:NetTopologySuite.Geometries.Coordinate.CompareTo(NetTopologySuite.Geometries.Coordinate)"/></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateSequences.Scroll(NetTopologySuite.Geometries.CoordinateSequence,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Shifts the positions of the coordinates until <c>firstCoordinate</c> is first.
- </summary>
- <param name="seq">The coordinate sequence to rearrange</param>
- <param name="firstCoordinate">The coordinate to make first"></param>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateSequences.Scroll(NetTopologySuite.Geometries.CoordinateSequence,System.Int32)">
- <summary>
- Shifts the positions of the coordinates until the coordinate at <c>firstCoordinateIndex</c>
- is first.
- </summary>
- <param name="seq">The coordinate sequence to rearrange</param>
- <param name="indexOfFirstCoordinate">The index of the coordinate to make first</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateSequences.Scroll(NetTopologySuite.Geometries.CoordinateSequence,System.Int32,System.Boolean)">
- <summary>
- Shifts the positions of the coordinates until the coordinate at <c>firstCoordinateIndex</c>
- is first.
- </summary>
- <param name="seq">The coordinate sequence to rearrange</param>
- <param name="indexOfFirstCoordinate">The index of the coordinate to make first</param>
- <param name="ensureRing">Makes sure that <paramref name="seq"/> will be a closed ring upon exit</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateSequences.IndexOf(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.CoordinateSequence)">
- <summary>
- Returns the index of <c>coordinate</c> in a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>
- The first position is 0; the second, 1; etc.
- </summary>
- <param name="coordinate">The <c>Coordinate</c> to search for</param>
- <param name="seq">The coordinate sequence to search</param>
- <returns>
- The position of <c>coordinate</c>, or -1 if it is not found
- </returns>
- </member>
- <member name="T:NetTopologySuite.Geometries.CoordinateZ">
- <summary>
- A lightweight class used to store coordinates on the 2-dimensional Cartesian plane
- and an additional z-ordinate (<see cref="P:NetTopologySuite.Geometries.CoordinateZ.Z"/>) value.
- <para>
- This base data object is suitable for use with coordinate sequences with
- <c>dimension</c> = 3 and <c>measures</c> = 0.
- </para>
- </summary><remarks>
- It is distinct from <see cref="T:NetTopologySuite.Geometries.Point"/>, which is a subclass of <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
- Unlike objects of type <see cref="T:NetTopologySuite.Geometries.Point"/> (which contain additional
- information such as an envelope, a precision model, and spatial reference
- system information), a <c>CoordinateZ</c> only contains ordinate values
- and properties.
- <para/>
- <c>CoordinateZ</c>s are two-dimensional points, with an additional Z-ordinate.
- If an Z-ordinate value is not specified or not defined,
- constructed coordinates have a Z-ordinate of <c>NaN</c>
- (which is also the value of <see cref="F:NetTopologySuite.Geometries.Coordinate.NullOrdinate"/>).
- <para/>
- Apart from the basic accessor functions, NTS supports
- only specific operations involving the Z-ordinate.
- <para/>
- Implementations may optionally support Z-ordinate and M-measure values
- as appropriate for a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>. Use of <see cref="P:NetTopologySuite.Geometries.CoordinateZ.Z"/>
- and <see cref="P:NetTopologySuite.Geometries.Coordinate.M"/> setters or <see cref="P:NetTopologySuite.Geometries.CoordinateZ.this[int]" /> indexer are recommended.
- </remarks>
- </member>
- <member name="P:NetTopologySuite.Geometries.CoordinateZ.Z">
- <summary>
- Gets or sets the Z-ordinate value.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateZ.#ctor(System.Double,System.Double,System.Double)">
- <summary>
- Constructs a <c>CoordinateZ</c> at (x,y,z).
- </summary>
- <param name="x">The X value</param>
- <param name="y">The Y value</param>
- <param name="z">The Z value</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateZ.#ctor">
- <summary>
- Constructs a <c>CoordinateZ</c> at (0,0,NaN).
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateZ.#ctor(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Constructs a <c>CoordinateZ</c> having the same (x,y) values as
- <paramref name="c"/>.
- </summary>
- <param name="c"><c>Coordinate</c> to copy.</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateZ.#ctor(System.Double,System.Double)">
- <summary>
- Constructs a <c>CoordinateZ</c> at (x,y,NaN).
- </summary>
- <param name="x">X value.</param>
- <param name="y">Y value.</param>
- </member>
- <member name="P:NetTopologySuite.Geometries.CoordinateZ.Item(System.Int32)">
- <summary>
- Gets or sets the ordinate value for the given index.
- </summary>
- <remarks>
- The base implementation supports 0 (X), 1 (Y) and 2 (Z) as values for the index.
- </remarks>
- <param name="ordinateIndex">The ordinate index</param>
- <returns>The ordinate value</returns>
- <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="ordinateIndex"/> is not in the valid range.</exception>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateZ.op_Implicit(System.ValueTuple{System.Double,System.Double})~NetTopologySuite.Geometries.CoordinateZ">
- <summary>
- Implicit conversion of a <c>Tuple</c> to a <c>CoordinateZ</c>.
- </summary>
- <param name="value"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateZ.op_Implicit(System.ValueTuple{System.Double,System.Double,System.Double})~NetTopologySuite.Geometries.CoordinateZ">
- <summary>
- Implicit conversion of a <c>Tuple</c> to a <c>CoordinateZ</c>.
- </summary>
- <param name="value"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateZ.Deconstruct(System.Double@,System.Double@,System.Double@)">
- <summary>
- Deconstructs this <c>CoordinateZ</c> into its x, y and z values.
- </summary>
- <param name="x">The x-ordinate value</param>
- <param name="y">The y-ordinate value</param>
- <param name="z">The z-ordinate value</param>
- </member>
- <member name="P:NetTopologySuite.Geometries.CoordinateZ.CoordinateValue">
- <summary>
- Gets/Sets <c>CoordinateZ</c>s (x,y,z) values.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateZ.Create(System.Double,System.Double,System.Double,System.Double)">
- <summary>
- Create a Coordinate of the same type as this Coordinate,
- using the provided values for <paramref name="x"/>, <paramref name="y"/> and <paramref name="z"/>.
- </summary>
- <remarks>A provided value for <paramref name="m"/> will be silently dropped.</remarks>
- <param name="x">The x-ordinate value, if not provided, it is <c>0d</c>.</param>
- <param name="y">The y-ordinate value, if not provided, it is <c>0d</c>.</param>
- <param name="z">The z-ordinate value, if not provided, it is <see cref="F:NetTopologySuite.Geometries.Coordinate.NullOrdinate"/>.</param>
- <param name="m">The m-ordinate value, if not provided, it is <see cref="F:NetTopologySuite.Geometries.Coordinate.NullOrdinate"/>.</param>
- <returns>A new <see cref="T:NetTopologySuite.Geometries.CoordinateZ"/></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateZ.Equals3D(NetTopologySuite.Geometries.CoordinateZ)">
- <summary>
- Returns <c>true</c> if <paramref name="other"/>
- has the same values for X, Y and Z.
- </summary>
- <param name="other">A <see cref="T:NetTopologySuite.Geometries.CoordinateZ"/> with which to do the 3D comparison.</param>
- <returns>
- <c>true</c> if <paramref name="other"/> is a <see cref="T:NetTopologySuite.Geometries.CoordinateZ"/>
- with the same values for X, Y and Z.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateZ.EqualInZ(NetTopologySuite.Geometries.CoordinateZ,System.Double)">
- <summary>
- Tests if another CoordinateZ has the same value for Z, within a tolerance.
- </summary>
- <param name="c">A <see cref="T:NetTopologySuite.Geometries.CoordinateZ"/>.</param>
- <param name="tolerance">The tolerance value.</param>
- <returns><c>true</c> if the Z ordinates are within the given tolerance.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateZ.ToString">
- <summary>
- Returns a <c>string</c> of the form <i>(x, y, z)</i> .
- </summary>
- <returns><c>string</c> of the form <i>(x, y, z)</i></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateZ.Distance3D(NetTopologySuite.Geometries.CoordinateZ)">
- <summary>
- Computes the 3-dimensional Euclidean distance to another location.
- </summary>
- <param name="c">A <see cref="T:NetTopologySuite.Geometries.CoordinateZ"/> with which to do the distance comparison.</param>
- <returns>the 3-dimensional Euclidean distance between the locations.</returns>
- </member>
- <member name="T:NetTopologySuite.Geometries.CoordinateZM">
- <summary>
- A lightweight class used to store coordinates on the 2-dimensional Cartesian plane
- and additional z- and m-ordinate values (<see cref="P:NetTopologySuite.Geometries.CoordinateZ.Z"/>, <see cref="P:NetTopologySuite.Geometries.CoordinateZM.M"/>).
- <para>
- This data object is suitable for use with coordinate sequences with
- <c>dimension</c> = 4 and <c>measures</c> = 1.
- </para>
- </summary>
- <remarks>
- It is distinct from <see cref="T:NetTopologySuite.Geometries.Point"/>, which is a subclass of <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
- Unlike objects of type <see cref="T:NetTopologySuite.Geometries.Point"/> (which contain additional
- information such as an envelope, a precision model, and spatial reference
- system information), a <c>CoordinateZM</c> only contains ordinate values
- and properties.
- <para/>
- <c>CoordinateZM</c>s are two-dimensional points, with an additional Z-ordinate.
- If an Z-ordinate value is not specified or not defined,
- constructed coordinates have a Z-ordinate of <c>NaN</c>
- (which is also the value of <see cref="F:NetTopologySuite.Geometries.Coordinate.NullOrdinate"/>).
- <para/>
- Apart from the basic accessor functions, NTS supports
- only specific operations involving the Z- and/or M-ordinate.
- <para/>
- Implementations may optionally support Z-ordinate and M-measure values
- as appropriate for a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>. Use of <see cref="P:NetTopologySuite.Geometries.CoordinateZ.Z"/>
- and <see cref="P:NetTopologySuite.Geometries.CoordinateZM.M"/> setters or <see cref="P:NetTopologySuite.Geometries.CoordinateZM.this[int]" /> indexer are recommended.
- </remarks>
- </member>
- <member name="P:NetTopologySuite.Geometries.CoordinateZM.M">
- <summary>
- Gets or sets the measure-ordinate value.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateZM.#ctor(System.Double,System.Double,System.Double,System.Double)">
- <summary>
- Constructs a <c>CoordinateZM</c> at (x,y,z).
- </summary>
- <param name="x">The X value</param>
- <param name="y">The Y value</param>
- <param name="z">The Z value</param>
- <param name="m">The Measure value</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateZM.#ctor">
- <summary>
- Constructs a <c>CoordinateZM</c> at (0,0,NaN,NaN).
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateZM.#ctor(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Constructs a <c>CoordinateZM</c> having the same (x,y) values as
- <paramref name="c"/>.
- </summary>
- <param name="c"><c>Coordinate</c> to copy.</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateZM.#ctor(System.Double,System.Double)">
- <summary>
- Constructs a <c>CoordinateZM</c> at (x,y,NaN).
- </summary>
- <param name="x">X value.</param>
- <param name="y">Y value.</param>
- </member>
- <member name="P:NetTopologySuite.Geometries.CoordinateZM.Item(System.Int32)">
- <summary>
- Gets or sets the ordinate value for the given index.
- </summary>
- <remarks>
- The base implementation supports 0 (X), 1 (Y) and 2 (Z) as values for the index.
- </remarks>
- <param name="ordinateIndex">The ordinate index</param>
- <returns>The ordinate value</returns>
- <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="ordinateIndex"/> is not in the valid range.</exception>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateZM.op_Implicit(System.ValueTuple{System.Double,System.Double})~NetTopologySuite.Geometries.CoordinateZM">
- <summary>
- Implicit conversion of a <c>Tuple</c> to a <c>CoordinateZM</c>.
- </summary>
- <param name="value"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateZM.op_Implicit(System.ValueTuple{System.Double,System.Double,System.Double,System.Double})~NetTopologySuite.Geometries.CoordinateZM">
- <summary>
- Implicit conversion of a <c>Tuple</c> to a <c>CoordinateZM</c>.
- </summary>
- <param name="value"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateZM.Deconstruct(System.Double@,System.Double@,System.Double@,System.Double@)">
- <summary>
- Deconstructs this <c>CoordinateZM</c> into its x, y, z and values.
- </summary>
- <param name="x">The x-ordinate value</param>
- <param name="y">The y-ordinate value</param>
- <param name="z">The z-ordinate value</param>
- <param name="m"></param>
- </member>
- <member name="P:NetTopologySuite.Geometries.CoordinateZM.CoordinateValue">
- <summary>
- Gets/Sets <c>CoordinateZM</c>s (x,y,z) values.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateZM.Create(System.Double,System.Double,System.Double,System.Double)">
- <summary>
- Create a Coordinate of the same type as this Coordinate,
- using the provided values for <paramref name="x"/>, <paramref name="y"/>, <paramref name="z"/> and <paramref name="m"/>.
- </summary>
- <param name="x">The x-ordinate value, if not provided, it is <c>0d</c>.</param>
- <param name="y">The y-ordinate value, if not provided, it is <c>0d</c>.</param>
- <param name="z">The z-ordinate value, if not provided, it is <see cref="F:NetTopologySuite.Geometries.Coordinate.NullOrdinate"/>.</param>
- <param name="m">The m-ordinate value, if not provided, it is <see cref="F:NetTopologySuite.Geometries.Coordinate.NullOrdinate"/>.</param>
- <returns>A new <see cref="T:NetTopologySuite.Geometries.CoordinateZM"/></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.CoordinateZM.ToString">
- <summary>
- Returns a <c>string</c> of the form <i>(x, y, z, m=m)</i> .
- </summary>
- <returns><c>string</c> of the form <i>(x, y, z, m=m)</i></returns>
- </member>
- <member name="T:NetTopologySuite.Geometries.Dimension">
- <summary>
- Provides constants representing the dimensions of a point, a curve and a surface.
- </summary>
- <remarks>
- Also provides constants representing the dimensions of the empty geometry and
- non-empty geometries, and the wildcard constant <see cref="F:NetTopologySuite.Geometries.Dimension.Dontcare"/> meaning "any dimension".
- These constants are used as the entries in <see cref="T:NetTopologySuite.Geometries.IntersectionMatrix"/>s.
- </remarks>
- </member>
- <member name="F:NetTopologySuite.Geometries.Dimension.Point">
- <summary>
- Dimension value of a point (0).
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Dimension.P">
- <summary>
- Dimension value of a point (0).
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Dimension.Curve">
- <summary>
- Dimension value of a curve (1).
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Dimension.L">
- <summary>
- Dimension value of a curve (1).
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Dimension.Surface">
- <summary>
- Dimension value of a surface (2).
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Dimension.A">
- <summary>
- Dimension value of a surface (2).
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Dimension.False">
- <summary>
- Dimension value of a empty point (-1).
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Dimension.True">
- <summary>
- Dimension value of non-empty geometries (= {Point,Curve,Surface}).
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Dimension.Dontcare">
- <summary>
- Dimension value for any dimension (= {False, True}).
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Dimension.Unknown">
- <summary>
- Dimension value for a unknown spatial object
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Dimension.Collapse">
- <summary>
- Dimension value for a collapsed surface or curve
- </summary>
- </member>
- <member name="T:NetTopologySuite.Geometries.DimensionUtility">
- <summary>
- Class containing static methods for conversions
- between dimension values and characters.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.DimensionUtility.SymFalse">
- <summary>
- Symbol for the FALSE pattern matrix entry
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.DimensionUtility.SymTrue">
- <summary>
- Symbol for the TRUE pattern matrix entry
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.DimensionUtility.SymDontcare">
- <summary>
- Symbol for the DONTCARE pattern matrix entry
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.DimensionUtility.SymP">
- <summary>
- Symbol for the P (dimension 0) pattern matrix entry
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.DimensionUtility.SymL">
- <summary>
- Symbol for the L (dimension 1) pattern matrix entry
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.DimensionUtility.SymA">
- <summary>
- Symbol for the A (dimension 2) pattern matrix entry
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.DimensionUtility.ToDimensionSymbol(NetTopologySuite.Geometries.Dimension)">
- <summary>
- Converts the dimension value to a dimension symbol,
- for example, <c>True => 'T'</c>
- </summary>
- <param name="dimensionValue">Number that can be stored in the <c>IntersectionMatrix</c>.
- Possible values are <c>True, False, Dontcare, 0, 1, 2</c>.</param>
- <returns>Character for use in the string representation of an <c>IntersectionMatrix</c>.
- Possible values are <c>T, F, * , 0, 1, 2</c>.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.DimensionUtility.ToDimensionValue(System.Char)">
- <summary>
- Converts the dimension symbol to a dimension value,
- for example, <c>'*' => Dontcare</c>
- </summary>
- <param name="dimensionSymbol">Character for use in the string representation of an <c>IntersectionMatrix</c>.
- Possible values are <c>T, F, * , 0, 1, 2</c>.</param>
- <returns>Number that can be stored in the <c>IntersectionMatrix</c>.
- Possible values are <c>True, False, Dontcare, 0, 1, 2</c>.</returns>
- </member>
- <member name="T:NetTopologySuite.Geometries.Envelope">
- <summary>
- Defines a rectangular region of the 2D coordinate plane.
- </summary>
- <remarks>
- It is often used to represent the bounding box of a <c>Geometry</c>,
- e.g. the minimum and maximum x and y values of the <c>Coordinate</c>s.
- Note that Envelopes support infinite or half-infinite regions, by using the values of
- <c>Double.PositiveInfinity</c> and <c>Double.NegativeInfinity</c>.
- When Envelope objects are created or initialized,
- the supplied extent values are automatically sorted into the correct order.
- </remarks>
- </member>
- <member name="M:NetTopologySuite.Geometries.Envelope.Intersects(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Test the point q to see whether it intersects the Envelope
- defined by p1-p2.
- </summary>
- <param name="p1">One extremal point of the envelope.</param>
- <param name="p2">Another extremal point of the envelope.</param>
- <param name="q">Point to test for intersection.</param>
- <returns><c>true</c> if q intersects the envelope p1-p2.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Envelope.Intersects(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Tests whether the envelope defined by p1-p2
- and the envelope defined by q1-q2
- intersect.
- </summary>
- <param name="p1">One extremal point of the envelope Point.</param>
- <param name="p2">Another extremal point of the envelope Point.</param>
- <param name="q1">One extremal point of the envelope Q.</param>
- <param name="q2">Another extremal point of the envelope Q.</param>
- <returns><c>true</c> if Q intersects Point</returns>
- </member>
- <member name="F:NetTopologySuite.Geometries.Envelope._minX">
- <summary>
- The minimum x-coordinate
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Envelope._maxX">
- <summary>
- The maximum x-coordinate
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Envelope._minY">
- <summary>
- The minimum y-coordinate
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Envelope._maxY">
- <summary>
- The maximum y-coordinate
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.Envelope.#ctor">
- <summary>
- Creates a null <c>Envelope</c>.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.Envelope.#ctor(System.Double,System.Double,System.Double,System.Double)">
- <summary>
- Creates an <c>Envelope</c> for a region defined by maximum and minimum values.
- </summary>
- <param name="x1">The first x-value.</param>
- <param name="x2">The second x-value.</param>
- <param name="y1">The first y-value.</param>
- <param name="y2">The second y-value.</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Envelope.#ctor(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Creates an <c>Envelope</c> for a region defined by two Coordinates.
- </summary>
- <param name="p1">The first Coordinate.</param>
- <param name="p2">The second Coordinate.</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Envelope.#ctor(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Creates an <c>Envelope</c> for a region defined by a single Coordinate.
- </summary>
- <param name="p">The Coordinate.</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Envelope.#ctor(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Coordinate})">
- <summary>
- Creates an <c>Envelope</c> for a region defined by an enumeration of <c>Coordinate</c>s.
- </summary>
- <param name="pts">The <c>Coordinates</c>.</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Envelope.#ctor(NetTopologySuite.Geometries.CoordinateSequence)">
- <summary>
- Creates an <c>Envelope</c> for a region defined by a <c>CoordinateSequence</c>s.
- </summary>
- <param name="sequence">The <c>CoordinateSequence</c>.</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Envelope.#ctor(NetTopologySuite.Geometries.Envelope)">
- <summary>
- Create an <c>Envelope</c> from an existing Envelope.
- </summary>
- <param name="env">The Envelope to initialize from.</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Envelope.Init">
- <summary>
- Initialize to a null <c>Envelope</c>.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.Envelope.Init(System.Double,System.Double,System.Double,System.Double)">
- <summary>
- Initialize an <c>Envelope</c> for a region defined by maximum and minimum values.
- </summary>
- <param name="x1">The first x-value.</param>
- <param name="x2">The second x-value.</param>
- <param name="y1">The first y-value.</param>
- <param name="y2">The second y-value.</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Envelope.Init(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Initialize an <c>Envelope</c> for a region defined by two Coordinates.
- </summary>
- <param name="p1">The first Coordinate.</param>
- <param name="p2">The second Coordinate.</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Envelope.Init(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Initialize an <c>Envelope</c> for a region defined by a single Coordinate.
- </summary>
- <param name="p">The Coordinate.</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Envelope.Init(NetTopologySuite.Geometries.Envelope)">
- <summary>
- Initialize an <c>Envelope</c> from an existing Envelope.
- </summary>
- <param name="env">The Envelope to initialize from.</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Envelope.SetToNull">
- <summary>
- Makes this <c>Envelope</c> a "null" envelope..
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.Envelope.IsNull">
- <summary>
- Returns <c>true</c> if this <c>Envelope</c> is a "null" envelope.
- </summary>
- <returns>
- <c>true</c> if this <c>Envelope</c> is uninitialized
- or is the envelope of the empty point.
- </returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.Envelope.Width">
- <summary>
- Returns the difference between the maximum and minimum x values.
- </summary>
- <returns>max x - min x, or 0 if this is a null <c>Envelope</c>.</returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.Envelope.Height">
- <summary>
- Returns the difference between the maximum and minimum y values.
- </summary>
- <returns>max y - min y, or 0 if this is a null <c>Envelope</c>.</returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.Envelope.Diameter">
- <summary>
- Gets the length of the diameter (diagonal) of the envelope.
- </summary>
- <returns>The diameter length</returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.Envelope.MinX">
- <summary>
- Returns the <c>Envelope</c>s minimum x-value. min x > max x
- indicates that this is a null <c>Envelope</c>.
- </summary>
- <returns>The minimum x-coordinate.</returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.Envelope.MaxX">
- <summary>
- Returns the <c>Envelope</c>s maximum x-value. min x > max x
- indicates that this is a null <c>Envelope</c>.
- </summary>
- <returns>The maximum x-coordinate.</returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.Envelope.MinY">
- <summary>
- Returns the <c>Envelope</c>s minimum y-value. min y > max y
- indicates that this is a null <c>Envelope</c>.
- </summary>
- <returns>The minimum y-coordinate.</returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.Envelope.MaxY">
- <summary>
- Returns the <c>Envelope</c>s maximum y-value. min y > max y
- indicates that this is a null <c>Envelope</c>.
- </summary>
- <returns>The maximum y-coordinate.</returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.Envelope.Area">
- <summary>
- Gets the area of this envelope.
- </summary>
- <returns>The area of the envelope, or 0.0 if envelope is null</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Envelope.ExpandBy(System.Double)">
- <summary>
- Expands this envelope by a given distance in all directions.
- Both positive and negative distances are supported.
- </summary>
- <param name="distance">The distance to expand the envelope.</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Envelope.ExpandBy(System.Double,System.Double)">
- <summary>
- Expands this envelope by a given distance in all directions.
- Both positive and negative distances are supported.
- </summary>
- <param name="deltaX">The distance to expand the envelope along the the X axis.</param>
- <param name="deltaY">The distance to expand the envelope along the the Y axis.</param>
- </member>
- <member name="P:NetTopologySuite.Geometries.Envelope.MinExtent">
- <summary>
- Gets the minimum extent of this envelope across both dimensions.
- </summary>
- <returns></returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.Envelope.MaxExtent">
- <summary>
- Gets the maximum extent of this envelope across both dimensions.
- </summary>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Envelope.ExpandToInclude(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Enlarges this <c>Envelope</c> so that it contains
- the given <see cref="T:NetTopologySuite.Geometries.Coordinate"/>.
- Has no effect if the point is already on or within the envelope.
- </summary>
- <param name="p">The Coordinate.</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Envelope.ExpandToInclude(System.Double,System.Double)">
- <summary>
- Enlarges this <c>Envelope</c> so that it contains
- the given <see cref="T:NetTopologySuite.Geometries.Coordinate"/>.
- </summary>
- <remarks>Has no effect if the point is already on or within the envelope.</remarks>
- <param name="x">The value to lower the minimum x to or to raise the maximum x to.</param>
- <param name="y">The value to lower the minimum y to or to raise the maximum y to.</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Envelope.ExpandToInclude(NetTopologySuite.Geometries.Envelope)">
- <summary>
- Enlarges this <c>Envelope</c> so that it contains
- the <c>other</c> Envelope.
- Has no effect if <c>other</c> is wholly on or
- within the envelope.
- </summary>
- <param name="other">the <c>Envelope</c> to expand to include.</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Envelope.ExpandedBy(NetTopologySuite.Geometries.Envelope)">
- <summary>
- Enlarges this <c>Envelope</c> so that it contains
- the <c>other</c> Envelope.
- Has no effect if <c>other</c> is wholly on or
- within the envelope.
- </summary>
- <param name="other">the <c>Envelope</c> to expand to include.</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Envelope.Translate(System.Double,System.Double)">
- <summary>
- Translates this envelope by given amounts in the X and Y direction.
- </summary>
- <param name="transX">The amount to translate along the X axis.</param>
- <param name="transY">The amount to translate along the Y axis.</param>
- </member>
- <member name="P:NetTopologySuite.Geometries.Envelope.Centre">
- <summary>
- Computes the coordinate of the centre of this envelope (as long as it is non-null).
- </summary>
- <returns>
- The centre coordinate of this envelope,
- or <c>null</c> if the envelope is null.
- </returns>.
- </member>
- <member name="M:NetTopologySuite.Geometries.Envelope.Intersection(NetTopologySuite.Geometries.Envelope)">
- <summary>
- Computes the intersection of two <see cref="T:NetTopologySuite.Geometries.Envelope"/>s.
- </summary>
- <param name="env">The envelope to intersect with</param>
- <returns>
- A new Envelope representing the intersection of the envelopes (this will be
- the null envelope if either argument is null, or they do not intersect
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Envelope.Intersects(NetTopologySuite.Geometries.Envelope)">
- <summary>
- Check if the region defined by <c>other</c>
- intersects the region of this <c>Envelope</c>.
- <para/>
- A null envelope never intersects.
- </summary>
- <param name="other">The <c>Envelope</c> which this <c>Envelope</c> is
- being checked for intersecting.
- </param>
- <returns>
- <c>true</c> if the <c>Envelope</c>s intersect.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Envelope.Intersects(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Check if the point <c>p</c> overlaps (lies inside) the region of this <c>Envelope</c>.
- </summary>
- <param name="p"> the <c>Coordinate</c> to be tested.</param>
- <returns><c>true</c> if the point overlaps this <c>Envelope</c>.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Envelope.Intersects(System.Double,System.Double)">
- <summary>
- Check if the point <c>(x, y)</c> overlaps (lies inside) the region of this <c>Envelope</c>.
- </summary>
- <param name="x"> the x-ordinate of the point.</param>
- <param name="y"> the y-ordinate of the point.</param>
- <returns><c>true</c> if the point overlaps this <c>Envelope</c>.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Envelope.Intersects(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Tests if the extent defined by two extremal points
- intersects the extent of this <c>Envelope</c>.
- </summary>
- <param name="a">A point</param>
- <param name="b">Another point</param>
- <returns><c>true</c> if the extents intersect</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Envelope.Disjoint(NetTopologySuite.Geometries.Envelope)">
- <summary>
- Tests if the region defined by <c>other</c>
- is disjoint from the region of this <c>Envelope</c>.
- </summary>
- <param name="other">The <c>Envelope</c> being checked for disjointness</param>
- <returns><c>true</c> if the <c>Envelope</c>s are disjoint</returns>
- <seealso cref="M:NetTopologySuite.Geometries.Envelope.Intersects(NetTopologySuite.Geometries.Envelope)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Envelope.Contains(NetTopologySuite.Geometries.Envelope)">
- <summary>
- Tests if the <c>Envelope other</c> lies wholely inside this <c>Envelope</c> (inclusive of the boundary).
- </summary>
- <remarks>
- Note that this is <b>not</b> the same definition as the SFS <i>contains</i>,
- which would exclude the envelope boundary.
- </remarks>
- <para>The <c>Envelope</c> to check</para>
- <returns>true if <c>other</c> is contained in this <c>Envelope</c></returns>
- <see cref="M:NetTopologySuite.Geometries.Envelope.Covers(NetTopologySuite.Geometries.Envelope)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Envelope.Contains(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Tests if the given point lies in or on the envelope.
- </summary>
- <remarks>
- Note that this is <b>not</b> the same definition as the SFS <i>contains</i>,
- which would exclude the envelope boundary.
- </remarks>
- <param name="p">the point which this <c>Envelope</c> is being checked for containing</param>
- <returns><c>true</c> if the point lies in the interior or on the boundary of this <c>Envelope</c>. </returns>
- <see cref="M:NetTopologySuite.Geometries.Envelope.Covers(NetTopologySuite.Geometries.Coordinate)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Envelope.Contains(System.Double,System.Double)">
- <summary>
- Tests if the given point lies in or on the envelope.
- </summary>
- <remarks>
- Note that this is <b>not</b> the same definition as the SFS <i>contains</i>, which would exclude the envelope boundary.
- </remarks>
- <param name="x">the x-coordinate of the point which this <c>Envelope</c> is being checked for containing</param>
- <param name="y">the y-coordinate of the point which this <c>Envelope</c> is being checked for containing</param>
- <returns>
- <c>true</c> if <c>(x, y)</c> lies in the interior or on the boundary of this <c>Envelope</c>.
- </returns>
- <see cref="M:NetTopologySuite.Geometries.Envelope.Covers(System.Double,System.Double)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Envelope.ContainsProperly(NetTopologySuite.Geometries.Envelope)">
- <summary>
- Tests if an envelope is properly contained in this one.
- The envelope is properly contained if it is contained
- by this one but not equal to it.
- </summary>
- <param name="other">The envelope to test</param>
- <returns><c>true</c> if the envelope is properly contained</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Envelope.Covers(System.Double,System.Double)">
- <summary>
- Tests if the given point lies in or on the envelope.
- </summary>
- <param name="x">the x-coordinate of the point which this <c>Envelope</c> is being checked for containing</param>
- <param name="y">the y-coordinate of the point which this <c>Envelope</c> is being checked for containing</param>
- <returns> <c>true</c> if <c>(x, y)</c> lies in the interior or on the boundary of this <c>Envelope</c>.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Envelope.Covers(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Tests if the given point lies in or on the envelope.
- </summary>
- <param name="p">the point which this <c>Envelope</c> is being checked for containing</param>
- <returns><c>true</c> if the point lies in the interior or on the boundary of this <c>Envelope</c>.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Envelope.Covers(NetTopologySuite.Geometries.Envelope)">
- <summary>
- Tests if the <c>Envelope other</c> lies wholely inside this <c>Envelope</c> (inclusive of the boundary).
- </summary>
- <param name="other">the <c>Envelope</c> to check</param>
- <returns>true if this <c>Envelope</c> covers the <c>other</c></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Envelope.Distance(NetTopologySuite.Geometries.Envelope)">
- <summary>
- Computes the distance between this and another
- <c>Envelope</c>.
- The distance between overlapping Envelopes is 0. Otherwise, the
- distance is the Euclidean distance between the closest points.
- </summary>
- <returns>The distance between this and another <c>Envelope</c>.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Envelope.Equals(System.Object)">
- <inheritdoc />
- </member>
- <member name="M:NetTopologySuite.Geometries.Envelope.Equals(NetTopologySuite.Geometries.Envelope)">
- <inheritdoc cref="M:System.IEquatable{Envelope}.Equals(Envelope)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Envelope.CompareTo(System.Object)">
- <summary>
- Compares two envelopes using lexicographic ordering.
- The ordering comparison is based on the usual numerical
- comparison between the sequence of ordinates.
- Null envelopes are less than all non-null envelopes.
- </summary>
- <param name="o">An envelope</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Envelope.CompareTo(NetTopologySuite.Geometries.Envelope)">
- <summary>
- Compares two envelopes using lexicographic ordering.
- The ordering comparison is based on the usual numerical
- comparison between the sequence of ordinates.
- Null envelopes are less than all non-null envelopes.
- </summary>
- <param name="env">An envelope</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Envelope.GetHashCode">
- <inheritdoc/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Envelope.ToString">
- <summary>
- Function to get a textual representation of this envelope
- </summary>
- <returns>A textual representation of this envelope</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Envelope.Copy">
- <summary>
- Creates a deep copy of the current envelope.
- </summary>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Envelope.Parse(System.String)">
- <summary>
- Method to parse an envelope from its <see cref="M:NetTopologySuite.Geometries.Envelope.ToString"/> value
- </summary>
- <param name="envelope">The envelope string</param>
- <returns>The envelope</returns>
- </member>
- <member name="T:NetTopologySuite.Geometries.Geometry">
- <summary>
- A representation of a planar, linear vector geometry.
- </summary>
- <remarks>
- <para>
- <h3>Binary Predicates:</h3>
- Because it is not clear at this time what semantics for spatial
- analysis methods involving <c>GeometryCollection</c>s would be useful,
- <c>GeometryCollection</c>s are not supported as arguments to binary
- predicates or the <c>Relate</c> method.
- </para>
- <para>
- <h3>Overlay Methods:</h3>
- The spatial analysis methods will
- return the most specific class possible to represent the result. If the
- result is homogeneous, a <c>Point</c>, <c>LineString</c>, or
- <c>Polygon</c> will be returned if the result contains a single
- element; otherwise, a <c>MultiPoint</c>, <c>MultiLineString</c>,
- or <c>MultiPolygon</c> will be returned. If the result is
- heterogeneous a <c>GeometryCollection</c> will be returned.
- </para>
- <para>
- Representation of Computed Geometries:
- The SFS states that the result
- of a set-theoretic method is the "point-set" result of the usual
- set-theoretic definition of the operation (SFS 3.2.21.1). However, there are
- sometimes many ways of representing a point set as a <c>Geometry</c>.
- The SFS does not specify an unambiguous representation of a given point set
- returned from a spatial analysis method. One goal of NTS is to make this
- specification precise and unambiguous. NTS uses a canonical form for
- <c>Geometry</c>s returned from overlay methods. The canonical
- form is a <c>Geometry</c> which is simple and noded:
- Simple means that the Geometry returned will be simple according to
- the NTS definition of <c>IsSimple</c>.
- Noded applies only to overlays involving <c>LineString</c>s. It
- means that all intersection points on <c>LineString</c>s will be
- present as endpoints of <c>LineString</c>s in the result.
- This definition implies that non-simple geometries which are arguments to
- spatial analysis methods must be subjected to a line-dissolve process to
- ensure that the results are simple.
- </para>
- <para>
- Constructed Points And The Precision Model:
- The results computed by the set-theoretic methods may
- contain constructed points which are not present in the input <c>Geometry</c>s.
- These new points arise from intersections between line segments in the
- edges of the input <c>Geometry</c>s. In the general case it is not
- possible to represent constructed points exactly. This is due to the fact
- that the coordinates of an intersection point may contain twice as many bits
- of precision as the coordinates of the input line segments. In order to
- represent these constructed points explicitly, NTS must truncate them to fit
- the <c>PrecisionModel</c>.
- Unfortunately, truncating coordinates moves them slightly. Line segments
- which would not be coincident in the exact result may become coincident in
- the truncated representation. This in turn leads to "topology collapses" --
- situations where a computed element has a lower dimension than it would in
- the exact result.
- When NTS detects topology collapses during the computation of spatial
- analysis methods, it will throw an exception. If possible the exception will
- report the location of the collapse.
- </para>
- <para>
-
- <h3>Geometry Equality</h3>
- There are two ways of comparing geometries for equality:
- <b>structural equality</b> and <b>topological equality</b>.
- <h4>Structural Equality</h4>
- Structural Equality is provided by the
- <see cref="M:NetTopologySuite.Geometries.Geometry.EqualsExact(NetTopologySuite.Geometries.Geometry)"/> method.
- This implements a comparison based on exact, structural pointwise
- equality.
- The <see cref="M:NetTopologySuite.Geometries.Geometry.Equals(System.Object)"/> is a synonym for this method,
- to provide structural equality semantics for
- use in collections.
- It is important to note that structural pointwise equality
- is easily affected by things like
- ring order and component order. In many situations
- it will be desirable to normalize geometries before
- comparing them (using the <see cref="M:NetTopologySuite.Geometries.Geometry.Normalized"/>
- or <see cref="M:NetTopologySuite.Geometries.Geometry.Normalize"/> methods).
- <see cref="M:NetTopologySuite.Geometries.Geometry.EqualsNormalized(NetTopologySuite.Geometries.Geometry)"/> is provided
- as a convenience method to compute equality over
- normalized geometries, but it is expensive to use.
- Finally, <see cref="M:NetTopologySuite.Geometries.Geometry.EqualsExact(NetTopologySuite.Geometries.Geometry,System.Double)"/>
- allows using a tolerance value for point comparison.
-
- <h4>Topological Equality</h4>
- Topological Equality is provided by the
- <see cref="M:NetTopologySuite.Geometries.Geometry.EqualsTopologically(NetTopologySuite.Geometries.Geometry)"/> method.
- It implements the SFS definition of point-set equality
- defined in terms of the DE-9IM matrix.
- To support the SFS naming convention, the method
- <see cref="M:NetTopologySuite.Geometries.Geometry.Equals(NetTopologySuite.Geometries.Geometry)"/> is also provided as a synonym.
- However, due to the potential for confusion with <see cref="M:NetTopologySuite.Geometries.Geometry.Equals(System.Object)"/>
- its use is discouraged.
- </para>
- <para>
- Since <see cref="M:NetTopologySuite.Geometries.Geometry.Equals(System.Object)"/> and <see cref="M:NetTopologySuite.Geometries.Geometry.GetHashCode"/> are overridden,
- Geometries can be used effectively in .Net collections.
- </para>
- </remarks>
- </member>
- <member name="T:NetTopologySuite.Geometries.Geometry.SortIndexValue">
- <summary>
- An enumeration of sort values for geometries
- </summary>
- <remarks>
- NOTE:<br/>
- For JTS v1.17 the values in this enum have been renamed to 'TYPECODE...'
- In order not to break binary compatibility we did not follow.
- </remarks>
- </member>
- <member name="F:NetTopologySuite.Geometries.Geometry.SortIndexValue.Point">
- <summary>Sort hierarchy value of a <see cref="F:NetTopologySuite.Geometries.Geometry.SortIndexValue.Point"/></summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Geometry.SortIndexValue.MultiPoint">
- <summary>Sort hierarchy value of a <see cref="F:NetTopologySuite.Geometries.Geometry.SortIndexValue.MultiPoint"/></summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Geometry.SortIndexValue.LineString">
- <summary>Sort hierarchy value of a <see cref="F:NetTopologySuite.Geometries.Geometry.SortIndexValue.LineString"/></summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Geometry.SortIndexValue.LinearRing">
- <summary>Sort hierarchy value of a <see cref="F:NetTopologySuite.Geometries.Geometry.SortIndexValue.LinearRing"/></summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Geometry.SortIndexValue.MultiLineString">
- <summary>Sort hierarchy value of a <see cref="F:NetTopologySuite.Geometries.Geometry.SortIndexValue.MultiLineString"/></summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Geometry.SortIndexValue.Polygon">
- <summary>Sort hierarchy value of a <see cref="F:NetTopologySuite.Geometries.Geometry.SortIndexValue.Polygon"/></summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Geometry.SortIndexValue.MultiPolygon">
- <summary>Sort hierarchy value of a <see cref="F:NetTopologySuite.Geometries.Geometry.SortIndexValue.MultiPolygon"/></summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Geometry.SortIndexValue.GeometryCollection">
- <summary>Sort hierarchy value of a <see cref="F:NetTopologySuite.Geometries.Geometry.SortIndexValue.GeometryCollection"/></summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Geometry.TypeNamePoint">
- <summary>
- The name of point geometries
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Geometry.TypeNameMultiPoint">
- <summary>
- The name of multi-point geometries
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Geometry.TypeNameLineString">
- <summary>
- The name of linestring geometries
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Geometry.TypeNameLinearRing">
- <summary>
- The name of linearring geometries
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Geometry.TypeNameMultiLineString">
- <summary>
- The name of multi-linestring geometries
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Geometry.TypeNamePolygon">
- <summary>
- The name of polygon geometries
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Geometry.TypeNameMultiPolygon">
- <summary>
- The name of multi-polygon geometries
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Geometry.TypeNameGeometryCollection">
- <summary>
- The name of geometry collection geometries.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.Geometry.Factory">
- <summary>
- Gets the factory which contains the context in which this point was created.
- </summary>
- <returns>The factory for this point.</returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.Geometry.UserData">
- <summary>
- Gets/Sets the user data object for this point, if any.
- </summary>
- <remarks>
- A simple scheme for applications to add their own custom data to a Geometry.
- An example use might be to add an object representing a Coordinate Reference System.
- Note that user data objects are not present in geometries created by
- construction methods.
- </remarks>
- </member>
- <member name="F:NetTopologySuite.Geometries.Geometry._envelope">
- <summary>
- The bounding box of this <c>Geometry</c>.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.Geometry.SRID">
- <summary>
- Sets the ID of the Spatial Reference System used by the <c>Geometry</c>.
- </summary>
- <remarks>
- <para>
- <b>NOTE:</b> This method should only be used for exceptional circumstances or
- for backwards compatibility. Normally the <c>SRID</c> should be set on the
- <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/> used to <b>create</b> the geometry.
- <c>SRID</c>s set using this method will change the <see cref="P:NetTopologySuite.Geometries.Geometry.Factory"/>.
- </para>
- </remarks>
- <seealso cref="T:NetTopologySuite.Geometries.GeometryFactory"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.#ctor(NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
- Creates a new <c>Geometry</c> via the specified GeometryFactory.
- </summary>
- <param name="factory">The factory</param>
- </member>
- <member name="P:NetTopologySuite.Geometries.Geometry.GeometryType">
- <summary>
- Returns the name of this Geometry's actual class.
- </summary>
- <returns>The name of this <c>Geometry</c>s actual class.</returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.Geometry.OgcGeometryType">
- <summary>
- Gets the OGC geometry type
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.HasNonEmptyElements(NetTopologySuite.Geometries.Geometry[])">
- <summary>
- Returns true if the array contains any non-empty <c>Geometry</c>s.
- </summary>
- <param name="geometries"> an array of <c>Geometry</c>s; no elements may be <c>null</c></param>
- <returns>
- <c>true</c> if any of the <c>Geometry</c>s
- <c>IsEmpty</c> methods return <c>false</c>.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.HasNullElements(System.Object[])">
- <summary>
- Returns true if the array contains any <c>null</c> elements.
- </summary>
- <param name="array"> an array to validate.</param>
- <returns><c>true</c> if any of <c>array</c>s elements are <c>null</c>.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.HasNullElements``1(System.Collections.Generic.IEnumerable{``0})">
- <summary>
- Returns true if the array contains any <c>null</c> elements.
- </summary>
- <param name="array"> an array to validate.</param>
- <returns><c>true</c> if any of <c>array</c>s elements are <c>null</c>.</returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.Geometry.PrecisionModel">
- <summary>
- Returns the <c>PrecisionModel</c> used by the <c>Geometry</c>.
- </summary>
- <returns>
- the specification of the grid of allowable points, for this
- <c>Geometry</c> and all other <c>Geometry</c>s.
- </returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.Geometry.Coordinate">
- <summary>
- Returns a vertex of this geometry
- (usually, but not necessarily, the first one),
- or <c>null</c> if the geometry is empty.
- </summary>
- <remarks>
- The returned coordinate should not be assumed to be an actual <c>Coordinate</c> object used in the internal representation.
- </remarks>
- <returns>A coordinate which is a vertex of this <c>Geometry</c>.</returns>
- <returns><c>null</c> if this Geometry is empty.
- </returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.Geometry.Coordinates">
- <summary>
- Returns an array containing the values of all the vertices for
- this geometry.
- </summary>
- <remarks>
- If the geometry is a composite, the array will contain all the vertices
- for the components, in the order in which the components occur in the geometry.
- <para>
- In general, the array cannot be assumed to be the actual internal
- storage for the vertices. Thus modifying the array
- may not modify the geometry itself.
- Use the <see cref="M:NetTopologySuite.Geometries.CoordinateSequence.SetOrdinate(System.Int32,System.Int32,System.Double)"/> or
- <see cref="M:NetTopologySuite.Geometries.CoordinateSequence.SetOrdinate(System.Int32,NetTopologySuite.Geometries.Ordinate,System.Double)"/> method
- (possibly on the components) to modify the underlying data.
- If the coordinates are modified,
- <see cref="M:NetTopologySuite.Geometries.Geometry.GeometryChanged"/> must be called afterwards.
- </para>
- </remarks>
- <returns>The vertices of this <c>Geometry</c>.</returns>
- <seealso cref="M:NetTopologySuite.Geometries.Geometry.GeometryChanged"/>
- <seealso cref="M:NetTopologySuite.Geometries.CoordinateSequence.SetOrdinate(System.Int32,System.Int32,System.Double)"/>
- <seealso cref="M:NetTopologySuite.Geometries.CoordinateSequence.SetOrdinate(System.Int32,NetTopologySuite.Geometries.Ordinate,System.Double)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.GetOrdinates(NetTopologySuite.Geometries.Ordinate)">
- <summary>
- Gets an array of <see cref="T:System.Double"/> ordinate values
- </summary>
- <param name="ordinate">The ordinate index</param>
- <returns>An array of ordinate values</returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.Geometry.NumPoints">
- <summary>
- Returns the count of this <c>Geometry</c>s vertices. The <c>Geometry</c>
- s contained by composite <c>Geometry</c>s must be
- Geometry's; that is, they must implement <c>NumPoints</c>.
- </summary>
- <returns>The number of vertices in this <c>Geometry</c>.</returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.Geometry.NumGeometries">
- <summary>
- Returns the number of Geometryes in a GeometryCollection,
- or 1, if the geometry is not a collection.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.GetGeometryN(System.Int32)">
- <summary>
- Returns an element Geometry from a GeometryCollection,
- or <c>this</c>, if the geometry is not a collection.
- </summary>
- <param name="n">The index of the geometry element.</param>
- <returns>The n'th geometry contained in this geometry.</returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.Geometry.IsSimple">
- <summary>
- Tests whether this <see cref="T:NetTopologySuite.Geometries.Geometry"/> is simple.
- <para/>
- The SFS definition of simplicity
- follows the general rule that a Geometry is simple if it has no points of
- self-tangency, self-intersection or other anomalous points.
- <para/>
- Simplicity is defined for each <see cref="T:NetTopologySuite.Geometries.Geometry"/> subclass as follows:
- <list type="bullet">
- <item><description>Valid polygonal geometries are simple, since their rings
- must not self-intersect. <c>IsSimple</c>
- tests for this condition and reports <c>false</c> if it is not met.
- (This is a looser test than checking for validity).</description></item>
- <item><description>Linear rings have the same semantics.</description></item>
- <item><description>Linear geometries are simple if they do not self-intersect at points
- other than boundary points.</description></item>
- <item><description>Zero-dimensional geometries (points) are simple if they have no
- repeated points.</description></item>
- <item><description>Empty <c>Geometry</c>s are always simple.</description></item>
- </list>
- </summary>
- <returns><c>true</c> if this <c>Geometry</c> is simple</returns>
- <seealso cref="P:NetTopologySuite.Geometries.Geometry.IsValid"/>
- </member>
- <member name="P:NetTopologySuite.Geometries.Geometry.IsValid">
- <summary>
- Tests whether this <c>Geometry</c> is topologically
- valid, according to the OGC SFS specification.<para/>
- For validity rules see the documentation for the specific geometry subclass.
- </summary>
- <returns><c>true</c> if this <c>Geometry</c> is valid.</returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.Geometry.IsEmpty">
- <summary>
- Tests whether the set of points covered in this <c>Geometry</c> is empty.
- <para/>
- Note this test is for topological emptiness, not structural emptiness.<br/>
- A collection containing only empty elements is reported as empty.<br/>
- To check structural emptiness use <see cref="P:NetTopologySuite.Geometries.Geometry.NumGeometries"/>.
- </summary>
- <returns><c>true</c> if this <c>Geometry</c> does not cover any points.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.Distance(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Returns the minimum distance between this <c>Geometry</c>
- and another <c>Geometry</c> g.
- </summary>
- <param name="g">The <c>Geometry</c> from which to compute the distance.</param>
- <returns>The distance between the geometries</returns>
- <returns>0 if either input geometry is empty</returns>
- <exception cref="T:System.ArgumentException">if g is null</exception>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.IsWithinDistance(NetTopologySuite.Geometries.Geometry,System.Double)">
- <summary>
- Tests whether the distance from this <c>Geometry</c>
- to another is less than or equal to a specified value.
- </summary>
- <param name="geom">the Geometry to check the distance to.</param>
- <param name="distance">the distance value to compare.</param>
- <returns><c>true</c> if the geometries are less than <c>distance</c> apart.</returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.Geometry.Area">
- <summary>
- Returns the area of this <c>Geometry</c>.
- Areal Geometries have a non-zero area.
- They override this function to compute the area.
- Others return 0.0
- </summary>
- <returns>The area of the Geometry.</returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.Geometry.Length">
- <summary>
- Returns the length of this <c>Geometry</c>.
- Linear geometries return their length.
- Areal geometries return their perimeter.
- They override this function to compute the length.
- Others return 0.0
- </summary>
- <returns>The length of the Geometry.</returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.Geometry.Centroid">
- <summary>
- Computes the centroid of this <c>Geometry</c>.
- The centroid
- is equal to the centroid of the set of component Geometries of highest
- dimension (since the lower-dimension geometries contribute zero
- "weight" to the centroid).
- <para/>
- The centroid of an empty geometry is <c>POINT EMPTY</c>.
- </summary>
- <returns>A Point which is the centroid of this Geometry.</returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.Geometry.InteriorPoint">
- <summary>
- Computes an interior point of this <c>Geometry</c>.
- </summary>
- <remarks>
- An interior point is guaranteed to lie in the interior of the Geometry,
- if it possible to calculate such a point exactly. Otherwise,
- the point may lie on the boundary of the point.
- <para/>
- The interior point of an empty geometry is <c>POINT EMPTY</c>.
- </remarks>
- <returns>A <c>Point</c> which is in the interior of this Geometry.</returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.Geometry.PointOnSurface">
- <summary>
- <see cref="P:NetTopologySuite.Geometries.Geometry.InteriorPoint" />
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.Geometry.Dimension">
- <summary>
- Returns the dimension of this geometry.
- </summary>
- <remarks>
- The dimension of a geometry is is the topological
- dimension of its embedding in the 2-D Euclidean plane.
- In the NTS spatial model, dimension values are in the set {0,1,2}.
- <para>
- Note that this is a different concept to the dimension of
- the vertex <see cref="P:NetTopologySuite.Geometries.Geometry.Coordinate"/>s.
- The geometry dimension can never be greater than the coordinate dimension.
- For example, a 0-dimensional geometry (e.g. a Point)
- may have a coordinate dimension of 3 (X,Y,Z).
- </para>
- </remarks>
- <returns>
- The topological dimensions of this geometry
- </returns>
- <seealso cref="M:NetTopologySuite.Geometries.Geometry.HasDimension(NetTopologySuite.Geometries.Dimension)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.HasDimension(NetTopologySuite.Geometries.Dimension)">
- <summary>
- Tests whether an atomic geometry or any element of a collection
- has the specified dimension.<br/>
- In particular, this can be used with mixed-dimension <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/>s
- to test if they contain an element of the specified dimension.
- </summary>
- <param name="dim">The dimension to test</param>
- <returns><c>true</c> if the geometry has or contains an element with the dimension</returns>
- <seealso cref="P:NetTopologySuite.Geometries.Geometry.Dimension"/>
- </member>
- <member name="P:NetTopologySuite.Geometries.Geometry.Boundary">
- <summary>
- Returns the boundary, or an empty geometry of appropriate dimension
- if this <c>Geometry</c> is empty.
- For a discussion of this function, see the OpenGIS Simple
- Features Specification. As stated in SFS Section 2.1.13.1, "the boundary
- of a Geometry is a set of Geometries of the next lower dimension."
- </summary>
- <returns>The closure of the combinatorial boundary of this <c>Geometry</c>.</returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.Geometry.BoundaryDimension">
- <summary>
- Returns the dimension of this <c>Geometry</c>s inherent boundary.
- </summary>
- <returns>
- The dimension of the boundary of the class implementing this
- interface, whether or not this object is the empty point. Returns
- <c>Dimension.False</c> if the boundary is the empty point.
- </returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.Geometry.Envelope">
- <summary>
- Gets a geometry representing the envelope (bounding box) of this <c>Geometry</c>.
- </summary>
- <remarks>If this <c>Geometry</c> is
- <list type="bullet">
- <item><description>empty, returns an empty <c>Point</c></description></item>
- <item><description>a point, returns a <c>Point</c></description></item>
- <item><description>a line parallel to an axis, a two-vertex <c>LineString</c>,</description></item>
- <item><description>otherwise, returns a
- <c>Polygon</c> whose vertices are (minx, miny), (maxx, miny),
- (maxx, maxy), (minx, maxy), (minx, miny).</description></item>
- </list>
- </remarks>
- <returns>
- A Geometry representing the envelope of this Geometry
- </returns>
- <seealso cref="M:NetTopologySuite.Geometries.GeometryFactory.ToGeometry(NetTopologySuite.Geometries.Envelope)"/>
- </member>
- <member name="P:NetTopologySuite.Geometries.Geometry.EnvelopeInternal">
- <summary>
- Gets an <see cref="T:NetTopologySuite.Geometries.Envelope"/> containing
- the minimum and maximum x and y values in this <c>Geometry</c>.
- If the geometry is empty, an empty <c>Envelope</c>
- is returned.
- </summary>
- <remarks>
- The returned object is a copy of the one maintained internally,
- to avoid aliasing issues.
- For best performance, clients which access this
- envelope frequently should cache the return value.</remarks>
- <returns>the envelope of this <c>Geometry</c>.</returns>
- <returns>An empty Envelope if this Geometry is empty</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.GeometryChanged">
- <summary>
- Notifies this geometry that its coordinates have been changed by an external
- party (for example, via a <see cref="T:NetTopologySuite.Geometries.ICoordinateFilter"/>).
- </summary>
- <remarks>
- When this method is called the geometry will flush
- and/or update any derived information it has cached (such as its <see cref="T:NetTopologySuite.Geometries.Envelope"/> ).
- The operation is applied to all component Geometries.
- </remarks>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.GeometryChangedAction">
- <summary>
- Notifies this Geometry that its Coordinates have been changed by an external
- party. When GeometryChanged is called, this method will be called for
- this Geometry and its component Geometries.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.Disjoint(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests whether this geometry is disjoint from the argument geometry.
- </summary>
- <remarks>
- The <c>Disjoint</c> predicate has the following equivalent definitions:
- <list type="bullet">
- <item><description>The DE-9IM intersection matrix for the two geometries matches <c>FF*FF****</c>.</description></item>
- <item><description><c>!g.intersects(this) == true</c><br/>(<c>Disjoint</c> is the inverse of <c>Intersects</c>)</description></item>
- </list>
- </remarks>
- <param name="g">The <c>Geometry</c> with which to compare this <c>Geometry</c>.</param>
- <returns><c>true</c> if the two <c>Geometry</c>s are disjoint.</returns>
- <see cref="M:NetTopologySuite.Geometries.Geometry.Intersects(NetTopologySuite.Geometries.Geometry)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.Touches(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests whether this geometry touches the argument geometry
- </summary>
- <remarks>
- The <c>Touches</c> predicate has the following equivalent definitions:
- <list type="bullet">
- <item><description>The geometries have at least one point in common,
- but their interiors do not intersect</description></item>
- <item><description>The DE-9IM Intersection Matrix for the two geometries matches
- at least one of the following patterns
- <list type="bullet">
- <item><description><c>FT*******</c>,</description></item>
- <item><description><c>F**T*****</c> or</description></item>
- <item><description><c>F***T****</c>.</description></item>
- </list></description></item>
- </list>
- If both geometries have dimension 0, the predicate returns <c>false</c>,
- since points have only interiors.
- This predicate is symmetric.
- </remarks>
- <param name="g">The <c>Geometry</c> with which to compare this <c>Geometry</c>.</param>
- <returns>
- <c>true</c> if the two <c>Geometry</c>s touch;
- Returns false if both <c>Geometry</c>s are points.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.Intersects(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests whether this geometry intersects the argument geometry.
- </summary>
- <remarks>
- The <c>Intersects</c> predicate has the following equivalent definitions:
- <list type="bullet">
- <item><description>The two geometries have at least one point in common</description></item>
- <item><description>The DE-9IM Intersection Matrix for the two geometries matches<br/>
- <c>[T********]</c> or<br/>
- <c>[*T*******]</c> or<br/>
- <c>[***T*****]</c> or<br/>
- <c>[****T****]</c></description></item>
- <item><description><c>!g.disjoint(this)</c><br/>
- (<c>Intersects</c> is the inverse of <c>Disjoint</c>)</description></item>
- </list></remarks>
- <param name="g">The <c>Geometry</c> with which to compare this <c>Geometry</c>.</param>
- <returns><c>true</c> if the two <c>Geometry</c>s intersect.</returns>
- <see cref="M:NetTopologySuite.Geometries.Geometry.Disjoint(NetTopologySuite.Geometries.Geometry)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.Crosses(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests whether this geometry crosses the specified geometry.
- </summary>
- <remarks>
- The <c>Crosses</c> predicate has the following equivalent definitions:
- <list type="bullet">
- <item>The geometries have some but not all interior points in common.</item>
- <item>The DE-9IM Intersection Matrix for the two geometries matches
- one of the following patterns:
- <list type="table">
- <listheader><term>Code</term><description>Description</description></listheader>
- <item><term><c>[T*T******]</c></term><description>for P/L, P/A, and L/A situations</description></item>
- <item><term><c>[T*****T**]</c></term><description>for L/P, A/P, and A/L situations)</description></item>
- <item><term><c>[0********]</c></term><description>for L/L situations</description></item>
- </list>
- </item>
- </list>
- For the A/A and P/P situations this predicate returns <c>false</c>.
- <para>
- The SFS defined this predicate only for P/L, P/A, L/L, and L/A situations.
- To make the relation symmetric,
- NTS extends the definition to apply to L/P, A/P and A/L situations as well.
- </para>
- </remarks>
- <param name="g">The <c>Geometry</c> with which to compare this <c>Geometry</c></param>
- <returns><c>true</c> if the two <c>Geometry</c>s cross.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.Within(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests whether this geometry is within the specified geometry.
- </summary>
- <remarks>
- The <c>within</c> predicate has the following equivalent definitions:
- <list type="bullet">
- <item><description>
- Every point of this geometry is a point of the other geometry,
- and the interiors of the two geometries have at least one point in common.
- </description></item>
- <item><description>The DE-9IM Intersection Matrix for the two geometries matches <c>[T*F**F***]</c></description></item>
- <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>
- </list>
- <para>
- An implication of the definition is that "The boundary of a geometry is not within the Polygon".
- 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>
- (As a concrete example, take A to be a LineString which lies in the boundary of a Polygon B.)
- For a predicate with similar behaviour but avoiding
- this subtle limitation, see <see cref="M:NetTopologySuite.Geometries.Geometry.CoveredBy(NetTopologySuite.Geometries.Geometry)"/>.
- </para>
- </remarks>
- <param name="g">The <c>Geometry</c> with which to compare this <c>Geometry</c>.</param>
- <returns><c>true</c> if this <c>Geometry</c> is within <c>other</c>.</returns>
- <see cref="M:NetTopologySuite.Geometries.Geometry.Contains(NetTopologySuite.Geometries.Geometry)"/>
- <see cref="M:NetTopologySuite.Geometries.Geometry.CoveredBy(NetTopologySuite.Geometries.Geometry)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.Contains(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests whether this geometry contains the argument geometry.
- </summary>
- <remarks>
- The <c>Contains</c> predicate has the following equivalent definitions:
- <list type="bullet">
- <item><description>Every point of the other geometry is a point of this geometry,
- and the interiors of the two geometries have at least one point in common.</description></item>
- <item><description>The DE-9IM Intersection Matrix for the two geometries matches the pattern
- <c>[T*****FF*]</c></description></item>
- <item><description><c>g.within(this)</c><br/>
- (<c>Contains</c> is the converse of <see cref="M:NetTopologySuite.Geometries.Geometry.Within(NetTopologySuite.Geometries.Geometry)"/>)</description></item>
- </list>
- <para>
- An implication of the definition is that "Geometries do not
- contain their boundary". In other words, if a geometry A is a subset of
- the points in the boundary of a geometry B, <c>B.Contains(A) == false</c>.
- (As a concrete example, take A to be a LineString which lies in the boundary of a Polygon B.)
- For a predicate with similar behaviour but avoiding
- this subtle limitation, see <see cref="M:NetTopologySuite.Geometries.Geometry.Covers(NetTopologySuite.Geometries.Geometry)"/>.
- </para>
- </remarks>
- <param name="g">the <c>Geometry</c> with which to compare this <c>Geometry</c></param>
- <returns><c>true</c> if this <c>Geometry</c> contains <c>g</c></returns>
- <see cref="M:NetTopologySuite.Geometries.Geometry.Within(NetTopologySuite.Geometries.Geometry)"/>
- <see cref="M:NetTopologySuite.Geometries.Geometry.Covers(NetTopologySuite.Geometries.Geometry)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.Overlaps(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests whether this geometry overlaps the specified geometry.
- </summary>
- <remarks>
- The <c>Overlaps</c> predicate has the following equivalent definitions:
- <list type="bullet">
- <item><description>The geometries have at least one point each not shared by the other
- (or equivalently neither covers the other),
- they have the same dimension,
- and the intersection of the interiors of the two geometries has
- the same dimension as the geometries themselves.</description></item>
- <item><description>The DE-9IM Intersection Matrix for the two geometries matches
- <c>[T*T***T**]</c> (for two points or two surfaces)
- or <c>[1*T***T**]</c> (for two curves)</description></item>
- </list>
- If the geometries are of different dimension this predicate returns <c>false</c>.
- </remarks>
- <param name="g">The <c>Geometry</c> with which to compare this <c>Geometry</c>.</param>
- <returns>
- <c>true</c> if the two <c>Geometry</c>s overlap.
- For this function to return <c>true</c>, the <c>Geometry</c>
- s must be two points, two curves or two surfaces.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.Covers(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests whether this geometry covers the argument geometry
- </summary>
- <remarks>
- The <c>covers</c> predicate has the following equivalent definitions:
- <list type="bullet">
- <item><description>Every point of the other geometry is a point of this geometry.</description></item>
- <item><description>The DE-9IM Intersection Matrix for the two geometries matches at least
- one of the following patterns:
- <list type="bullet">
- <item><description><c>[T*****FF*]</c> or<br/></description></item>
- <item><description><c>[*T****FF*]</c> or<br/></description></item>
- <item><description><c>[***T**FF*]</c> or<br/></description></item>
- <item><description><c>[****T*FF*]</c></description></item>
- </list>
- </description></item>
- <item><c>g.CoveredBy(this) == true</c><br/>
- (<c>covers</c> is the converse of <see cref="M:NetTopologySuite.Geometries.Geometry.CoveredBy(NetTopologySuite.Geometries.Geometry)"/>)</item>
- </list>
- If either geometry is empty, the value of this predicate is <c>false</c>.
- <para>
- This predicate is similar to <see cref="M:NetTopologySuite.Geometries.Geometry.Contains(NetTopologySuite.Geometries.Geometry)"/>,
- but is more inclusive (i.e. returns <c>true</c> for more cases).
- In particular, unlike <c>Contains</c> it does not distinguish between
- points in the boundary and in the interior of geometries.
- For most situations, <c>Covers</c> should be used in preference to <c>Contains</c>.
- As an added benefit, <c>Covers</c> is more amenable to optimization,
- and hence should be more performant.
- </para>
- </remarks>
- <param name="g">The <c>Geometry</c> with which to compare this <c>Geometry</c></param>
- <returns><c>true</c> if this <c>Geometry</c> covers <paramref name="g" /></returns>
- <seealso cref="M:NetTopologySuite.Geometries.Geometry.Contains(NetTopologySuite.Geometries.Geometry)" />
- <seealso cref="M:NetTopologySuite.Geometries.Geometry.CoveredBy(NetTopologySuite.Geometries.Geometry)" />
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.CoveredBy(NetTopologySuite.Geometries.Geometry)">
- <summary>Tests whether this geometry is covered by the specified geometry.</summary>
- <remarks>
- The <c>CoveredBy</c> predicate has the following equivalent definitions:
- <list type="bullet">
- <item><description>Every point of this geometry is a point of the other geometry.</description></item>
- <item><description>The DE-9IM Intersection Matrix for the two geometries matches
- at least one of the following patterns:
- <list type="bullet">
- <item><description><c>[T*F**F***]</c></description></item>
- <item><description><c>[*TF**F***]</c></description></item>
- <item><description><c>[**FT*F***]</c></description></item>
- <item><description><c>[**F*TF***]</c></description></item></list></description></item>
- <item><description><c>g.Covers(this) == true</c><br/>
- (<c>CoveredBy</c> is the converse of <see cref="M:NetTopologySuite.Geometries.Geometry.Covers(NetTopologySuite.Geometries.Geometry)"/>)
- </description></item>
- </list>
- If either geometry is empty, the value of this predicate is <c>false</c>.
- <para>
- This predicate is similar to <see cref="M:NetTopologySuite.Geometries.Geometry.Within(NetTopologySuite.Geometries.Geometry)"/>,
- but is more inclusive (i.e. returns <c>true</c> for more cases).
- </para>
- </remarks>
- <param name="g">the <c>Geometry</c> with which to compare this <c>Geometry</c></param>
- <returns><c>true</c> if this <c>Geometry</c> is covered by <c>g</c></returns>
- <seealso cref="M:NetTopologySuite.Geometries.Geometry.Within(NetTopologySuite.Geometries.Geometry)"/>
- <seealso cref="M:NetTopologySuite.Geometries.Geometry.Covers(NetTopologySuite.Geometries.Geometry)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.Relate(NetTopologySuite.Geometries.Geometry,System.String)">
- <summary>
- Tests whether the elements in the DE-9IM
- <see cref="T:NetTopologySuite.Geometries.IntersectionMatrix"/> for the two <c>Geometry</c>s match the elements in <c>intersectionPattern</c>.
- </summary>
- <remarks>
- The pattern is a 9-character string, with symbols drawn from the following set:
- <list type="table">
- <item><term>0</term><description>(dimension 0)</description></item>
- <item><term>1</term><description>(dimension 1)</description></item>
- <item><term>2</term><description>(dimension 2)</description></item>
- <item><term>T</term><description>( matches 0, 1 or 2)</description></item>
- <item><term>F</term><description>( matches FALSE)</description></item>
- <item><term>*</term><description>( matches any value)</description></item>
- </list>
- For more information on the DE-9IM, see the <i>OpenGIS Simple Features
- Specification</i>.
- </remarks>
- <param name="g">the <c>Geometry</c> with which to compare this <c>Geometry</c></param>
- <param name="intersectionPattern">the pattern against which to check the
- intersection matrix for the two <c>Geometry</c>s</param>
- <returns><c>true</c> if the DE-9IM intersection
- matrix for the two <c>Geometry</c>s match <c>intersectionPattern</c></returns>
- <seealso cref="T:NetTopologySuite.Geometries.IntersectionMatrix"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.Relate(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Returns the DE-9IM intersection matrix for the two <c>Geometry</c>s.
- </summary>
- <param name="g">The <c>Geometry</c> with which to compare this <c>Geometry</c></param>
- <returns>
- A matrix describing the intersections of the interiors,
- boundaries and exteriors of the two <c>Geometry</c>s.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.Equals(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests whether this geometry is
- topologically equal to the argument geometry.
- <para/>
- This method is included for backward compatibility reasons.
- It has been superseded by the <seealso cref="M:NetTopologySuite.Geometries.Geometry.EqualsTopologically(NetTopologySuite.Geometries.Geometry)"/> method,
- which has been named to clearly denote its functionality.
- <para/>
- This method should <b>NOT</b> be confused with the method
- <seealso cref="M:NetTopologySuite.Geometries.Geometry.Equals(System.Object)"/>, which implements
- an exact equality comparison.
- </summary>
- <param name="g">The <c>Geometry</c> with which to compare this <c>Geometry</c></param>
- <returns><c>true</c> if the two <c>Geometry</c>s are topologically equal.</returns>
- <seealso cref="M:NetTopologySuite.Geometries.Geometry.EqualsTopologically(NetTopologySuite.Geometries.Geometry)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.EqualsTopologically(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests whether this geometry is topologically equal to the argument geometry
- as defined by the SFS <c>Equals</c> predicate.
- </summary>
- <remarks>
- The SFS <c>equals</c> predicate has the following equivalent definitions:
- <list type="bullet">
- <item><description>The two geometries have at least one point in common,
- and no point of either geometry lies in the exterior of the other geometry.</description></item>
- <item><description>The DE-9IM Intersection Matrix for the two geometries matches
- the pattern <tt>T*F**FFF*</tt>
- <pre>
- T*F
- **F
- FF*
- </pre></description></item>
- </list>
- <b>Note</b> that this method computes <b>topologically equality</b>.
- For structural equality, see {@link #equalsExact(Geometry)}.
- </remarks>
- <param name="g">the <c>Geometry</c> with which to compare this <c>Geometry</c></param>
- <returns><c>true</c> if the two <c>Geometry</c>s are topologically equal</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.Equals(System.Object)">
- <summary>
- Tests whether this geometry is structurally and numerically equal
- to a given <tt>Object</tt>.
- </summary>
- <remarks>
- If the argument <tt>Object</tt> is not a <c>Geometry</c>,
- the result is <c>false</c>.
- Otherwise, the result is computed using
- <seealso cref="M:NetTopologySuite.Geometries.Geometry.EqualsExact(NetTopologySuite.Geometries.Geometry)"/>.
- <para/>
- This method is provided to fulfill the Java contract
- for value-based object equality.
- In conjunction with <seealso cref="M:NetTopologySuite.Geometries.Geometry.GetHashCode"/>
- it provides semantics which are most useful
- for using
- <c>Geometry</c>s as keys and values in Java collections.
- <para/>
- Note that to produce the expected result the input geometries
- should be in normal form. It is the caller's
- responsibility to perform this where required
- (using <seealso cref="M:NetTopologySuite.Geometries.Geometry.Normalized"/>
- or <seealso cref="M:NetTopologySuite.Geometries.Geometry.Normalize"/> as appropriate).
- </remarks>
- <param name="o">The object to compare</param>
- <returns><c>true</c> if this geometry is exactly equal to the argument</returns>
- <seealso cref="M:NetTopologySuite.Geometries.Geometry.EqualsExact(NetTopologySuite.Geometries.Geometry)"/>
- <seealso cref="M:NetTopologySuite.Geometries.Geometry.GetHashCode"/>
- <seealso cref="M:NetTopologySuite.Geometries.Geometry.Normalized"/>
- <seealso cref="M:NetTopologySuite.Geometries.Geometry.Normalize"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.CompareGeometryCollections(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
-
- </summary>
- <param name="obj1"></param>
- <param name="obj2"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.op_Equality(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
-
- </summary>
- <param name="obj1"></param>
- <param name="obj2"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.op_Inequality(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
-
- </summary>
- <param name="obj1"></param>
- <param name="obj2"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.GetHashCode">
- <summary>
- Gets a hash code for the Geometry.
- </summary>
- <returns>
- An integer value suitable for use as a hashcode
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.ToString">
- <summary>
- Returns the Well-known Text representation of this <c>Geometry</c>.
- For a definition of the Well-known Text format, see the OpenGIS Simple
- Features Specification.
- </summary>
- <returns>
- The Well-known Text representation of this <c>Geometry</c>.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.ToText">
- <summary>
- Returns the Well-known Text representation of this <c>Geometry</c>.
- For a definition of the Well-known Text format, see the OpenGIS Simple
- Features Specification.
- </summary>
- <returns>
- The Well-known Text representation of this <c>Geometry</c>.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.AsText">
- <summary>
- <see cref="M:NetTopologySuite.Geometries.Geometry.ToText" />
- </summary>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.ToBinary">
- <summary>
- Returns the Well-known Binary representation of this <c>Geometry</c>.
- For a definition of the Well-known Binary format, see the OpenGIS Simple
- Features Specification.
- </summary>
- <returns>The Well-known Binary representation of this <c>Geometry</c>.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.AsBinary">
- <summary>
- <see cref="M:NetTopologySuite.Geometries.Geometry.ToBinary" />
- </summary>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.ToGMLFeature">
- <summary>
- Returns the feature representation as GML 2.1.1 XML document.
- This XML document is based on <c>Geometry.xsd</c> schema.
- NO features or XLink are implemented here!
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.Buffer(System.Double)">
- <summary>
- Computes a buffer area around this geometry having the given width. The
- buffer of a Geometry is the Minkowski sum or difference of the geometry
- with a disc of radius <c>Abs(distance)</c>.
- </summary>
- <remarks><para>Mathematically-exact buffer area boundaries can contain circular arcs.
- To represent these arcs using linear geometry they must be approximated with line segments.
- The buffer geometry is constructed using 8 segments per quadrant to approximate
- the circular arcs.</para>
- <para>The end cap style is <c>EndCapStyle.Round</c>.</para>
- <para>
- The buffer operation always returns a polygonal result. The negative or
- zero-distance buffer of lines and points is always an empty <see cref="T:NetTopologySuite.Geometries.IPolygonal"/>.
- This is also the result for the buffers of degenerate (zero-area) polygons.
- </para>
- </remarks>
- <param name="distance">
- The width of the buffer (may be positive, negative or 0), interpreted according to the
- <c>PrecisionModel</c> of the <c>Geometry</c>.
- </param>
- <returns>
- a polygonal geometry representing the buffer region (which may be empty)
- </returns>
- <exception cref="T:NetTopologySuite.Geometries.TopologyException">If a robustness error occurs</exception>
- <seealso cref="M:NetTopologySuite.Geometries.Geometry.Buffer(System.Double,NetTopologySuite.Operation.Buffer.EndCapStyle)"/>
- <seealso cref="M:NetTopologySuite.Geometries.Geometry.Buffer(System.Double,NetTopologySuite.Operation.Buffer.BufferParameters)"/>
- <seealso cref="M:NetTopologySuite.Geometries.Geometry.Buffer(System.Double,System.Int32)"/>
- <seealso cref="M:NetTopologySuite.Geometries.Geometry.Buffer(System.Double,System.Int32,NetTopologySuite.Operation.Buffer.EndCapStyle)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.Buffer(System.Double,NetTopologySuite.Operation.Buffer.EndCapStyle)">
- <summary>
- Computes a buffer region around this <c>Geometry</c> having the given width.
- The buffer of a Geometry is the Minkowski sum or difference of the geometry
- with a disc of radius <c>Abs(distance)</c>.
- </summary>
- <remarks>
- <para>The end cap style specifies the buffer geometry that will be
- created at the ends of linestrings. The styles provided are:
- <ul>
- <li><see cref="F:NetTopologySuite.Operation.Buffer.EndCapStyle.Round" /> - (default) a semi-circle</li>
- <li><see cref="F:NetTopologySuite.Operation.Buffer.EndCapStyle.Flat" /> - a straight line perpendicular to the end segment</li>
- <li><see cref="F:NetTopologySuite.Operation.Buffer.EndCapStyle.Square" /> - a half-square</li>
- </ul></para>
- <para>The buffer operation always returns a polygonal result. The negative or
- zero-distance buffer of lines and points is always an empty <see cref="T:NetTopologySuite.Geometries.IPolygonal"/>.</para>
- </remarks>
- <param name="distance">
- The width of the buffer, interpreted according to the
- <c>PrecisionModel</c> of the <c>Geometry</c>.
- </param>
- <param name="endCapStyle">Cap Style to use for compute buffer.</param>
- <returns>
- a polygonal geometry representing the buffer region (which may be empty)
- </returns>
- <exception cref="T:NetTopologySuite.Geometries.TopologyException">If a robustness error occurs</exception>
- <seealso cref="M:NetTopologySuite.Geometries.Geometry.Buffer(System.Double)"/>
- <seealso cref="M:NetTopologySuite.Geometries.Geometry.Buffer(System.Double,NetTopologySuite.Operation.Buffer.BufferParameters)"/>
- <seealso cref="M:NetTopologySuite.Geometries.Geometry.Buffer(System.Double,System.Int32)"/>
- <seealso cref="M:NetTopologySuite.Geometries.Geometry.Buffer(System.Double,System.Int32,NetTopologySuite.Operation.Buffer.EndCapStyle)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.Buffer(System.Double,System.Int32)">
- <summary>
- Computes a buffer region around this <c>Geometry</c> having the given
- width and with a specified accuracy of approximation for circular arcs.
- The buffer of a Geometry is the Minkowski sum of the Geometry with
- a disc of radius <c>distance</c>. Curves in the buffer polygon are
- approximated with line segments. This method allows specifying the
- accuracy of that approximation.
- </summary>
- <remarks><para>Mathematically-exact buffer area boundaries can contain circular arcs.
- To represent these arcs using linear geometry they must be approximated with line segments.
- The <c>quadrantSegments</c> argument allows controlling the accuracy of
- the approximation by specifying the number of line segments used to
- represent a quadrant of a circle</para>
- <para>The buffer operation always returns a polygonal result. The negative or
- zero-distance buffer of lines and points is always an empty <see cref="T:NetTopologySuite.Geometries.IPolygonal"/>.
- This is also the result for the buffers of degenerate (zero-area) polygons.
- </para>
- </remarks>
- <param name="distance">
- The width of the buffer (may be positive, negative or 0), interpreted according to the
- <c>PrecisionModel</c> of the <c>Geometry</c>.
- </param>
- <param name="quadrantSegments">The number of segments to use to approximate a quadrant of a circle.</param>
- <returns>
- a polygonal geometry representing the buffer region (which may be empty)
- </returns>
- <exception cref="T:NetTopologySuite.Geometries.TopologyException">If a robustness error occurs</exception>
- <seealso cref="M:NetTopologySuite.Geometries.Geometry.Buffer(System.Double)"/>
- <seealso cref="M:NetTopologySuite.Geometries.Geometry.Buffer(System.Double,NetTopologySuite.Operation.Buffer.EndCapStyle)"/>
- <seealso cref="M:NetTopologySuite.Geometries.Geometry.Buffer(System.Double,NetTopologySuite.Operation.Buffer.BufferParameters)"/>
- <seealso cref="M:NetTopologySuite.Geometries.Geometry.Buffer(System.Double,System.Int32,NetTopologySuite.Operation.Buffer.EndCapStyle)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.Buffer(System.Double,System.Int32,NetTopologySuite.Operation.Buffer.EndCapStyle)">
- <summary>
- Computes a buffer region around this <c>Geometry</c> having the given
- width and with a specified number of segments used to approximate curves.
- The buffer of a Geometry is the Minkowski sum of the Geometry with
- a disc of radius <c>distance</c>. Curves in the buffer polygon are
- approximated with line segments. This method allows specifying the
- accuracy of that approximation.
- </summary>
- <remarks><para>Mathematically-exact buffer area boundaries can contain circular arcs.
- To represent these arcs using linear geometry they must be approximated with line segments.
- The <c>quadrantSegments</c> argument allows controlling the accuracy of
- the approximation by specifying the number of line segments used to
- represent a quadrant of a circle</para>
- <para>The end cap style specifies the buffer geometry that will be
- created at the ends of linestrings. The styles provided are:
- <ul>
- <li><see cref="F:NetTopologySuite.Operation.Buffer.EndCapStyle.Round" /> - (default) a semi-circle</li>
- <li><see cref="F:NetTopologySuite.Operation.Buffer.EndCapStyle.Flat" /> - a straight line perpendicular to the end segment</li>
- <li><see cref="F:NetTopologySuite.Operation.Buffer.EndCapStyle.Square" /> - a half-square</li>
- </ul></para>
- <para>The buffer operation always returns a polygonal result. The negative or
- zero-distance buffer of lines and points is always an empty <see cref="T:NetTopologySuite.Geometries.IPolygonal"/>.
- This is also the result for the buffers of degenerate (zero-area) polygons.
- </para>
- </remarks>
- <param name="distance">
- The width of the buffer, interpreted according to the
- <c>PrecisionModel</c> of the <c>Geometry</c>.
- </param>
- <param name="quadrantSegments">The number of segments to use to approximate a quadrant of a circle.</param>
- <param name="endCapStyle">Cap Style to use for compute buffer.</param>
- <returns>
- a polygonal geometry representing the buffer region (which may be empty)
- </returns>
- <exception cref="T:NetTopologySuite.Geometries.TopologyException">If a robustness error occurs</exception>
- <seealso cref="M:NetTopologySuite.Geometries.Geometry.Buffer(System.Double)"/>
- <seealso cref="M:NetTopologySuite.Geometries.Geometry.Buffer(System.Double,NetTopologySuite.Operation.Buffer.EndCapStyle)"/>
- <seealso cref="M:NetTopologySuite.Geometries.Geometry.Buffer(System.Double,NetTopologySuite.Operation.Buffer.BufferParameters)"/>
- <seealso cref="M:NetTopologySuite.Geometries.Geometry.Buffer(System.Double,System.Int32)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.Buffer(System.Double,NetTopologySuite.Operation.Buffer.BufferParameters)">
- <summary>
- Computes a buffer region around this <c>Geometry</c> having the given
- width and with a specified number of segments used to approximate curves.
- The buffer of a Geometry is the Minkowski sum of the Geometry with
- a disc of radius <c>distance</c>. Curves in the buffer polygon are
- approximated with line segments. This method allows specifying the
- accuracy of that approximation.
- </summary>
- <remarks><para>Mathematically-exact buffer area boundaries can contain circular arcs.
- To represent these arcs using linear geometry they must be approximated with line segments.
- The <c>bufferParameters</c> argument has a property <c>QuadrantSegments</c> controlling the accuracy of
- the approximation by specifying the number of line segments used to
- represent a quadrant of a circle</para>
- <para>The <c>EndCapStyle</c> property of the <c>bufferParameters</c> argument specifies the buffer geometry that will be
- created at the ends of linestrings. The styles provided are:
- <ul>
- <li><see cref="F:NetTopologySuite.Operation.Buffer.EndCapStyle.Round" /> - (default) a semi-circle</li>
- <li><see cref="F:NetTopologySuite.Operation.Buffer.EndCapStyle.Flat" /> - a straight line perpendicular to the end segment</li>
- <li><see cref="F:NetTopologySuite.Operation.Buffer.EndCapStyle.Square" /> - a half-square</li>
- </ul></para>
- <para>The buffer operation always returns a polygonal result. The negative or
- zero-distance buffer of lines and points is always an empty <see cref="T:NetTopologySuite.Geometries.IPolygonal"/>.
- This is also the result for the buffers of degenerate (zero-area) polygons.
- </para>
- </remarks>
- <param name="distance">
- The width of the buffer, interpreted according to the
- <c>PrecisionModel</c> of the <c>Geometry</c>.
- </param>
- <param name="bufferParameters">This argument type has a number of properties that control the construction of the
- buffer, including <c>QuadrantSegments</c>, <c>EndCapStyle</c>, <c>JoinStyle</c>, and <c>MitreLimit</c></param>
- <returns>
- a polygonal geometry representing the buffer region (which may be empty)
- </returns>
- <exception cref="T:NetTopologySuite.Geometries.TopologyException">If a robustness error occurs</exception>
- <seealso cref="M:NetTopologySuite.Geometries.Geometry.Buffer(System.Double)"/>
- <seealso cref="M:NetTopologySuite.Geometries.Geometry.Buffer(System.Double,NetTopologySuite.Operation.Buffer.EndCapStyle)"/>
- <seealso cref="M:NetTopologySuite.Geometries.Geometry.Buffer(System.Double,System.Int32)"/>
- <seealso cref="M:NetTopologySuite.Geometries.Geometry.Buffer(System.Double,System.Int32,NetTopologySuite.Operation.Buffer.EndCapStyle)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.ConvexHull">
- <summary>
- Returns the smallest convex <c>Polygon</c> that contains all the
- points in the <c>Geometry</c>. This obviously applies only to <c>Geometry</c>
- s which contain 3 or more points.
- </summary>
- <returns>the minimum-area convex polygon containing this <c>Geometry</c>'s points.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.Reverse">
- <summary>
- Computes a new geometry which has all component coordinate sequences
- in reverse order (opposite orientation) to this one.
- </summary>
- <returns>A reversed geometry</returns>
- <remarks>Don't override this function, implement <see cref="M:NetTopologySuite.Geometries.Geometry.ReverseInternal"/>.</remarks>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.ReverseInternal">
- <summary>
- The actual implementation of the <see cref="M:NetTopologySuite.Geometries.Geometry.Reverse"/> function
- </summary>
- <returns>A reversed geometry</returns>
- <remarks>In JTS this function is abstract, but that would break binary compatibility of current version.</remarks>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.Intersection(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes a <c>Geometry</c> representing the point-set which is
- common to both this <c>Geometry</c> and the <c>other</c> Geometry.
- <para/>
- The intersection of two geometries of different dimension produces a result
- geometry of dimension less than or equal to the minimum dimension of the input
- geometries.
- The result geometry may be a heterogeneous <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/>.
- If the result is empty, it is an atomic geometry
- with the dimension of the lowest input dimension.
- <para/>
- Intersection of <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/>s is supported
- only for homogeneous collection types.
- <para/>
- Non-empty heterogeneous <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/> arguments are not supported.
- </summary>
- <param name="other">The <c>Geometry</c> with which to compute the intersection.</param>
- <returns>A geometry representing the point-set common to the two <c>Geometry</c>s.</returns>
- <exception cref="T:NetTopologySuite.Geometries.TopologyException">if a robustness error occurs.</exception>
- <exception cref="T:System.ArgumentException">if the argument is a non-empty heterogeneous <c>GeometryCollection</c></exception>
- <exception cref="T:System.ArgumentException">if the argument has a factory with a different <c>GeometryOverlay</c> object assigned</exception>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.Union(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes a <c>Geometry</c> representing the point-set
- which is contained in both this
- <c>Geometry</c> and the <c>other</c> Geometry.
- </summary>
- <remarks>
- The method may be used on arguments of different dimension, but it does not
- support <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/> arguments.
- <para/>
- The union of two geometries of different dimension produces a result
- geometry of dimension equal to the maximum dimension of the input
- geometries.
- The result geometry may be a heterogeneous
- <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/>.
- If the result is empty, it is an atomic geometry
- with the dimension of the highest input dimension.
- <para/>
- Unioning <see cref="T:NetTopologySuite.Geometries.LineString"/>s has the effect of
- <b>noding</b> and <b>dissolving</b> the input linework. In this context
- "noding" means that there will be a node or endpoint in the result for
- every endpoint or line segment crossing in the input. "Dissolving" means
- that any duplicate (i.e. coincident) line segments or portions of line
- segments will be reduced to a single line segment in the result.
- If <b>merged</b> linework is required, the <see cref="T:NetTopologySuite.Operation.Linemerge.LineMerger"/>
- class can be used.
- <para/>
- Non-empty <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/> arguments are not supported.</remarks>
- <param name="other">the <c>Geometry</c> with which to compute the union</param>
- <returns>A point-set combining the points of this <c>Geometry</c> and the
- points of <c>other</c></returns>
- <exception cref="T:NetTopologySuite.Geometries.TopologyException">Thrown if a robustness error occurs</exception>
- <exception cref="T:System.ArgumentException">Thrown if either input is a non-empty GeometryCollection</exception>
- <exception cref="T:System.ArgumentException">if the argument has a factory with a different <c>GeometryOverlay</c> object assigned</exception>
- <seealso cref="T:NetTopologySuite.Operation.Linemerge.LineMerger"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.Difference(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes a <c>Geometry</c> representing the closure of the point-set
- of the points contained in this <c>Geometry</c> that are not contained in
- the <c>other</c> Geometry.
- <para/>
- If the result is empty, it is an atomic geometry
- with the dimension of the left-hand input.
- <para/>
- Non-empty <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/> arguments are not supported.
- </summary>
- <param name="other">The <c>Geometry</c> with which to compute the difference.</param>
- <returns>A Geometry representing the point-set difference of this <c>Geometry</c> with <c>other</c>.</returns>
- <exception cref="T:System.ArgumentException">if the argument has a factory with a different <c>GeometryOverlay</c> object assigned</exception>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.SymmetricDifference(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes a <c>Geometry </c> representing the closure of the point-set
- which is the union of the points in this <c>Geometry</c> which are not
- contained in the <c>other</c> Geometry,
- with the points in the <c>other</c> Geometry not contained in this
- <c>Geometry</c>.
- If the result is empty, it is an atomic geometry
- with the dimension of the highest input dimension.
- <para/>
- Non-empty <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/> arguments are not supported.
- </summary>
- <param name="other">The <c>Geometry</c> with which to compute the symmetric difference.</param>
- <returns>a Geometry representing the point-set symmetric difference of this <c>Geometry</c> with <c>other</c>.</returns>
- <exception cref="T:System.ArgumentException">if the argument has a factory with a different <c>GeometryOverlay</c> object assigned</exception>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.Union">
- <summary>
- Computes the union of all the elements of this geometry.
- </summary>
- <remarks>
- This method supports <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/>s (which the other overlay operations currently do not).</remarks>
- <remarks>
- The result obeys the following contract:
- <list type="bullet">
- <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>
- <item><description>Unioning a set of <see cref="T:NetTopologySuite.Geometries.Polygon"/>s always returns a <see cref="T:NetTopologySuite.Geometries.IPolygonal"/> geometry
- (unlike <see cref="M:NetTopologySuite.Geometries.Geometry.Union(NetTopologySuite.Geometries.Geometry)"/>), which may return geometries of lower dimension if a topology
- collapse occurred).</description></item>
- </list>
- </remarks>
- <exception cref="T:NetTopologySuite.Geometries.TopologyException">Thrown if a robustness error occurs</exception>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.EqualsExact(NetTopologySuite.Geometries.Geometry,System.Double)">
- <summary>
- Returns true if the two <c>Geometry</c>s are exactly equal,
- up to a specified tolerance.
- Two Geometries are exactly within a tolerance equal if:
- <list type="bullet">
- <item><description>they have the same class,</description></item>
- <item><description>they have the same values of Coordinates,
- within the given tolerance distance, in their internal
- Coordinate lists, in exactly the same order.</description></item>
- </list>
- This method does <i>not</i>
- test the values of the <c>GeometryFactory</c>, the <c>SRID</c>,
- or the <c>UserData</c> fields.
- <para/>
- To properly test equality between different geometries,
- it is usually necessary to <see cref="M:NetTopologySuite.Geometries.Geometry.Normalize"/> them first.
- </summary>
- <param name="other">The <c>Geometry</c> with which to compare this <c>Geometry</c>
- have identical structure and point values, up to the distance tolerance.</param>
- <param name="tolerance">Distance at or below which two Coordinates will be considered equal.</param>
- <returns>
- <c>true</c> if this and the other <c>Geometry</c>
- are of the same class and have equal internal data.
- </returns>
- <seealso cref="M:NetTopologySuite.Geometries.Geometry.EqualsExact(NetTopologySuite.Geometries.Geometry)"/>
- <seealso cref="M:NetTopologySuite.Geometries.Geometry.Normalize"/>
- <seealso cref="M:NetTopologySuite.Geometries.Geometry.Normalized"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.EqualsExact(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Returns true if the two <c>Geometry</c>s are exactly equal.
- Two Geometries are exactly equal if:
- <list type="bullet">
- <item><description>they have the same class,</description></item>
- <item><description>they have the same values of Coordinates in their internal
- Coordinate lists, in exactly the same order.</description></item>
- </list>
- This provides a stricter test of equality than
- <see cref="M:NetTopologySuite.Geometries.Geometry.EqualsTopologically(NetTopologySuite.Geometries.Geometry)"/>, which is more useful
- in certain situations
- (such as using geometries as keys in collections).
- <para/>
- This method does <i>not</i>
- test the values of the <c>GeometryFactory</c>, the <c>SRID</c>,
- or the <c>UserData</c> fields.
- <para/>
- To properly test equality between different geometries,
- it is usually necessary to <see cref="M:NetTopologySuite.Geometries.Geometry.Normalize"/> them first.
- </summary>
- <param name="other">The <c>Geometry</c> with which to compare this <c>Geometry</c>.</param>
- <returns>
- <c>true</c> if this and the other <c>Geometry</c> have identical structure and point values.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.EqualsNormalized(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests whether two geometries are exactly equal
- in their normalized forms.
- <remarks>
- This is a convenience method which creates normalized
- versions of both geometries before computing
- <seealso cref="M:NetTopologySuite.Geometries.Geometry.EqualsExact(NetTopologySuite.Geometries.Geometry)"/>.<para/>
- This method is relatively expensive to compute.
- For maximum performance, the client
- should instead perform normalization on the individual geometries
- at an appropriate point during processing.
- </remarks>
- </summary>
- <param name="g">A geometry</param>
- <returns>true if the input geometries are exactly equal in their normalized form</returns>
- <seealso cref="M:NetTopologySuite.Geometries.Geometry.EqualsExact(NetTopologySuite.Geometries.Geometry)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.Apply(NetTopologySuite.Geometries.ICoordinateFilter)">
- <summary>
- Performs an operation with or on this <c>Geometry</c>'s coordinates.
- </summary>
- <remarks>
- If this method modifies any coordinate values,
- <see cref="M:NetTopologySuite.Geometries.Geometry.GeometryChanged"/> must be called to update the geometry state.
- Note that you cannot use this method to
- modify this Geometry if its underlying CoordinateSequence's #get method
- returns a copy of the Coordinate, rather than the actual Coordinate stored
- (if it even stores Coordinate objects at all).
- </remarks>
- <param name="filter">The filter to apply to this <c>Geometry</c>'s coordinates</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.Apply(NetTopologySuite.Geometries.ICoordinateSequenceFilter)">
- <summary>
- Performs an operation on the coordinates in this <c>Geometry</c>'s <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>s.
- </summary>
- <remarks>
- If the filter reports that a coordinate value has been changed,
- <see cref="M:NetTopologySuite.Geometries.Geometry.GeometryChanged"/> will be called automatically.
- </remarks>
- <param name="filter">The filter to apply</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.Apply(NetTopologySuite.Geometries.IEntireCoordinateSequenceFilter)">
- <summary>
- Performs an operation on this <c>Geometry</c>'s <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>s.
- </summary>
- <remarks>
- If the filter reports that a coordinate value has been changed,
- <see cref="M:NetTopologySuite.Geometries.Geometry.GeometryChanged"/> will be called automatically.
- </remarks>
- <param name="filter">The filter to apply</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.Apply(NetTopologySuite.Geometries.IGeometryFilter)">
- <summary>
- Performs an operation with or on this <c>Geometry</c> and its
- subelement <c>Geometry</c>s (if any).
- Only GeometryCollections and subclasses
- have subelement Geometry's.
- </summary>
- <param name="filter">
- The filter to apply to this <c>Geometry</c> (and
- its children, if it is a <c>GeometryCollection</c>).
- </param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.Apply(NetTopologySuite.Geometries.IGeometryComponentFilter)">
- <summary>
- Performs an operation with or on this Geometry and its
- component Geometry's. Only GeometryCollections and
- Polygons have component Geometry's; for Polygons they are the LinearRings
- of the shell and holes.
- </summary>
- <param name="filter">The filter to apply to this <c>Geometry</c>.</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.Copy">
- <summary>
- Creates a deep copy of this <see cref="T:NetTopologySuite.Geometries.Geometry"/> object.
- Coordinate sequences contained in it are copied.
- All instance fields are copied
- (i.e. the <c>SRID</c>, <c>EnvelopeInternal</c> and <c>UserData</c>).
- </summary>
- <remarks>
- <b>NOTE:</b> The UserData object reference (if present) is copied,
- but the value itself is not copied.
- If a deep copy is required this must be performed by the caller.
- </remarks>
- <returns>A deep copy of this geometry</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.CopyInternal">
- <summary>
- An internal method to copy subclass-specific geometry data.
- </summary>
- <returns>A copy of the target geometry object.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.Normalize">
- <summary>
- Converts this <c>Geometry</c> to normal form (or canonical form ).
- </summary>
- <remarks>
- <para>
- Normal form is a unique representation for <c>Geometry</c>s.
- It can be used to test whether two <c>Geometry</c>s are equal
- in a way that is independent of the ordering of the coordinates within
- them. Normal form equality is a stronger condition than topological
- equality, but weaker than pointwise equality.</para>
- <para>
- The definitions for normal
- form use the standard lexicographical ordering for coordinates. "Sorted in
- order of coordinates" means the obvious extension of this ordering to
- sequences of coordinates.
- </para>
- <para>
- <b>NOTE</b> that this method mutates the value of this geometry in-place.
- If this is not safe and/or wanted, the geometry should be
- cloned prior to normalization.
- </para>
- </remarks>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.Normalized">
- <summary>
- Creates a new Geometry which is a normalized copy of this Geometry.
- </summary>
- <returns>A normalized copy of this geometry.</returns>
- <seealso cref="M:NetTopologySuite.Geometries.Geometry.Normalize"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.CompareTo(System.Object)">
- <summary>
- Returns whether this <c>Geometry</c> is greater than, equal to,
- or less than another <c>Geometry</c>.</summary>
- <remarks>
- If their classes are different, they are compared using the following
- ordering:
- <list type="bullet">
- <item><description>Point (lowest),</description></item>
- <item><description>MultiPoint,</description></item>
- <item><description>LineString,</description></item>
- <item><description>LinearRing,</description></item>
- <item><description>MultiLineString,</description></item>
- <item><description>Polygon,</description></item>
- <item><description>MultiPolygon,</description></item>
- <item><description>GeometryCollection (highest).</description></item>
- </list>
- If the two <c>Geometry</c>s have the same class, their first
- elements are compared. If those are the same, the second elements are
- compared, etc.
- </remarks>
- <param name="o">A <c>Geometry</c> with which to compare this <c>Geometry</c></param>
- <returns>
- A positive number, 0, or a negative number, depending on whether
- this object is greater than, equal to, or less than <c>o</c>, as
- defined in "Normal Form For Geometry" in the NTS Technical
- Specifications.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.CompareTo(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Returns whether this <c>Geometry</c> is greater than, equal to,
- or less than another <c>Geometry</c>.</summary>
- <remarks>
- If their classes are different, they are compared using the following
- ordering:
- <list type="bullet">
- <item><description>Point (lowest),</description></item>
- <item><description>MultiPoint,</description></item>
- <item><description>LineString,</description></item>
- <item><description>LinearRing,</description></item>
- <item><description>MultiLineString,</description></item>
- <item><description>Polygon,</description></item>
- <item><description>MultiPolygon,</description></item>
- <item><description>GeometryCollection (highest).</description></item>
- /// </list>
- If the two <c>Geometry</c>s have the same class, their first
- elements are compared. If those are the same, the second elements are
- compared, etc.
- </remarks>
- <param name="geom">A <c>Geometry</c> with which to compare this <c>Geometry</c></param>
- <returns>
- A positive number, 0, or a negative number, depending on whether
- this object is greater than, equal to, or less than <c>o</c>, as
- defined in "Normal Form For Geometry" in the NTS Technical
- Specifications.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.CompareTo(System.Object,System.Collections.Generic.IComparer{NetTopologySuite.Geometries.CoordinateSequence})">
- <summary>
- Returns whether this <c>Geometry</c> is greater than, equal to,
- or less than another <c>Geometry</c>, using the given <see paramref="IComparer{CoordinateSequence}"/>.</summary>
- <remarks>
- If their classes are different, they are compared using the following
- ordering:
- <list type="bullet">
- <item><description>Point (lowest),</description></item>
- <item><description>MultiPoint,</description></item>
- <item><description>LineString,</description></item>
- <item><description>LinearRing,</description></item>
- <item><description>MultiLineString,</description></item>
- <item><description>Polygon,</description></item>
- <item><description>MultiPolygon,</description></item>
- <item><description>GeometryCollection (highest).</description></item>
- </list>
- If the two <c>Geometry</c>s have the same class, their first
- elements are compared. If those are the same, the second elements are
- compared, etc.
- </remarks>
- <param name="o">A <c>Geometry</c> with which to compare this <c>Geometry</c></param>
- <param name="comp">A <c>IComparer<CoordinateSequence></c></param>
- <returns>
- A positive number, 0, or a negative number, depending on whether
- this object is greater than, equal to, or less than <c>o</c>, as
- defined in "Normal Form For Geometry" in the NTS Technical
- Specifications.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.IsEquivalentClass(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Returns whether the two <c>Geometry</c>s are equal, from the point
- of view of the <c>EqualsExact</c> method. Called by <c>EqualsExact</c>
- . In general, two <c>Geometry</c> classes are considered to be
- "equivalent" only if they are the same class. An exception is <c>LineString</c>
- , which is considered to be equivalent to its subclasses.
- </summary>
- <param name="other">The <c>Geometry</c> with which to compare this <c>Geometry</c> for equality.</param>
- <returns>
- <c>true</c> if the classes of the two <c>Geometry</c>
- s are considered to be equal by the <c>equalsExact</c> method.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.CheckNotGeometryCollection(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Throws an exception if <c>g</c>'s type is a <c>GeometryCollection</c>.
- (Its subclasses do not trigger an exception).
- </summary>
- <param name="g">The <c>Geometry</c> to check.</param>
- <exception cref="T:System.ArgumentException">
- if <c>g</c> is a <c>GeometryCollection</c>, but not one of its subclasses.
- </exception>
- </member>
- <member name="P:NetTopologySuite.Geometries.Geometry.IsGeometryCollection">
- <summary>
- Tests whether this is an instance of a general {@link GeometryCollection},
- rather than a homogeneous subclass.
- </summary>
- <returns><c>true</c> if this is a heterogeneous GeometryCollection</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.ComputeEnvelopeInternal">
- <summary>
- Returns the minimum and maximum x and y values in this <c>Geometry</c>,
- or a null <c>Envelope</c> if this <c>Geometry</c> is empty.
- Unlike <c>EnvelopeInternal</c>, this method calculates the <c>Envelope</c>
- each time it is called; <c>EnvelopeInternal</c> caches the result
- of this method.
- </summary>
- <returns>
- This <c>Geometry</c>s bounding box; if the <c>Geometry</c>
- is empty, <c>Envelope.IsNull</c> will return <c>true</c>.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.CompareToSameClass(System.Object)">
- <summary>
- Returns whether this <c>Geometry</c> is greater than, equal to,
- or less than another <c>Geometry</c> having the same class.
- </summary>
- <param name="o">A <c>Geometry</c> having the same class as this <c>Geometry</c>.</param>
- <returns>
- A positive number, 0, or a negative number, depending on whether
- this object is greater than, equal to, or less than <c>o</c>, as
- defined in "Normal Form For Geometry" in the NTS Technical
- Specifications.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.CompareToSameClass(System.Object,System.Collections.Generic.IComparer{NetTopologySuite.Geometries.CoordinateSequence})">
- <summary>
- Returns whether this <c>Geometry</c> is greater than, equal to,
- or less than another <c>Geometry</c> of the same class.
- using the given <see cref="T:System.Collections.Generic.IComparer`1"/>.
- </summary>
- <param name="o">A <c>Geometry</c> having the same class as this <c>Geometry</c></param>
- <param name="comp">The comparer</param>
- <returns>
- A positive number, 0, or a negative number, depending on whether
- this object is greater than, equal to, or less than <c>o</c>, as
- defined in "Normal Form For Geometry" in the JTS Technical
- Specifications
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.Compare(System.Collections.Generic.List{NetTopologySuite.Geometries.Geometry},System.Collections.Generic.List{NetTopologySuite.Geometries.Geometry})">
- <summary>
- Returns the first non-zero result of <c>CompareTo</c> encountered as
- the two <c>Collection</c>s are iterated over. If, by the time one of
- the iterations is complete, no non-zero result has been encountered,
- returns 0 if the other iteration is also complete. If <c>b</c>
- completes before <c>a</c>, a positive number is returned; if a
- before b, a negative number.
- </summary>
- <param name="a">A <c>Collection</c> of <c>IComparable</c>s.</param>
- <param name="b">A <c>Collection</c> of <c>IComparable</c>s.</param>
- <returns>The first non-zero <c>compareTo</c> result, if any; otherwise, zero.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.Equal(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,System.Double)">
- <summary>
-
- </summary>
- <param name="a"></param>
- <param name="b"></param>
- <param name="tolerance"></param>
- <returns></returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.Geometry.SortIndex">
- <summary>
- Gets a value to sort the geometry
- </summary>
- <remarks>
- NOTE:<br/>
- For JTS v1.17 this property's getter has been renamed to <c>getTypeCode()</c>.
- In order not to break binary compatibility we did not follow.
- </remarks>
- </member>
- <member name="M:NetTopologySuite.Geometries.Geometry.CreatePointFromInternalCoord(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Geometry)">
- <summary>
-
- </summary>
- <param name="coord"></param>
- <param name="exemplar"></param>
- <returns></returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.Geometry.IsRectangle">
- <summary>
- Tests whether this is a rectangular <see cref="T:NetTopologySuite.Geometries.Polygon"/>.
- </summary>
- <returns><c>true</c> if the geometry is a rectangle.</returns>
- <remarks>Polygon overrides to check for actual rectangle.</remarks>
- </member>
- <member name="F:NetTopologySuite.Geometries.Geometry.DefaultFactory">
- <summary>
- 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" />.
- </summary>
- <seealso cref="F:NetTopologySuite.Geometries.GeometryFactory.Default" />
- <seealso cref="F:NetTopologySuite.Geometries.GeometryFactory.Fixed"/>
- </member>
- <member name="T:NetTopologySuite.Geometries.GeometryCollection">
- <summary>
- Basic implementation of <c>GeometryCollection</c>.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.GeometryCollection.Empty">
- <summary>
- Represents an empty <c>GeometryCollection</c>.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.GeometryCollection._geometries">
- <summary>
- Internal representation of this <c>GeometryCollection</c>.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryCollection.#ctor(NetTopologySuite.Geometries.Geometry[])">
- <summary>
-
- </summary>
- <param name="geometries">
- The <c>Geometry</c>s for this <c>GeometryCollection</c>,
- or <c>null</c> or an empty array to create the empty
- point. Elements may be empty <c>Geometry</c>s,
- but not <c>null</c>s.
- </param>
- <remarks>
- For create this <see cref="T:NetTopologySuite.Geometries.Geometry"/> is used a standard <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>
- with <see cref="T:NetTopologySuite.Geometries.PrecisionModel" /> <c> == </c> <see cref="F:NetTopologySuite.Geometries.PrecisionModels.Floating"/>.
- </remarks>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryCollection.#ctor(NetTopologySuite.Geometries.Geometry[],NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
-
- </summary>
- <param name="geometries">
- The <c>Geometry</c>s for this <c>GeometryCollection</c>,
- or <c>null</c> or an empty array to create the empty
- point. Elements may be empty <c>Geometry</c>s,
- but not <c>null</c>s.
- </param>
- <param name="factory"></param>
- </member>
- <member name="P:NetTopologySuite.Geometries.GeometryCollection.SortIndex">
- <summary>
- Gets a value to sort the geometry
- </summary>
- <remarks>
- NOTE:<br/>
- For JTS v1.17 this property's getter has been renamed to <c>getTypeCode()</c>.
- In order not to break binary compatibility we did not follow.
- </remarks>
- </member>
- <member name="P:NetTopologySuite.Geometries.GeometryCollection.Coordinate">
- <inheritdoc/>
- </member>
- <member name="P:NetTopologySuite.Geometries.GeometryCollection.Coordinates">
- <summary>
- Collects all coordinates of all subgeometries into an Array.
- Note that while changes to the coordinate objects themselves
- may modify the Geometries in place, the returned Array as such
- is only a temporary container which is not synchronized back.
- </summary>
- <returns>The collected coordinates.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryCollection.GetOrdinates(NetTopologySuite.Geometries.Ordinate)">
- <inheritdoc cref="M:NetTopologySuite.Geometries.Geometry.GetOrdinates(NetTopologySuite.Geometries.Ordinate)"/>
- </member>
- <member name="P:NetTopologySuite.Geometries.GeometryCollection.IsEmpty">
- <inheritdoc cref="P:NetTopologySuite.Geometries.Geometry.IsEmpty"/>
- </member>
- <member name="P:NetTopologySuite.Geometries.GeometryCollection.Dimension">
- <inheritdoc cref="P:NetTopologySuite.Geometries.Geometry.Dimension"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryCollection.HasDimension(NetTopologySuite.Geometries.Dimension)">
- <inheritdoc cref="M:NetTopologySuite.Geometries.Geometry.HasDimension(NetTopologySuite.Geometries.Dimension)"/>
- </member>
- <member name="P:NetTopologySuite.Geometries.GeometryCollection.BoundaryDimension">
- <inheritdoc cref="P:NetTopologySuite.Geometries.Geometry.BoundaryDimension"/>
- </member>
- <member name="P:NetTopologySuite.Geometries.GeometryCollection.NumGeometries">
- <inheritdoc cref="P:NetTopologySuite.Geometries.Geometry.NumGeometries"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryCollection.GetGeometryN(System.Int32)">
- <inheritdoc cref="M:NetTopologySuite.Geometries.Geometry.GetGeometryN(System.Int32)"/>
- </member>
- <member name="P:NetTopologySuite.Geometries.GeometryCollection.Geometries">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.GeometryCollection.NumPoints">
- <inheritdoc cref="P:NetTopologySuite.Geometries.Geometry.NumPoints"/>
- </member>
- <member name="P:NetTopologySuite.Geometries.GeometryCollection.GeometryType">
- <summary>
- Returns the name of this object's interface.
- </summary>
- <returns>"GeometryCollection"</returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.GeometryCollection.OgcGeometryType">
- <summary>
- Gets the OGC geometry type
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.GeometryCollection.Boundary">
- <inheritdoc cref="P:NetTopologySuite.Geometries.Geometry.Boundary"/>
- </member>
- <member name="P:NetTopologySuite.Geometries.GeometryCollection.Area">
- <summary>
- Returns the area of this <c>GeometryCollection</c>.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.GeometryCollection.Length">
- <summary>
- Returns the length of this <c>GeometryCollection</c>.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryCollection.EqualsExact(NetTopologySuite.Geometries.Geometry,System.Double)">
- <summary>
-
- </summary>
- <param name="other"></param>
- <param name="tolerance"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryCollection.Apply(NetTopologySuite.Geometries.ICoordinateFilter)">
- <inheritdoc cref="M:NetTopologySuite.Geometries.GeometryCollection.Apply(NetTopologySuite.Geometries.ICoordinateFilter)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryCollection.Apply(NetTopologySuite.Geometries.ICoordinateSequenceFilter)">
- <inheritdoc cref="M:NetTopologySuite.Geometries.GeometryCollection.Apply(NetTopologySuite.Geometries.ICoordinateSequenceFilter)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryCollection.Apply(NetTopologySuite.Geometries.IEntireCoordinateSequenceFilter)">
- <inheritdoc />
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryCollection.Apply(NetTopologySuite.Geometries.IGeometryFilter)">
- <inheritdoc cref="M:NetTopologySuite.Geometries.GeometryCollection.Apply(NetTopologySuite.Geometries.IGeometryFilter)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryCollection.Apply(NetTopologySuite.Geometries.IGeometryComponentFilter)">
- <inheritdoc cref="M:NetTopologySuite.Geometries.GeometryCollection.Apply(NetTopologySuite.Geometries.IGeometryComponentFilter)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryCollection.CopyInternal">
- <inheritdoc cref="M:NetTopologySuite.Geometries.Geometry.CopyInternal"/>>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryCollection.Normalize">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryCollection.ComputeEnvelopeInternal">
- <summary>
-
- </summary>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryCollection.CompareToSameClass(System.Object)">
- <inheritdoc cref="M:NetTopologySuite.Geometries.Geometry.CompareToSameClass(System.Object)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryCollection.CompareToSameClass(System.Object,System.Collections.Generic.IComparer{NetTopologySuite.Geometries.CoordinateSequence})">
- <inheritdoc cref="M:NetTopologySuite.Geometries.Geometry.CompareToSameClass(System.Object,System.Collections.Generic.IComparer{NetTopologySuite.Geometries.CoordinateSequence})"/>
- </member>
- <member name="P:NetTopologySuite.Geometries.GeometryCollection.IsHomogeneous">
- <summary>
- Return <c>true</c> if all features in collection are of the same type.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryCollection.GetEnumerator">
- <inheritdoc />
- </member>
- <member name="P:NetTopologySuite.Geometries.GeometryCollection.Item(System.Int32)">
- <summary>
- Returns the iTh element in the collection.
- </summary>
- <param name="i"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryCollection.Reverse">
- <summary>
- Creates a <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/> with
- every component reversed.
- The order of the components in the collection are not reversed.
- </summary>
- <returns>A <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/></returns> in the reverse order
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryCollection.ReverseInternal">
- <summary>
- The actual implementation of the <see cref="M:NetTopologySuite.Geometries.Geometry.Reverse"/> function for <c>GeometryCollection</c>s.
- </summary>
- <returns>A reversed geometry</returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.GeometryCollection.Count">
- <summary>
- Returns the number of geometries contained by this <see cref="T:NetTopologySuite.Geometries.GeometryCollection" />.
- </summary>
- </member>
- <member name="T:NetTopologySuite.Geometries.GeometryCollectionEnumerator">
- <summary>
- Iterates over all <c>Geometry</c>'s in a <c>GeometryCollection</c>.
- Implements a pre-order depth-first traversal of the <c>GeometryCollection</c>
- (which may be nested). The original <c>GeometryCollection</c> is
- returned as well (as the first object), as are all sub-collections. It is
- simple to ignore the <c>GeometryCollection</c> objects if they are not
- needed.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.GeometryCollectionEnumerator._parent">
- <summary>
- The <c>GeometryCollection</c> being iterated over.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.GeometryCollectionEnumerator._atStart">
- <summary>
- Indicates whether or not the first element (the <c>GeometryCollection</c>)
- has been returned.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.GeometryCollectionEnumerator._max">
- <summary>
- The number of <c>Geometry</c>s in the the <c>GeometryCollection</c>.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.GeometryCollectionEnumerator._index">
- <summary>
- The index of the <c>Geometry</c> that will be returned when <c>next</c>
- is called.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.GeometryCollectionEnumerator._subcollectionEnumerator">
- <summary>
- The iterator over a nested <c>GeometryCollection</c>, or <c>null</c>
- if this <c>GeometryCollectionIterator</c> is not currently iterating
- over a nested <c>GeometryCollection</c>.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryCollectionEnumerator.#ctor(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Constructs an iterator over the given <c>GeometryCollection</c>.
- </summary>
- <param name="parent">
- The collection over which to iterate; also, the first
- element returned by the iterator.
- </param>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryCollectionEnumerator.MoveNext">
- <inheritdoc cref="M:System.Collections.IEnumerator.MoveNext"/>>
- </member>
- <member name="P:NetTopologySuite.Geometries.GeometryCollectionEnumerator.System#Collections#IEnumerator#Current">
- <inheritdoc cref="P:System.Collections.IEnumerator.Current"/>>
- <remarks> The parent GeometryCollection is the first object returned!</remarks>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryCollectionEnumerator.Reset">
- <inheritdoc cref="M:System.Collections.IEnumerator.Reset"/>
- </member>
- <member name="P:NetTopologySuite.Geometries.GeometryCollectionEnumerator.Current">
- <inheritdoc cref="P:System.Collections.Generic.IEnumerator`1.Current"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryCollectionEnumerator.Dispose">
- <inheritdoc cref="M:System.IDisposable.Dispose"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryCollectionEnumerator.GetEnumerator">
- <inheritdoc cref="M:System.Collections.Generic.IEnumerable`1.GetEnumerator"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryCollectionEnumerator.System#Collections#IEnumerable#GetEnumerator">
- <inheritdoc cref="M:System.Collections.IEnumerable.GetEnumerator"/>
- </member>
- <member name="T:NetTopologySuite.Geometries.FilterMethod">
- <summary>
- Delegate function declaration to handle filter operation
- </summary>
- <param name="geom">The geometry to filter</param>
- </member>
- <member name="T:NetTopologySuite.Geometries.GeometryComponentFilter">
- <summary>
- An <see cref="T:NetTopologySuite.Geometries.IGeometryComponentFilter"/> implementation that applies filtering with the provided <see cref="T:NetTopologySuite.Geometries.FilterMethod"/>
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryComponentFilter.#ctor(NetTopologySuite.Geometries.FilterMethod)">
- <summary>
- Creates an instance of this class
- </summary>
- <param name="filterMethod">The filter method to be used</param>
- </member>
- <member name="T:NetTopologySuite.Geometries.GeometryFactory">
- <summary>
- Supplies a set of utility methods for building Geometry objects
- from lists of Coordinates.
- </summary>
- <remarks>
- Note that the factory constructor methods do <b>not</b> change the input coordinates in any way.
- In particular, they are not rounded to the supplied <c>PrecisionModel</c>.
- It is assumed that input Coordinates meet the given precision.
- <para/>
- Instances of this class are thread-safe.
- </remarks>
- </member>
- <member name="F:NetTopologySuite.Geometries.GeometryFactory.Default">
- <summary>
- A predefined <see cref="T:NetTopologySuite.Geometries.GeometryFactory" /> with <see cref="P:NetTopologySuite.Geometries.GeometryFactory.PrecisionModel" />c
- <c> == </c> <see cref="F:NetTopologySuite.Geometries.PrecisionModels.Floating" />.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.GeometryFactory.Floating">
- <summary>
- A predefined <see cref="T:NetTopologySuite.Geometries.GeometryFactory" /> with <see cref="P:NetTopologySuite.Geometries.GeometryFactory.PrecisionModel" />
- <c> == </c> <see cref="F:NetTopologySuite.Geometries.PrecisionModels.Floating" />.
- </summary>
- <remarks>A shortcut for <see cref="F:NetTopologySuite.Geometries.GeometryFactory.Default" />.</remarks>
- </member>
- <member name="F:NetTopologySuite.Geometries.GeometryFactory.FloatingSingle">
- <summary>
- A predefined <see cref="T:NetTopologySuite.Geometries.GeometryFactory" /> with <see cref="P:NetTopologySuite.Geometries.GeometryFactory.PrecisionModel" />
- <c> == </c> <see cref="F:NetTopologySuite.Geometries.PrecisionModels.FloatingSingle" />.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.GeometryFactory.Fixed">
- <summary>
- A predefined <see cref="T:NetTopologySuite.Geometries.GeometryFactory" /> with <see cref="P:NetTopologySuite.Geometries.GeometryFactory.PrecisionModel" />
- <c> == </c> <see cref="F:NetTopologySuite.Geometries.PrecisionModels.Fixed" />.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.GeometryFactory.PrecisionModel">
- <summary>
- Returns the PrecisionModel that Geometries created by this factory
- will be associated with.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.GeometryFactory.CoordinateSequenceFactory">
- <summary>
- Gets a value indicating the factory to use for creating <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>s
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.GeometryFactory.SRID">
- <summary>
- The SRID value defined for this factory.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.GeometryFactory.GeometryOverlay">
- <summary>
- Gets a value indicating the geometry overlay function set to use
- </summary>
- <returns>A geometry overlay function set.</returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.GeometryFactory.GeometryRelate">
- <summary>
- Gets a value indicating the geometry relation function set to use
- </summary>
- <returns>A geometry relation function set.</returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.GeometryFactory.ElevationModel">
- <summary>
- Gets a value indicating the elevation model that is attached to this geometry factory
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.GeometryFactory.CoordinateEqualityComparer">
- <summary>
- Gets a value indicating the geometry overlay function set to use
- </summary>
- <returns>A geometry overlay function set.</returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.GeometryFactory.GeometryServices">
- <summary>
- Gets a value indicating the <see cref="T:NetTopologySuite.NtsGeometryServices"/> object that created this factory.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryFactory.CreatePointFromInternalCoord(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Geometry)">
- <summary>
-
- </summary>
- <param name="coord"></param>
- <param name="exemplar"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryFactory.#ctor(NetTopologySuite.Geometries.PrecisionModel,System.Int32,NetTopologySuite.Geometries.CoordinateSequenceFactory,NetTopologySuite.NtsGeometryServices)">
- <summary>
- Constructs a <c>GeometryFactory</c> that generates Geometries having the given
- <paramref name="precisionModel">precision model</paramref>, <paramref name="srid">spatial-reference ID</paramref>,
- <paramref name="coordinateSequenceFactory">CoordinateSequence</paramref> and
- <paramref name="services"><c>NtsGeometryServices</c></paramref>.
- </summary>
- <param name="precisionModel">A precision model</param>
- <param name="srid">A spatial reference id</param>
- <param name="coordinateSequenceFactory">A coordinate sequence factory</param>
- <param name="services"><c>NtsGeometryServices</c> object creating this factory</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryFactory.#ctor(NetTopologySuite.Geometries.PrecisionModel,NetTopologySuite.Algorithm.ElevationModel,System.Int32,NetTopologySuite.Geometries.CoordinateSequenceFactory,NetTopologySuite.NtsGeometryServices)">
- <summary>
- Constructs a <c>GeometryFactory</c> that generates Geometries having the given
- <paramref name="precisionModel">precision model</paramref>, <paramref name="elevationModel"/>,
- <paramref name="srid">spatial-reference ID</paramref>, <paramref name="coordinateSequenceFactory">CoordinateSequence</paramref> and
- <paramref name="services"><c>NtsGeometryServices</c></paramref>.
- </summary>
- <param name="precisionModel">A precision model</param>
- <param name="elevationModel">An elevation model. May be <c>null</c></param>
- <param name="srid">A spatial reference id</param>
- <param name="coordinateSequenceFactory">A coordinate sequence factory</param>
- <param name="services"><c>NtsGeometryServices</c> object creating this factory</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryFactory.#ctor(NetTopologySuite.Geometries.PrecisionModel,System.Int32,NetTopologySuite.Geometries.CoordinateSequenceFactory)">
- <summary>
- Constructs a GeometryFactory that generates Geometries having the given
- PrecisionModel, spatial-reference ID, and CoordinateSequence implementation.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryFactory.#ctor(NetTopologySuite.Geometries.CoordinateSequenceFactory)">
- <summary>
- Constructs a GeometryFactory that generates Geometries having the given
- CoordinateSequence implementation, a double-precision floating PrecisionModel and a
- spatial-reference ID of 0.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryFactory.#ctor(NetTopologySuite.Geometries.PrecisionModel)">
- <summary>
- Constructs a GeometryFactory that generates Geometries having the given
- {PrecisionModel} and the default CoordinateSequence
- implementation.
- </summary>
- <param name="precisionModel">The PrecisionModel to use.</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryFactory.#ctor(NetTopologySuite.Geometries.PrecisionModel,System.Int32)">
- <summary>
- Constructs a GeometryFactory that generates Geometries having the given
- <c>PrecisionModel</c> and spatial-reference ID, and the default CoordinateSequence
- implementation.
- </summary>
- <param name="precisionModel">The PrecisionModel to use.</param>
- <param name="srid">The SRID to use.</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryFactory.#ctor">
- <summary>
- Constructs a GeometryFactory that generates Geometries having a floating
- PrecisionModel and a spatial-reference ID of 0.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryFactory.ToPointArray(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})">
- <summary>
- Converts the <c>IEnumerable</c> to an array.
- </summary>
- <param name="points">The <c>IEnumerable</c> of Points to convert.</param>
- <returns>The <c>IEnumerable</c> in array format.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryFactory.ToGeometryArray(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})">
- <summary>
- Converts the <c>IEnumerable</c> to an array.
- </summary>
- <param name="geometries">The <c>IEnumerable</c> of <c>Geometry</c>'s to convert.</param>
- <returns>The <c>IEnumerable</c> in array format.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryFactory.ToLineStringArray(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})">
- <summary>
- Converts the <c>IEnumerable</c> to an array.
- </summary>
- <param name="lineStrings">The <c>IEnumerable</c> of LineStrings to convert.</param>
- <returns>The <c>IEnumerable</c> in array format.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryFactory.ToLinearRingArray(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})">
- <summary>
- Converts the <c>IEnumerable</c> to an array.
- </summary>
- <param name="linearRings">The <c>IEnumerable</c> of LinearRings to convert.</param>
- <returns>The <c>IEnumerable</c> in array format.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryFactory.ToPolygonArray(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})">
- <summary>
- Converts the <c>IEnumerable</c> to an array.
- </summary>
- <param name="polygons">The <c>IEnumerable</c> of Polygons to convert.</param>
- <returns>The <c>IEnumerable</c> in array format.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryFactory.ToMultiPointArray(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})">
- <summary>
- Converts the <c>IEnumerable</c> to an array.
- </summary>
- <param name="multiPoints">The <c>IEnumerable</c> of MultiPoints to convert.</param>
- <returns>The <c>IEnumerable</c> in array format.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryFactory.ToMultiLineStringArray(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})">
- <summary>
- Converts the <c>IEnumerable</c> to an array.
- </summary>
- <param name="multiLineStrings">The <c>IEnumerable</c> of MultiLineStrings to convert.</param>
- <returns>The <c>IEnumerable</c> in array format.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryFactory.ToMultiPolygonArray(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})">
- <summary>
- Converts the <c>IEnumerable</c> to an array.
- </summary>
- <param name="multiPolygons">The <c>IEnumerable</c> of MultiPolygons to convert.</param>
- <returns>The <c>IEnumerable</c> in array format.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryFactory.ToGeometry(NetTopologySuite.Geometries.Envelope)">
- <summary>
- Creates a <see cref="T:NetTopologySuite.Geometries.Geometry"/> with the same extent as the given envelope.
- </summary>
- <remarks>
- <para>
- The Geometry returned is guaranteed to be valid.
- To provide this behavior, the following cases occur:
- </para>
- <para>
- If the <c>Envelope</c> is:
- <ul>
- <li>null returns an empty <see cref="T:NetTopologySuite.Geometries.Point"/></li>
- <li>a point returns a non-empty <see cref="T:NetTopologySuite.Geometries.Point"/></li>
- <li>a line returns a two-point <see cref="T:NetTopologySuite.Geometries.LineString"/></li>
- <li>a rectangle returns a <see cref="T:NetTopologySuite.Geometries.Polygon"/> whose points are (minx, maxy), (minx, maxy), (maxx, maxy), (maxx, miny).</li>
- </ul>
- </para>
- </remarks>
- <param name="envelope">The <c>Envelope</c></param>
- <returns>
- 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)
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryFactory.CreatePoint">
- <summary>
- Creates an empty Point
- </summary>
- <returns>
- An empty Point
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryFactory.CreatePoint(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Creates a Point using the given Coordinate.
- A <c>null</c> coordinate creates an empty Geometry.
- </summary>
- <param name="coordinate">a Coordinate, or null</param>
- <returns>A <see cref="T:NetTopologySuite.Geometries.Point"/> object</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryFactory.CreatePoint(NetTopologySuite.Geometries.CoordinateSequence)">
- <summary>
- Creates a <c>Point</c> using the given <c>CoordinateSequence</c>; a null or empty
- CoordinateSequence will create an empty Point.
- </summary>
- <param name="coordinates">a CoordinateSequence (possibly empty), or null</param>
- <returns>A <see cref="T:NetTopologySuite.Geometries.Point"/> object</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryFactory.CreateLineString">
- <summary>
- Creates an empty LineString
- </summary>
- <returns>An empty LineString</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryFactory.CreateLineString(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Creates a LineString using the given Coordinates.
- A null or empty array creates an empty LineString.
- </summary>
- <param name="coordinates">An array without null elements, or an empty array, or null.</param>
- <returns>A <see cref="T:NetTopologySuite.Geometries.LineString"/> object</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryFactory.CreateLineString(NetTopologySuite.Geometries.CoordinateSequence)">
- <summary>
- Creates a LineString using the given CoordinateSequence.
- A null or empty CoordinateSequence creates an empty LineString.
- </summary>
- <param name="coordinates">A CoordinateSequence (possibly empty), or null.</param>
- <returns>A <see cref="T:NetTopologySuite.Geometries.LineString"/> object</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryFactory.CreateLinearRing">
- <summary>Creates an empty LinearRing</summary>
- <returns>An empty LinearRing</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryFactory.CreateLinearRing(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Creates a <c>LinearRing</c> using the given <c>Coordinates</c>; a null or empty array
- creates an empty LinearRing. The points must form a closed and simple
- linestring. Consecutive points must not be equal.
- </summary>
- <param name="coordinates">An array without null elements, or an empty array, or null.</param>
- <returns>A <see cref="T:NetTopologySuite.Geometries.LinearRing"/> object</returns>
- <exception cref="T:System.ArgumentException"> If the ring is not closed, or has too few points</exception>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryFactory.CreateLinearRing(NetTopologySuite.Geometries.CoordinateSequence)">
- <summary>
- Creates a <c>LinearRing</c> using the given <c>CoordinateSequence</c>; a null or empty CoordinateSequence
- creates an empty LinearRing. The points must form a closed and simple
- linestring. Consecutive points must not be equal.
- </summary>
- <param name="coordinates">A CoordinateSequence (possibly empty), or null.</param>
- <returns>A <see cref="T:NetTopologySuite.Geometries.LinearRing"/> object</returns>
- <exception cref="T:System.ArgumentException"> If the ring is not closed, or has too few points</exception>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryFactory.CreatePolygon">
- <summary>Creates an empty Polygon</summary>
- <returns>An empty Polygon</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryFactory.CreatePolygon(NetTopologySuite.Geometries.LinearRing,NetTopologySuite.Geometries.LinearRing[])">
- <summary>
- Constructs a <c>Polygon</c> with the given exterior boundary and
- interior boundaries.
- </summary>
- <param name="shell">
- The outer boundary of the new <c>Polygon</c>, or
- <c>null</c> or an empty <c>LinearRing</c> if
- the empty point is to be created.
- </param>
- <param name="holes">
- The inner boundaries of the new <c>Polygon</c>, or
- <c>null</c> or empty <c>LinearRing</c> s if
- the empty point is to be created.
- </param>
- <returns>A <see cref="T:NetTopologySuite.Geometries.Polygon"/> object</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryFactory.CreatePolygon(NetTopologySuite.Geometries.CoordinateSequence)">
- <summary>
- Constructs a <c>Polygon</c> with the given exterior boundary.
- </summary>
- <param name="coordinates">the outer boundary of the new <c>Polygon</c>, or
- <c>null</c> or an empty <c>LinearRing</c> if
- the empty geometry is to be created.</param>
- <returns>A <see cref="T:NetTopologySuite.Geometries.Polygon"/> object</returns>
- <exception cref="T:System.ArgumentException">If the boundary ring is invalid</exception>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryFactory.CreatePolygon(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Constructs a <c>Polygon</c> with the given exterior boundary.
- </summary>
- <param name="coordinates">the outer boundary of the new <c>Polygon</c>, or
- <c>null</c> or an empty <c>LinearRing</c> if
- the empty geometry is to be created.</param>
- <returns>A <see cref="T:NetTopologySuite.Geometries.Polygon"/> object</returns>
- <exception cref="T:System.ArgumentException">If the boundary ring is invalid</exception>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryFactory.CreatePolygon(NetTopologySuite.Geometries.LinearRing)">
- <summary>
- Constructs a <c>Polygon</c> with the given exterior boundary.
- </summary>
- <param name="shell">the outer boundary of the new <c>Polygon</c>, or
- <c>null</c> or an empty <c>LinearRing</c> if
- the empty geometry is to be created.</param>
- <returns>the created Polygon</returns>
- <exception cref="T:System.ArgumentException">If the boundary ring is invalid</exception>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryFactory.CreateMultiPoint">
- <summary>Creates an empty MultiPoint</summary>
- <returns>An empty MultiPoint</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryFactory.CreateMultiPoint(NetTopologySuite.Geometries.Point[])">
- <summary>
- Creates a <see cref="T:NetTopologySuite.Geometries.MultiPoint"/> using the given Points.
- A null or empty array will create an empty MultiPoint.
- </summary>
- <param name="point">An array (without null elements), or an empty array, or <c>null</c>.</param>
- <returns>A <see cref="T:NetTopologySuite.Geometries.MultiPoint"/> object</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryFactory.CreateMultiPointFromCoords(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Creates a <see cref="T:NetTopologySuite.Geometries.MultiPoint"/> using the given Coordinates.
- A null or empty array will create an empty MultiPoint.
- </summary>
- <param name="coordinates">An array (without null elements), or an empty array, or <c>null</c></param>
- <returns>A <see cref="T:NetTopologySuite.Geometries.MultiPoint"/> object</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryFactory.CreateMultiPoint(NetTopologySuite.Geometries.CoordinateSequence)">
- <summary>
- Creates a <see cref="T:NetTopologySuite.Geometries.MultiPoint"/> using the given CoordinateSequence.
- A null or empty CoordinateSequence will create an empty MultiPoint.
- </summary>
- <param name="coordinates">A CoordinateSequence (possibly empty), or <c>null</c>.</param>
- <returns>A <see cref="T:NetTopologySuite.Geometries.MultiPoint"/> object</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryFactory.CreateMultiLineString">
- <summary>Creates an empty MultiLineString</summary>
- <returns>An empty MultiLineString</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryFactory.CreateMultiLineString(NetTopologySuite.Geometries.LineString[])">
- <summary>
- Creates a <c>MultiLineString</c> using the given <c>LineStrings</c>; a null or empty
- array will create an empty MultiLineString.
- </summary>
- <param name="lineStrings">LineStrings, each of which may be empty but not null-</param>
- <returns>A <see cref="T:NetTopologySuite.Geometries.MultiLineString"/> object</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryFactory.CreateMultiPolygon">
- <summary>Creates an empty MultiPolygon</summary>
- <returns>An empty MultiPolygon</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryFactory.CreateMultiPolygon(NetTopologySuite.Geometries.Polygon[])">
- <summary>
- Creates a <c>MultiPolygon</c> using the given <c>Polygons</c>; a null or empty array
- will create an empty Polygon. The polygons must conform to the
- assertions specified in the <see href="http://www.opengis.org/techno/specs.htm"/> OpenGIS Simple Features
- Specification for SQL.
- </summary>
- <param name="polygons">Polygons, each of which may be empty but not null.</param>
- <returns>A <see cref="T:NetTopologySuite.Geometries.MultiPolygon"/> object</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryFactory.CreateGeometryCollection">
- <summary>Creates an empty GeometryCollection</summary>
- <returns>An empty GeometryCollection</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryFactory.CreateGeometryCollection(NetTopologySuite.Geometries.Geometry[])">
- <summary>
- Creates a <c>GeometryCollection</c> using the given <c>Geometries</c>; a null or empty
- array will create an empty GeometryCollection.
- </summary>
- <param name="geometries">an array of Geometries, each of which may be empty but not null, or null</param>
- <returns>A <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/> object</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryFactory.BuildGeometry(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})">
- <summary>
- Build an appropriate <c>Geometry</c>, <c>MultiGeometry</c>, or
- <c>GeometryCollection</c> to contain the <c>Geometry</c>s in
- it.
- </summary>
- <remarks>
- If <c>geomList</c> contains a single <c>Polygon</c>,
- the <c>Polygon</c> is returned.<br/>
- If <c>geomList</c> contains several <c>Polygon</c>s, a
- <c>MultiPolygon</c> is returned.<br/>
- If <c>geomList</c> contains some <c>Polygon</c>s and
- some <c>LineString</c>s, a <c>GeometryCollection</c> is
- returned.<br/>
- If <c>geomList</c> is empty, an empty <c>GeometryCollection</c>
- is returned.
- Note that this method does not "flatten" Geometries in the input, and hence if
- any MultiGeometries are contained in the input a GeometryCollection containing
- them will be returned.
- </remarks>
- <param name="geomList">The <c>Geometry</c> to combine.</param>
- <returns>
- A <see cref="T:NetTopologySuite.Geometries.Geometry"/> of the "smallest", "most type-specific"
- class that can contain the elements of <c>geomList</c>.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryFactory.CreateEmpty(NetTopologySuite.Geometries.Dimension)">
- <summary>
- Creates an empty atomic geometry of the given dimension.
- If passed a dimension of <see cref="F:NetTopologySuite.Geometries.Dimension.False"/>
- will create an empty <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/>.
- </summary>
- <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>
- <returns>An empty atomic geometry of given dimension</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryFactory.CreateGeometry(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Creates a deep copy of the input <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
- The <see cref="T:NetTopologySuite.Geometries.CoordinateSequenceFactory"/> defined for this factory
- is used to copy the <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>s
- of the input geometry.
- <para/>
- This is a convenient way to change the <tt>CoordinateSequence</tt>
- used to represent a geometry, or to change the
- factory used for a geometry.
- <para/>
- <see cref="M:NetTopologySuite.Geometries.Geometry.Copy"/> can also be used to make a deep copy,
- but it does not allow changing the CoordinateSequence type.
- </summary>
- <param name="g">The geometry</param>
- <returns>A deep copy of the input geometry, using the CoordinateSequence type of this factory</returns>
- <seealso cref="M:NetTopologySuite.Geometries.Geometry.Copy"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryFactory.WithSRID(System.Int32)">
- <summary>
- Returns a new <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/> whose <see cref="P:NetTopologySuite.Geometries.GeometryFactory.SRID"/> is
- the given value and whose other values and behavior are, as near as we possibly can make
- it, the same as our own.
- </summary>
- <param name="srid">
- The <see cref="P:NetTopologySuite.Geometries.GeometryFactory.SRID"/> for the result.
- </param>
- <returns>
- The cloned instance.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryFactory.ToString">
- <inheritdoc cref="M:System.Object.ToString"/>
- </member>
- <member name="T:NetTopologySuite.Geometries.GeometryFactoryEx">
- <summary>
- An extended <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/> that is capable of enforcing a ring orientation for polygons.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.GeometryFactoryEx.DefaultShellRingOrientation">
- <summary>
- Gets or sets the default polygon shell ring orientation that is used when nothing else has been set.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.GeometryFactoryEx.DefaultPrecisionModel">
- <summary>
- Gets or sets the default precision model to use with these geometry factories
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.GeometryFactoryEx.DefaultCoordinateSequenceFactory">
- <summary>
- Gets or sets the default coordinate sequence factory to use with these geometry factories
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.GeometryFactoryEx.DefaultSRID">
- <summary>
- Gets or sets the default spatial reference id.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryFactoryEx.#ctor(NetTopologySuite.Geometries.PrecisionModel,System.Int32,NetTopologySuite.Geometries.CoordinateSequenceFactory,NetTopologySuite.NtsGeometryServices)">
- <summary>
- Constructs a GeometryFactory that generates Geometries having the given
- PrecisionModel, spatial-reference ID, and CoordinateSequence implementation.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryFactoryEx.#ctor(NetTopologySuite.Geometries.PrecisionModel,System.Int32,NetTopologySuite.Geometries.CoordinateSequenceFactory)">
- <summary>
- Constructs a GeometryFactory that generates Geometries having the given
- PrecisionModel, spatial-reference ID, and CoordinateSequence implementation.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryFactoryEx.#ctor(NetTopologySuite.Geometries.CoordinateSequenceFactory)">
- <summary>
- Constructs a GeometryFactory that generates Geometries having the given
- CoordinateSequence implementation, a double-precision floating PrecisionModel and a
- spatial-reference ID of 0.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryFactoryEx.#ctor(NetTopologySuite.Geometries.PrecisionModel)">
- <summary>
- Constructs a GeometryFactory that generates Geometries having the given
- {PrecisionModel} and the default CoordinateSequence
- implementation.
- </summary>
- <param name="precisionModel">The PrecisionModel to use.</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryFactoryEx.#ctor(NetTopologySuite.Geometries.PrecisionModel,System.Int32)">
- <summary>
- Constructs a GeometryFactory that generates Geometries having the given
- <c>PrecisionModel</c> and spatial-reference ID, and the default CoordinateSequence
- implementation.
- </summary>
- <param name="precisionModel">The PrecisionModel to use.</param>
- <param name="srid">The SRID to use.</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryFactoryEx.#ctor">
- <summary>
- Constructs a GeometryFactory that generates Geometries having a floating
- PrecisionModel and a spatial-reference ID of 0.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.GeometryFactoryEx._polygonShellRingOrientation">
- <summary>
- The polygon shell ring orientation enforced by this factory
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.GeometryFactoryEx.OrientationOfExteriorRing">
- <summary>
- Gets or sets a value indicating the ring orientation of the
- <c>Polygon</c>'s exterior rings.<para>
- If its value is <see cref="F:NetTopologySuite.Geometries.LinearRingOrientation.DontCare"/>, this
- factory behaves just like the base <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>.
- </para>
- </summary>
- <remarks>
- The setter of this property has to be used prior to any call
- to <c>CreatePolygon</c>, <c>CreateMultiPolygon</c>, or
- <c>ReplaceSRID</c></remarks>
- <seealso cref="M:NetTopologySuite.Geometries.GeometryFactory.CreatePolygon(NetTopologySuite.Geometries.Coordinate[])"/>
- <seealso cref="M:NetTopologySuite.Geometries.GeometryFactory.CreatePolygon(NetTopologySuite.Geometries.CoordinateSequence)"/>
- <seealso cref="M:NetTopologySuite.Geometries.GeometryFactory.CreatePolygon(NetTopologySuite.Geometries.LinearRing)"/>
- <seealso cref="M:NetTopologySuite.Geometries.GeometryFactory.CreatePolygon(NetTopologySuite.Geometries.LinearRing,NetTopologySuite.Geometries.LinearRing[])"/>
- <seealso cref="M:NetTopologySuite.Geometries.GeometryFactory.CreateMultiPolygon(NetTopologySuite.Geometries.Polygon[])"/>
- </member>
- <member name="P:NetTopologySuite.Geometries.GeometryFactoryEx.OrientationOfInteriorRings">
- <summary>
- Gets a value indicating the ring orientation for the interior rings
- </summary>
- <remarks>
- This value is always opposite of <see cref="P:NetTopologySuite.Geometries.GeometryFactoryEx.OrientationOfExteriorRing"/>,
- except when its value is <see cref="F:NetTopologySuite.Geometries.LinearRingOrientation.DontCare"/>.
- </remarks>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryFactoryEx.CreatePolygon(NetTopologySuite.Geometries.LinearRing,NetTopologySuite.Geometries.LinearRing[])">
- <summary>
- Constructs a <c>Polygon</c> with the given exterior boundary and
- interior boundaries.
- <para/>
- The <see cref="P:NetTopologySuite.Geometries.GeometryFactoryEx.OrientationOfExteriorRing"/> is enforced on the constructed polygon.
- </summary>
- <param name="shell">
- The outer boundary of the new <c>Polygon</c>, or
- <c>null</c> or an empty <c>LinearRing</c> if
- the empty point is to be created.
- </param>
- <param name="holes">
- The inner boundaries of the new <c>Polygon</c>, or
- <c>null</c> or empty <c>LinearRing</c> s if
- the empty point is to be created.
- </param>
- <returns>A <see cref="T:NetTopologySuite.Geometries.Polygon"/> object</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryFactoryEx.CreateMultiPolygon(NetTopologySuite.Geometries.Polygon[])">
- <summary>
- Creates a <c>MultiPolygon</c> using the given <c>Polygons</c>; a null or empty array
- will create an empty Polygon. The polygons must conform to the
- assertions specified in the <see href="http://www.opengis.org/techno/specs.htm"/> OpenGIS Simple Features
- Specification for SQL.<para/>
- The <see cref="P:NetTopologySuite.Geometries.GeometryFactoryEx.OrientationOfExteriorRing"/> is enforced on each polygon.
- </summary>
- <param name="polygons">Polygons, each of which may be empty but not null.</param>
- <returns>A <see cref="T:NetTopologySuite.Geometries.MultiPolygon"/> object</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryFactoryEx.WithSRID(System.Int32)">
- <inheritdoc />
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryFactoryEx.EnsureOrientation(NetTopologySuite.Geometries.LinearRing,NetTopologySuite.Geometries.LinearRingOrientation)">
- <summary>
- Utility function to enforce a specific ring orientation on a linear ring
- </summary>
- <param name="ring">The ring</param>
- <param name="ringOrientation">The required orientation</param>
- <returns>A ring</returns>
- </member>
- <member name="T:NetTopologySuite.Geometries.GeometryOverlay">
- <summary>
- A class that encapsulates geometry overlay functionality
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.GeometryOverlay.Legacy">
- <summary>
- Gets a value indicating a geometry overlay operation class that uses old NTS overlay operation set.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.GeometryOverlay.NG">
- <summary>
- Gets a value indicating a geometry overlay operation class that uses next-generation NTS overlay operation set.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryOverlay.Overlay(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Operation.Overlay.SpatialFunction)">
- <summary>
- Computes a <c>Geometry</c> representing the overlay of geometries <c>a</c> and <c>b</c>
- using the spatial function defined by <c>opCode</c>.
- </summary>
- <param name="a">The 1st geometry</param>
- <param name="b">The 2nd geometry</param>
- <param name="opCode">The spatial function for the overlay operation</param>
- <returns>The computed geometry</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryOverlay.Intersection(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes a <c>Geometry</c> representing the point-set which is
- common to both <c>a</c> and <c>b</c> Geometry.
- </summary>
- <param name="a">The 1st <c>Geometry</c></param>
- <param name="b">The 2nd <c>Geometry</c></param>
- <returns>A geometry representing the point-set common to the two <c>Geometry</c>s.</returns>
- <seealso cref="M:NetTopologySuite.Geometries.Geometry.Intersection(NetTopologySuite.Geometries.Geometry)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryOverlay.Union(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes a <c>Geometry</c> representing the point-set
- which is contained in both input <c>Geometry</c>s .
- </summary>
- <param name="a">The 1st <c>Geometry</c></param>
- <param name="b">The 2nd <c>Geometry</c></param>
- <returns>A point-set combining the points of
- <c>Geometry</c>'s <c>a</c> and <c>b</c>.
- </returns>
- <seealso cref="M:NetTopologySuite.Geometries.Geometry.Union(NetTopologySuite.Geometries.Geometry)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryOverlay.Difference(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes a <c>Geometry</c> representing the closure of the point-set
- of the points contained in this <c>Geometry</c> that are not contained in
- the <c>other</c> Geometry.
- </summary>
- <param name="a">The 1st <c>Geometry</c></param>
- <param name="b">The 2nd <c>Geometry</c></param>
- <returns>
- A Geometry representing the point-set difference
- of <c>Geometry</c>'s <c>a</c> and <c>b</c>.
- </returns>
- <seealso cref="M:NetTopologySuite.Geometries.Geometry.Difference(NetTopologySuite.Geometries.Geometry)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryOverlay.SymmetricDifference(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes a <c>Geometry</c> representing the closure of the point-set
- which is the union of the points in <c>Geometry</c> <c>a</c> which are not
- contained in the Geometry <c>b</c>,
- with the points in the <c>b</c> Geometry not contained in the <c>Geometry</c> <c>a</c>.
- </summary>
- <param name="a">The 1st <c>Geometry</c></param>
- <param name="b">The 2nd <c>Geometry</c></param>
- <returns>
- A Geometry representing the point-set symmetric difference
- of <c>Geometry</c>'s <c>a</c> and <c>b</c>.
- </returns>
- <seealso cref="M:NetTopologySuite.Geometries.Geometry.SymmetricDifference(NetTopologySuite.Geometries.Geometry)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryOverlay.Union(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes the union of all the elements in the <c>Geometry</c> <c>a</c>.
- </summary>
- <param name="a">The <c>Geometry</c></param>
- <returns>The union of <c>a</c></returns>
- <seealso cref="M:NetTopologySuite.Geometries.Geometry.Union"/>
- </member>
- <member name="T:NetTopologySuite.Geometries.GeometryRelate">
- <summary>
- Class which provides the available Relate operations for <see cref="T:NetTopologySuite.NtsGeometryServices"/>.
- </summary>
- <author>Felix Obermaier</author>
- </member>
- <member name="P:NetTopologySuite.Geometries.GeometryRelate.Legacy">
- <summary>
- Gets a value indicating a geometry relation predicate computation class that uses old NTS relate function set.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.GeometryRelate.NG">
- <summary>
- Gets a value indicating a geometry relation predicate computation class that uses next-generation NTS relate function set.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryRelate.Intersects(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests if the input geometries <paramref name="a"/> and <paramref name="b"/> intersect.
- <para/>
- The <c>Intersects</c> predicate has the following equivalent definitions:
- <list type="bullet">
- <item><description>The two geometries have at least one point in common</description></item>
- <item><description>The DE-9IM Intersection Matrix for the two geometries matches
- at least one of the patterns
- <list type="bullet">
- <item><description><c>[T********]</c></description></item>
- <item><description><c>[*T*******]</c></description></item>
- <item><description><c>[***T*****]</c></description></item>
- <item><description><c>[****T****]</c></description></item>
- </list>
- <item><description><c>Disjoint() = false</c>
- <br/>(<c>Intersects</c> is the inverse of <c>Disjoint</c>)</description></item></description></item>
- </list>
- </summary>
- <param name="a">The A input geometry</param>
- <param name="b">The B input geometry</param>
- <returns><c>true</c> if geometries <paramref name="a"/> and <paramref name="b"/> intersect.</returns>
- <seealso cref="M:NetTopologySuite.Geometries.GeometryRelate.Disjoint(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryRelate.Contains(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests if the input geometry <paramref name="a"/> contains the input geometry <paramref name="b"/>.
- <para/>
- The <c>Contains</c> predicate has the following equivalent definitions:
- <list type="bullet">
- <item><description>Every point of the other geometry is a point of this geometry,
- and the interiors of the two geometries have at least one point in common.</description></item>
- <item><description>The DE-9IM Intersection Matrix for the two geometries matches
- the pattern <c>[T*****FF*]</c></description></item>
- <item><description><c>within(B, A) = true </c>
- <br/>(<c> contains </c> is the converse of <see cref="M:NetTopologySuite.Geometries.GeometryRelate.Within(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)"/>)</description></item>
- </list>
- An implication of the definition is that "Geometries do not
- contain their boundary". In other words, if a geometry A is a subset of
- the points in the boundary of a geometry B, <c>B.contains(A) = false</c>.
- (As a concrete example, take A to be a LineString which lies in the boundary of a Polygon B.)
- For a predicate with similar behavior but avoiding
- this subtle limitation, see <see cref="M:NetTopologySuite.Geometries.GeometryRelate.Covers(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)"/>.
- </summary>
- <param name="a">The A input geometry</param>
- <param name="b">The B input geometry</param>
- <returns><c>true</c> if the geometry <paramref name="a"/> contains <paramref name="b"/>.</returns>
- <seealso cref="M:NetTopologySuite.Geometries.GeometryRelate.Within(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryRelate.Covers(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests if the input geometry <paramref name="a"/> covers the input geometry <paramref name="b"/>
- <para/>
- The <c>Covers</c> predicate has the following equivalent definitions:
- <list type="bullet">
- <item><description>Every point of the other geometry is a point of this geometry.</description></item>
- <item><description>The DE-9IM Intersection Matrix for the two geometries matches
- at least one of the following patterns:
- <list type="bullet">
- <item><c><description>[T*****FF*]</description></c></item>
- <item><c><description>[*T****FF*]</description></c></item>
- <item><c><description>[***T**FF*]</description></c></item>
- <item><c><description>[****T*FF*]</description></c></item>
- </list></description></item>
- <item><description><c>CoveredBy(b, a) = true</c>
- <br/>(<c>Covers</c> is the converse of <see cref="M:NetTopologySuite.Geometries.GeometryRelate.CoveredBy(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)"/>)</description></item>
- </list>
- If either geometry is empty, the value of this predicate is <c>false</c>.
- <para/>
- This predicate is similar to <see cref="M:NetTopologySuite.Geometries.GeometryRelate.Contains(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)"/>,
- but is more inclusive (i.e. returns <c>true</c> for more cases).
- In particular, unlike <c>Contains</c> it does not distinguish between
- points in the boundary and in the interior of geometries.
- For most cases, <c>Covers</c> should be used in preference to <c>Contains</c>.
- As an added benefit, <c>Covers</c> is more amenable to optimization,
- and hence should be more performant.
- </summary>
- <param name="a">The A input geometry</param>
- <param name="b">The B input geometry</param>
- <returns><c>true</c> if the geometry <paramref name="a"/> covers <paramref name="b"/>.</returns>
- <seealso cref="M:NetTopologySuite.Geometries.GeometryRelate.CoveredBy(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryRelate.CoveredBy(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests if the input geometry <paramref name="a"/> is covered by the input geometry <paramref name="b"/>
- <para/>
- The <c>CoveredBy</c> predicate has the following equivalent definitions:
- <list type="bullet">
- <item><description>Every point of this geometry is a point of the other geometry.</description></item>
- <item><description>The DE-9IM Intersection Matrix for the two geometries matches
- at least one of the following patterns:
- <list type="bullet">
- <item><description><c>[T*F**F***]</c></description></item>
- <item><description><c>[*TF**F***]</c></description></item>
- <item><description><c>[**FT*F***]</c></description></item>
- <item><description><c>[**F*TF***]</c></description></item>
- </list></description></item>
- <item><description><c>Covers(B, A) = true</c>
- <br/>(<c>CoveredBy</c> is the converse of <see cref="M:NetTopologySuite.Geometries.GeometryRelate.Covers(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)"/>)</description></item>
- </list>
- If either geometry is empty, the value of this predicate is <c>false</c>.
- <para/>
- This predicate is similar to {@link #within},
- but is more inclusive (i.e. returns <c>true</c> for more cases).
- </summary>
- <param name="a">The A input geometry</param>
- <param name="b">The B input geometry</param>
- <returns><c>true</c>if the geometry <paramref name="a"/> is covered by <paramref name="b"/></returns>
- <seealso cref="M:NetTopologySuite.Geometries.GeometryRelate.Covers(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryRelate.Crosses(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests if the input geometry <paramref name="a"/> crosses the input geometry <paramref name="b"/>
- <para/>
- The <c>Crosses</c> predicate has the following equivalent definitions:
- <list type="bullet">
- <item><description>The geometries have some but not all interior points in common.</description></item>
- <item><description>The DE-9IM Intersection Matrix for the two geometries matches
- one of the following patterns:
- <list type="bullet">
- <item><description><c>[T*T******]</c> (for P/L, P/A, and L/A cases)</description></item>
- <item><description><c>[T*****T**]</c> (for L/P, A/P, and A/L cases)</description></item>
- <item><description><c>[0********]</c> (for L/L cases)</description></item>
- </list></description></item>
- </list>
- For the A/A and P/P cases this predicate returns <c>false</c>.
- <para/>
- The SFS defined this predicate only for P/L, P/A, L/L, and L/A cases.
- To make the relation symmetric
- NTS extends the definition to apply to L/P, A/P and A/L cases as well.
- </summary>
- <param name="a">The A input geometry</param>
- <param name="b">The B input geometry</param>
- <returns><c>true</c> if the geometry <paramref name="a"/> crosses <paramref name="b"/></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryRelate.Disjoint(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests if the input geometry <paramref name="a"/> and <paramref name="b"/> are disjoint.
- <para/>
- The <c>Disjoint</c> predicate has the following equivalent definitions:
- <list type="bullet">
- <item><description>The two geometries have no point in common</description></item>
- <item><description>The DE-9IM Intersection Matrix for the two geometries matches
- <c>[FF*FF****]</c></description></item>
- <item><description><c>Intersects() = false</c>
- <br/>(<c>Disjoint</c> is the inverse of <c>Intersects</c>)</description></item>
- </list>
- </summary>
- <param name="a">The A input geometry</param>
- <param name="b">The B input geometry</param>
- <returns><c>true</c>> if geometries <paramref name="a"/> and <paramref name="b"/> are disjoint.</returns>
- <seealso cref="M:NetTopologySuite.Geometries.GeometryRelate.Intersects(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryRelate.EqualsTopologically(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests if the input geometry <paramref name="a"/> and <paramref name="b"/> are topologically equal.
- <para/>
- The <c>Equals</c> predicate has the following equivalent definitions:
- <list type="bullet">
- <item><description> The two geometries have at least one point in common,
- and no point of either geometry lies in the exterior of the other geometry.</description></item>
- <item><description>The DE-9IM Intersection Matrix for the two geometries matches
- the pattern <c>T*F**FFF*</c></description></item></list>
- </summary>
- <param name="a">The A input geometry</param>
- <param name="b">The B input geometry</param>
- <returns><c>true</c> if the geometries <paramref name="a"/> and <paramref name="b"/> are topologically equal</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryRelate.Overlaps(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Test if the input geometry <paramref name="a"/> overlaps the input geometry <paramref name="b"/>.
- <para/>
- The <c>Overlaps</c> predicate has the following equivalent definitions:
- <list type="bullet">
- <item><description>The geometries have at least one point each not shared by the other
- (or equivalently neither covers the other),
- they have the same dimension,
- and the intersection of the interiors of the two geometries has
- the same dimension as the geometries themselves.</description></item>
- <item><description>The DE-9IM Intersection Matrix for the two geometries matches
- <c>[T*T***T**]</c> (for P/P and A/A cases)
- or <c>[1*T***T**]</c> (for L/L cases)</description></item>
- </list>
- If the geometries are of different dimension this predicate returns <c>false</c>.
- This predicate is symmetric.
- </summary>
- <param name="a">The A input geometry</param>
- <param name="b">The B input geometry</param>
- <returns><c>true</c> if the geometry <paramref name="a"/> overlaps <paramref name="b"/></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryRelate.Touches(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests if the input geometry <paramref name="a"/> touches the <paramref name="b"/>.
- <para/>
- The <c>Touches</c> predicate has the following equivalent definitions:
- <list type="bullet">
- <item><description>The geometries have at least one point in common,
- but their interiors do not intersect.</description></item>
- <item><description>The DE-9IM Intersection Matrix for the two geometries matches
- at least one of the following patterns
- <list type="bullet">
- <item><description><c>[FT*******]</c></description></item>
- <item><description><c>[F**T*****]</c></description></item>
- <item><description><c>[F***T****]</c></description></item>
- </list></description></item>
- </list>
- If both geometries have dimension 0, the predicate returns <c>false</c>,
- since points have only interiors.
- This predicate is symmetric.
- </summary>
- <param name="a">The A input geometry</param>
- <param name="b">The B input geometry</param>
- <returns><c>true</c> if geometry <paramref name="a"/> touches <paramref name="b"/></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryRelate.Within(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests if the the input geometry <paramref name="a"/> is within the input geometry <paramref name="b"/>.
- <para/>
- The <c>Within</c> predicate has the following equivalent definitions:
- <list type="bullet">
- <item><description>Every point of this geometry is a point of the other geometry,
- and the interiors of the two geometries have at least one point in common.</description></item>
- <item><description>The DE-9IM Intersection Matrix for the two geometries matches
- <c>[T*F**F***]</c></description></item>
- <item><description><c>contains(B, A) = true</c>
- <br/>(<c>Within</c> is the converse of <see cref="M:NetTopologySuite.Geometries.GeometryRelate.Contains(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)"/>)</description></item>
- </list>
- An implication of the definition is that
- "The boundary of a Geometry is not within the Geometry".
- In other words, if a geometry A is a subset of
- the points in the boundary of a geometry B, <c>within(B, A) = false</c>
- (As a concrete example, take A to be a LineString which lies in the boundary of a Polygon B.)
- For a predicate with similar behavior but avoiding
- this subtle limitation, see <see cref="M:NetTopologySuite.Geometries.GeometryRelate.CoveredBy(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)"/>.
- </summary>
- <param name="a">The A input geometry</param>
- <param name="b">The B input geometry</param>
- <returns><c>true</c> if the geometry <paramref name="a"/> is within <paramref name="b"/>.</returns>
- <seealso cref="M:NetTopologySuite.Geometries.GeometryRelate.Contains(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)"/>
- <seealso cref="M:NetTopologySuite.Geometries.GeometryRelate.CoveredBy(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryRelate.Relate(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes the DE-9IM matrix
- for the topological relationship between two geometries.
- </summary>
- <param name="a">The A input geometry</param>
- <param name="b">The B input geometry</param>
- <returns>The DE-9IM matrix for the topological relationship</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.GeometryRelate.Relate(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,System.String)">
- <summary>
- Tests if the input geometry <paramref name="b"/> relates to
- <paramref name="a"/> in the way defined by <paramref name="intersectionPattern"/>
- </summary>
- <param name="a">The A input geometry</param>
- <param name="b">The B input geometry</param>
- <param name="intersectionPattern">The encoded DE-9IM pattern describing the topological relation to test</param>
- <returns><c>true</c> if the geometry <paramref name="b"/> relates to <paramref name="a"/> in the way defined by <paramref name="intersectionPattern"/>.</returns>
- </member>
- <member name="T:NetTopologySuite.Geometries.IBoundable`2">
- <summary>
- A spatial object in an AbstractSTRtree.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.IBoundable`2.Bounds">
- <summary>
- Returns a representation of space that encloses this Boundable, preferably
- not much bigger than this Boundable's boundary yet fast to test for intersection
- with the bounds of other Boundables. The class of object returned depends
- on the subclass of AbstractSTRtree.
- </summary>
- <returns>
- An Envelope (for STRtrees), an Interval (for SIRtrees), or other object
- (for other subclasses of AbstractSTRtree).
- </returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.IBoundable`2.Item">
- <summary>
- Gets the item that is bounded
- </summary>
- </member>
- <member name="T:NetTopologySuite.Geometries.ICoordinateFilter">
- <summary>
- An interface for classes which use the values of the coordinates in a <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
- Coordinate filters can be used to implement centroid and
- envelope computation, and many other functions.<para/>
- <para/>
- <c>ICoordinateFilter</c> is
- an example of the Gang-of-Four Visitor pattern.
- <para/>
- <b>Note</b>: it is not recommended to use these filters to mutate the coordinates.
- There is no guarantee that the coordinate is the actual object stored in the source geometry.
- In particular, modified values may not be preserved if the source Geometry uses a non-default <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>.
- If in-place mutation is required, use <see cref="T:NetTopologySuite.Geometries.ICoordinateSequenceFilter"/>.
- </summary>
- <seealso cref="M:NetTopologySuite.Geometries.Geometry.Apply(NetTopologySuite.Geometries.ICoordinateFilter)"/>
- <seealso cref="T:NetTopologySuite.Geometries.ICoordinateSequenceFilter"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.ICoordinateFilter.Filter(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Performs an operation with the provided <c>coord</c>.
- Note that there is no guarantee that the input coordinate
- is the actual object stored in the source geometry,
- so changes to the coordinate object may not be persistent.
- </summary>
- <param name="coord">A <c>Coordinate</c> to which the filter is applied.</param>
- </member>
- <member name="T:NetTopologySuite.Geometries.ICoordinateSequenceFilter">
- <summary>
- An interface for classes which process the coordinates in a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>.
- A filter can either record information about each coordinate,
- or change the value of the coordinate.
- Filters can be
- used to implement operations such as coordinate transformations, centroid and
- envelope computation, and many other functions.
- <see cref="T:NetTopologySuite.Geometries.Geometry"/> classes support the concept of applying a
- <c>CoordinateSequenceFilter</c> to each
- <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>s they contain.
- <para/>
- For maximum efficiency, the execution of filters can be short-circuited by using the <see cref="P:NetTopologySuite.Geometries.ICoordinateSequenceFilter.Done"/> property.
- </summary>
- <see cref="M:NetTopologySuite.Geometries.Geometry.Apply(NetTopologySuite.Geometries.ICoordinateSequenceFilter)"/>
- <remarks>
- <c>CoordinateSequenceFilter</c> is an example of the Gang-of-Four Visitor pattern.
- <para><b>Note</b>: In general, it is preferable to treat Geometrys as immutable.
- Mutation should be performed by creating a new Geometry object (see <see cref="T:NetTopologySuite.Geometries.Utilities.GeometryEditor"/>
- and <see cref="T:NetTopologySuite.Geometries.Utilities.GeometryTransformer"/> for convenient ways to do this).
- An exception to this rule is when a new Geometry has been created via <see cref="M:NetTopologySuite.Geometries.CoordinateSequence.Copy"/>.
- In this case mutating the Geometry will not cause aliasing issues,
- and a filter is a convenient way to implement coordinate transformation.
- </para>
- </remarks>
- <author>Martin Davis</author>
- <seealso cref="M:NetTopologySuite.Geometries.Geometry.Apply(NetTopologySuite.Geometries.ICoordinateFilter)"/>
- <seealso cref="T:NetTopologySuite.Geometries.Utilities.GeometryTransformer"/>
- <see cref="T:NetTopologySuite.Geometries.Utilities.GeometryEditor"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.ICoordinateSequenceFilter.Filter(NetTopologySuite.Geometries.CoordinateSequence,System.Int32)">
- <summary>
- Performs an operation on a coordinate in a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>.
- </summary>
- <param name="seq">the <c>CoordinateSequence</c> to which the filter is applied</param>
- <param name="i">i the index of the coordinate to apply the filter to</param>
- </member>
- <member name="P:NetTopologySuite.Geometries.ICoordinateSequenceFilter.Done">
- <summary>
- Reports whether the application of this filter can be terminated.
- </summary>
- <remarks>
- Once this method returns <c>true</c>, it must
- continue to return <c>true</c> on every subsequent call.
- </remarks>
- </member>
- <member name="P:NetTopologySuite.Geometries.ICoordinateSequenceFilter.GeometryChanged">
- <summary>
- Reports whether the execution of this filter has modified the coordinates of the geometry.
- If so, <see cref="M:NetTopologySuite.Geometries.Geometry.GeometryChanged"/> will be executed
- after this filter has finished being executed.
- </summary>
- <remarks>Most filters can simply return a constant value reflecting whether they are able to change the coordinates.</remarks>
- </member>
- <member name="T:NetTopologySuite.Geometries.IEntireCoordinateSequenceFilter">
- <summary>
- A variant of <see cref="T:NetTopologySuite.Geometries.ICoordinateSequenceFilter"/>, except it receives each
- <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/> just once, instead of once for each of its coordinates.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.IEntireCoordinateSequenceFilter.Done">
- <summary>
- Reports whether the application of this filter can be terminated.
- </summary>
- <remarks>
- Once this method returns <see langword="true"/> it must continue to return
- <see langword="true"/> on every subsequent call.
- </remarks>
- </member>
- <member name="P:NetTopologySuite.Geometries.IEntireCoordinateSequenceFilter.GeometryChanged">
- <summary>
- Reports whether the execution of this filter has modified the coordinates of the geometry.
- If so, <see cref="M:NetTopologySuite.Geometries.Geometry.GeometryChanged"/> will be executed
- after this filter has finished being executed.
- </summary>
- <remarks>
- Most filters can simply return a constant value reflecting whether they are able to
- change the coordinates.
- </remarks>
- </member>
- <member name="M:NetTopologySuite.Geometries.IEntireCoordinateSequenceFilter.Filter(NetTopologySuite.Geometries.CoordinateSequence)">
- <summary>
- Performs an operation on a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>.
- </summary>
- <param name="seq">
- The <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>.
- </param>
- </member>
- <member name="T:NetTopologySuite.Geometries.IExpandable`1">
- <summary>
- Interface describing objects that can expand themselves by objects of type <typeparamref name="T"/>.
- </summary>
- <typeparam name="T">The type of objects that can expand clients</typeparam>
- </member>
- <member name="M:NetTopologySuite.Geometries.IExpandable`1.ExpandToInclude(`0)">
- <summary>
- Method to expand this object by <paramref name="other"/>
- </summary>
- <param name="other">The object to expand with</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.IExpandable`1.ExpandedBy(`0)">
- <summary>
- Function to expand compute a new object that is this object by expanded by <paramref name="other"/>.
- </summary>
- <param name="other">The object to expand with</param>
- <returns>The expanded object</returns>
- </member>
- <member name="T:NetTopologySuite.Geometries.IGeometryComponentFilter">
- <summary>
- <c>Geometry</c> classes support the concept of applying
- an <c>IGeometryComponentFilter</c> filter to a geometry.
- </summary>
- <remarks>
- The filter is applied to every component of a geometry
- as well as to the geometry itself.
- For instance, in a <see cref="T:NetTopologySuite.Geometries.Polygon"/>,
- all the <see cref="T:NetTopologySuite.Geometries.LinearRing"/>
- components for the shell and holes are visited,
- as well as the polygon itself.
- In order to process only atomic components,
- the <see cref="M:NetTopologySuite.Geometries.IGeometryComponentFilter.Filter(NetTopologySuite.Geometries.Geometry)"/> method code must
- 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.
- <para/>
- An <c>IGeometryComponentFilter</c> filter can either
- record information about the <c>Geometry</c>
- or change the <c>Geometry</c> in some way.
- <para/>
- <c>IGeometryComponentFilter</c> is an example of the Gang-of-Four Visitor pattern.
- </remarks>
- </member>
- <member name="M:NetTopologySuite.Geometries.IGeometryComponentFilter.Filter(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Performs an operation with or on a geometry component.
- </summary>
- <param name="geom">A component of the geometry to which the filter is applied.</param>
- </member>
- <member name="T:NetTopologySuite.Geometries.IGeometryFilter">
- <summary>
- <c>GeometryCollection</c> classes support the concept of
- applying a <c>IGeometryFilter</c> to the <c>Geometry</c>.
- The filter is applied to every element <c>Geometry</c>.
- A <c>IGeometryFilter</c> can either record information about the <c>Geometry</c>
- or change the <c>Geometry</c> in some way.
- <c>IGeometryFilter</c> is an example of the Gang-of-Four Visitor pattern.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.IGeometryFilter.Filter(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Performs an operation with or on <c>geom</c>.
- </summary>
- <param name="geom">A <c>Geometry</c> to which the filter is applied.</param>
- </member>
- <member name="T:NetTopologySuite.Geometries.IIntersectable`1">
- <summary>
- Interface describing objects that can perform an intersects predicate with <typeparamref name="T"/> objects.
- </summary>
- <typeparam name="T">The type of the component that can intersect</typeparam>
- </member>
- <member name="M:NetTopologySuite.Geometries.IIntersectable`1.Intersects(`0)">
- <summary>
- Predicate function to test if <paramref name="other"/> intersects with this object.
- </summary>
- <param name="other">The object to test</param>
- <returns><c>true</c> if this objects intersects with <paramref name="other"/></returns>
- </member>
- <member name="T:NetTopologySuite.Geometries.ILineal">
- <summary>
- Interface to identify all <c>Geometry</c> subclasses that have a <c>Dimension</c> of <see cref="F:NetTopologySuite.Geometries.Dimension.Curve"/>
- and have components which are <see cref="T:NetTopologySuite.Geometries.LineString"/>s.
- </summary>
- <author>Martin Davis</author>
- <seealso cref="T:NetTopologySuite.Geometries.IPuntal"/>
- <seealso cref="T:NetTopologySuite.Geometries.IPolygonal"/>
- </member>
- <member name="T:NetTopologySuite.Geometries.Implementation.CoordinateArraySequence">
- <summary>
- A <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/> backed by an array of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s.
- This is the implementation that <see cref="T:NetTopologySuite.Geometries.Geometry"/>s use by default.
- <para/>
- 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 --
- modifications to them are actually changing the
- CoordinateSequence's underlying data.
- A dimension may be specified for the coordinates in the sequence,
- which may be 2 or 3.
- The actual coordinates will always have 3 ordinates,
- but the dimension is useful as metadata in some situations.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Implementation.CoordinateArraySequence.Coordinates">
- <summary>
- Array of coordinates in sequence
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.CoordinateArraySequence.#ctor(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Constructs a sequence based on the given array of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s.
- The coordinate dimension defaults to 2
- </summary>
- <remarks>
- The array is not copied.
- </remarks>
- <param name="coordinates">The coordinate array that will be referenced.</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.CoordinateArraySequence.#ctor(NetTopologySuite.Geometries.Coordinate[],System.Int32)">
- <summary>
- Constructs a sequence based on the given array
- of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s.
- </summary>
- <remarks>The Array is not copied</remarks>
- <param name="coordinates">The coordinate array that will be referenced.</param>
- <param name="dimension">The dimension of the coordinates</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.CoordinateArraySequence.#ctor(NetTopologySuite.Geometries.Coordinate[],System.Int32,System.Int32)">
- <summary>
- Constructs a sequence based on the given array
- of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s.
- <para/>
- The Array is <b>not</b> copied
- <para/>
- It is your responsibility to ensure the array contains Coordinates of the
- indicated dimension and measures (See <see cref="M:NetTopologySuite.Geometries.CoordinateArrays.EnforceConsistency(NetTopologySuite.Geometries.Coordinate[])"/>).
- </summary>
- <param name="coordinates">The coordinate array that will be referenced.</param>
- <param name="dimension">The dimension of the coordinates</param>
- <param name="measures">The number of measure ordinate values.</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.CoordinateArraySequence.#ctor(System.Int32)">
- <summary>
- Constructs a sequence of a given size, populated with new Coordinates.
- </summary>
- <param name="size">The size of the sequence to create.</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.CoordinateArraySequence.#ctor(System.Int32,System.Int32)">
- <summary>
- Constructs a sequence of a given <paramref name="size"/>, populated
- with new <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s of the given <paramref name="dimension"/>.
- </summary>
- <param name="size">The size of the sequence to create.</param>
- <param name="dimension">the dimension of the coordinates</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.CoordinateArraySequence.#ctor(System.Int32,System.Int32,System.Int32)">
- <summary>
- Constructs a sequence of a given <paramref name="size"/>, populated
- with new <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s of the given <paramref name="dimension"/>
- with the given number of <paramref name="measures"/>
- </summary>
- <param name="size">The size of the sequence to create.</param>
- <param name="dimension">the dimension of the coordinates</param>
- <param name="measures">the number of measures of the coordinates</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.CoordinateArraySequence.#ctor(NetTopologySuite.Geometries.CoordinateSequence)">
- <summary>
- Creates a new sequence based on a deep copy of the given <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>.
- </summary>
- <param name="coordSeq">The coordinate sequence that will be copied</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.CoordinateArraySequence.EnforceArrayConsistency(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Ensure array contents of the same type, making use of <see cref="M:NetTopologySuite.Geometries.CoordinateSequence.CreateCoordinate"/> as needed.
- <para>
- A new array will be created if needed to return a consistent result.
- </para>
- </summary>
- <param name="array">array containing consistent coordinate instances</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.CoordinateArraySequence.GetCoordinate(System.Int32)">
- <summary>
- Get the Coordinate with index i.
- </summary>
- <param name="i">The index of the coordinate.</param>
- <returns>The requested Coordinate instance.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.CoordinateArraySequence.GetCoordinateCopy(System.Int32)">
- <summary>
- Get a copy of the Coordinate with index i.
- </summary>
- <param name="i">The index of the coordinate.</param>
- <returns>A copy of the requested Coordinate.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.CoordinateArraySequence.GetCoordinate(System.Int32,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Copies the i'th coordinate in the sequence to the supplied Coordinate.
- </summary>
- <param name="index">The index of the coordinate to copy.</param>
- <param name="coord">A Coordinate to receive the value.</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.CoordinateArraySequence.GetX(System.Int32)">
- <summary>
- Returns ordinate X (0) of the specified coordinate.
- </summary>
- <param name="index"></param>
- <returns>
- The value of the X ordinate in the index'th coordinate.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.CoordinateArraySequence.GetY(System.Int32)">
- <summary>
- Returns ordinate Y (1) of the specified coordinate.
- </summary>
- <param name="index"></param>
- <returns>
- The value of the Y ordinate in the index'th coordinate.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.CoordinateArraySequence.GetZ(System.Int32)">
- <summary>
- Returns ordinate Z of the specified coordinate if available.
- </summary>
- <param name="index"></param>
- <returns>
- The value of the Z ordinate in the index'th coordinate, or Double.NaN if not defined.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.CoordinateArraySequence.GetM(System.Int32)">
- <summary>
- Returns ordinate M of the specified coordinate if available.
- </summary>
- <param name="index"></param>
- <returns>
- The value of the M ordinate in the index'th coordinate, or Double.NaN if not defined.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.CoordinateArraySequence.GetOrdinate(System.Int32,System.Int32)">
- <summary>
- Returns the ordinate of a coordinate in this sequence.
- Ordinate indices 0 and 1 are assumed to be X and Y.
- Ordinate indices greater than 1 have user-defined semantics
- (for instance, they may contain other dimensions or measure values).
- </summary>
- <param name="index">The coordinate index in the sequence.</param>
- <param name="ordinateIndex">The ordinate index in the coordinate (in range [0, dimension-1]).</param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.CoordinateArraySequence.Copy">
- <summary>
- Creates a deep copy of the <c>CoordinateArraySequence</c>.
- </summary>
- <returns>The deep copy.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.CoordinateArraySequence.GetClonedCoordinates">
- <summary>
-
- </summary>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.CoordinateArraySequence.SetOrdinate(System.Int32,System.Int32,System.Double)">
- <summary>
- Sets the value for a given ordinate of a coordinate in this sequence.
- </summary>
- <param name="index">The coordinate index in the sequence.</param>
- <param name="ordinateIndex">The ordinate index in the coordinate (in range [0, dimension-1]).</param>
- <param name="value">The new ordinate value.</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.CoordinateArraySequence.ToCoordinateArray">
- <summary>
- This method exposes the internal Array of Coordinate Objects.
- </summary>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.CoordinateArraySequence.ExpandEnvelope(NetTopologySuite.Geometries.Envelope)">
- <summary>
- Expands the given Envelope to include the coordinates in the sequence.
- Allows implementing classes to optimize access to coordinate values.
- </summary>
- <param name="env">The envelope to expand.</param>
- <returns>A reference to the expanded envelope.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.CoordinateArraySequence.Reversed">
- <inheritdoc cref="M:NetTopologySuite.Geometries.CoordinateSequence.Reversed"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.CoordinateArraySequence.ToString">
- <summary>
- Returns the string representation of the coordinate array.
- </summary>
- <returns></returns>
- </member>
- <member name="T:NetTopologySuite.Geometries.Implementation.CoordinateArraySequenceFactory">
- <summary>
- Creates CoordinateSequences represented as an array of Coordinates.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.Implementation.CoordinateArraySequenceFactory.Instance">
- <summary>
- Returns the singleton instance of CoordinateArraySequenceFactory.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.CoordinateArraySequenceFactory.Create(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Returns a CoordinateArraySequence based on the given array (the array is not copied).
- </summary>
- <param name="coordinates">the coordinates, which may not be null nor contain null elements.</param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.CoordinateArraySequenceFactory.Create(NetTopologySuite.Geometries.CoordinateSequence)">
- <inheritdoc cref="M:NetTopologySuite.Geometries.CoordinateSequenceFactory.Create(NetTopologySuite.Geometries.CoordinateSequence)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.CoordinateArraySequenceFactory.Create(System.Int32,System.Int32,System.Int32)">
- <inheritdoc cref="M:NetTopologySuite.Geometries.CoordinateSequenceFactory.Create(System.Int32,System.Int32,System.Int32)"/>
- </member>
- <member name="T:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence">
- <summary>
- A coordinate sequence that follows the dotspatial shape range
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence.#ctor(System.Collections.Generic.IReadOnlyCollection{NetTopologySuite.Geometries.Coordinate},NetTopologySuite.Geometries.Ordinates)">
- <summary>
- Creates an instance of this class
- </summary>
- <param name="coordinates">The coordinates</param>
- <param name="ordinates"></param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence.#ctor(System.Int32,System.Int32,System.Int32)">
- <summary>
- Constructs a sequence of a given size, populated with new Coordinates.
- </summary>
- <param name="size">The size of the sequence to create.</param>
- <param name="dimension">The number of dimensions.</param>
- <param name="measures">The number of measures.</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence.#ctor(System.Int32,NetTopologySuite.Geometries.Ordinates)">
- <summary>
- Constructs a sequence of a given size, populated with new Coordinates.
- </summary>
- <param name="size">The size of the sequence to create.</param>
- <param name="ordinates">The kind of ordinates.</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence.#ctor(NetTopologySuite.Geometries.CoordinateSequence,NetTopologySuite.Geometries.Ordinates)">
- <summary>
- Creates a sequence based on the given coordinate sequence.
- </summary>
- <param name="coordSeq">The coordinate sequence.</param>
- <param name="ordinates">The ordinates to copy</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence.#ctor(System.Double[],System.Double[],System.Double[])">
- <summary>
-
- </summary>
- <param name="xy"></param>
- <param name="z"></param>
- <param name="m"></param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence.Copy">
- <inheritdoc cref="M:NetTopologySuite.Geometries.CoordinateSequence.Copy"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence.GetCoordinateCopy(System.Int32)">
- <inheritdoc cref="M:NetTopologySuite.Geometries.CoordinateSequence.GetCoordinateCopy(System.Int32)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence.GetCoordinate(System.Int32,NetTopologySuite.Geometries.Coordinate)">
- <inheritdoc cref="M:NetTopologySuite.Geometries.CoordinateSequence.GetCoordinate(System.Int32,NetTopologySuite.Geometries.Coordinate)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence.GetX(System.Int32)">
- <inheritdoc />
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence.GetY(System.Int32)">
- <inheritdoc />
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence.GetZ(System.Int32)">
- <inheritdoc />
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence.GetM(System.Int32)">
- <inheritdoc />
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence.SetX(System.Int32,System.Double)">
- <inheritdoc />
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence.SetY(System.Int32,System.Double)">
- <inheritdoc />
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence.SetZ(System.Int32,System.Double)">
- <inheritdoc />
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence.SetM(System.Int32,System.Double)">
- <inheritdoc />
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence.GetOrdinate(System.Int32,System.Int32)">
- <inheritdoc cref="M:NetTopologySuite.Geometries.CoordinateSequence.GetOrdinate(System.Int32,System.Int32)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence.SetOrdinate(System.Int32,System.Int32,System.Double)">
- <inheritdoc cref="M:NetTopologySuite.Geometries.CoordinateSequence.SetOrdinate(System.Int32,System.Int32,System.Double)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence.ToCoordinateArray">
- <inheritdoc cref="M:NetTopologySuite.Geometries.CoordinateSequence.ToCoordinateArray"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence.ExpandEnvelope(NetTopologySuite.Geometries.Envelope)">
- <inheritdoc cref="M:NetTopologySuite.Geometries.CoordinateSequence.ExpandEnvelope(NetTopologySuite.Geometries.Envelope)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence.Reversed">
- <summary>
- Creates a reversed version of this coordinate sequence with cloned <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s
- </summary>
- <returns>A reversed version of this sequence</returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence.XY">
- <summary>
- Gets the vector with x- and y-ordinate values;
- </summary>
- <remarks>If you modify the values of this vector externally, you need to call <see cref="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence.ReleaseCoordinateArray"/>!</remarks>
- </member>
- <member name="P:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence.Z">
- <summary>
- Gets the vector with z-ordinate values
- </summary>
- <remarks>If you modify the values of this vector externally, you need to call <see cref="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence.ReleaseCoordinateArray"/>!</remarks>
- </member>
- <member name="P:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence.M">
- <summary>
- Gets the vector with measure values
- </summary>
- <remarks>If you modify the values of this vector externally, you need to call <see cref="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence.ReleaseCoordinateArray"/>!</remarks>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence.ReleaseCoordinateArray">
- <summary>
- Releases the weak reference to the weak referenced coordinate array
- </summary>
- <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>
- </member>
- <member name="T:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequenceFactory">
- <summary>
- A coordinate sequence factory class that creates DotSpatial's Shape/ShapeRange like coordinate sequences.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequenceFactory.Instance">
- <summary>
- Returns the singleton instance of DotSpatialAffineCoordinateSequenceFactory.
- </summary>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequenceFactory.Create(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Returns a CoordinateArraySequence based on the given array (the array is not copied).
- </summary>
- <param name="coordinates">the coordinates, which may not be null nor contain null elements.</param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequenceFactory.Create(NetTopologySuite.Geometries.CoordinateSequence)">
- <summary>
- Creates a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence" /> which is a copy
- of the given <see cref="T:NetTopologySuite.Geometries.CoordinateSequence" />.
- This method must handle null arguments by creating an empty sequence.
- </summary>
- <param name="coordSeq"></param>
- <returns>A coordinate sequence</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequenceFactory.Create(System.Int32,System.Int32,System.Int32)">
- <inheritdoc />
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequenceFactory.Create(System.Int32,NetTopologySuite.Geometries.Ordinates)">
- <summary>
- Creates a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence" /> of the specified size and ordinates.
- For this to be useful, the <see cref="T:NetTopologySuite.Geometries.CoordinateSequence" /> implementation must be mutable.
- </summary>
- <param name="size">The number of coordinates.</param>
- <param name="ordinates">
- 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.
- </param>
- <returns>A coordinate sequence.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequenceFactory.Create(System.Double[])">
- <summary>
- Creates an instance of this class using the provided <paramref name="xy"/> array for x- and y ordinates
- </summary>
- <param name="xy">The x- and y-ordinates</param>
- <returns>A coordinate sequence</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequenceFactory.Create(System.Double[],System.Double[],System.Boolean)">
- <summary>
- Creates an instance of this class using the provided <paramref name="xy"/> array for x- and y ordinates,
- the <paramref name="zm"/> array for either z-ordinates or measure values. This is indicated by <paramref name="isMeasure"/>.
- </summary>
- <param name="xy">The x- and y-ordinates</param>
- <param name="zm">An array of z- or measure values</param>
- <param name="isMeasure">A value indicating if <paramref name="zm"/> contains z-ordinates or measure values.</param>
- <returns>A coordinate sequence</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequenceFactory.Create(System.Double[],System.Double[],System.Double[])">
- <summary>
- Creates an instance of this class using the provided <paramref name="xy"/> array for x- and y ordinates,
- the <paramref name="z"/> array for z ordinates and <paramref name="m"/> for measure values.
- </summary>
- <param name="xy">The x- and y-ordinates</param>
- <param name="z">An array of z- or measure values</param>
- <param name="m">An array of measure values.</param>
- <returns>A coordinate sequence</returns>
- </member>
- <member name="T:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequence">
- <summary>
- A <c>CoordinateSequence</c> implementation based on a packed arrays.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequence.CoordRef">
- <summary>
- A soft reference to the Coordinate[] representation of this sequence.
- Makes repeated coordinate array accesses more efficient.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequence.#ctor(System.Int32,System.Int32,System.Int32)">
- <summary>
- Creates an instance of this class
- </summary>
- <param name="count">The number of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s in the sequence.</param>
- <param name="dimension">The total number of ordinates that make up a <see cref="T:NetTopologySuite.Geometries.Coordinate"/> in this sequence.</param>
- <param name="measures">the number of measure-ordinates each {<see cref="T:NetTopologySuite.Geometries.Coordinate"/> in this sequence has.</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequence.GetCoordinate(System.Int32)">
- <summary>
- Returns (possibly a copy of) the ith Coordinate in this collection.
- Whether or not the Coordinate returned is the actual underlying
- Coordinate or merely a copy depends on the implementation.
- Note that in the future the semantics of this method may change
- to guarantee that the Coordinate returned is always a copy. Callers are
- advised not to assume that they can modify a CoordinateSequence by
- modifying the Coordinate returned by this method.
- </summary>
- <param name="i"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequence.ToCoordinateArray">
- <summary>
- Returns (possibly copies of) the Coordinates in this collection.
- Whether or not the Coordinates returned are the actual underlying
- Coordinates or merely copies depends on the implementation.
- Note that if this implementation does not store its data as an array of Coordinates,
- this method will incur a performance penalty because the array needs to
- be built from scratch.
- </summary>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequence.ReleaseCoordinateArray">
- <summary>
- Releases the weak reference to the coordinate array.
- </summary>
- <remarks>
- This is necessary if you directly modify the array from <c>GetRawCoordinates</c>.
- </remarks>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequence.ToString">
- <inheritdoc cref="M:System.Object.ToString"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequence.GetCoordinateInternal(System.Int32)">
- <summary>
- Returns a Coordinate representation of the specified coordinate, by always
- building a new Coordinate object.
- </summary>
- <param name="index">The coordinate index</param>
- <returns>The <see cref="T:NetTopologySuite.Geometries.Coordinate"/> at the given index</returns>
- </member>
- <member name="T:NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence">
- <summary>
- Packed coordinate sequence implementation based on doubles.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence._coords">
- <summary>
- The packed coordinate array
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence.#ctor(System.Double[],System.Int32,System.Int32)">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence"/> class.
- </summary>
- <param name="coords">An array of <c>double</c> values that contains the ordinate values of the sequence.</param>
- <param name="dimension">The total number of ordinates that make up a <see cref="T:NetTopologySuite.Geometries.Coordinate"/> in this sequence.</param>
- <param name="measures">The number of measure-ordinates each <see cref="T:NetTopologySuite.Geometries.Coordinate"/> in this sequence has.</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence.#ctor(System.Single[],System.Int32,System.Int32)">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence"/> class.
- </summary>
- <param name="coords">An array of <c>float</c> values that contains the ordinate values of the sequence.</param>
- <param name="dimension">The total number of ordinates that make up a <see cref="T:NetTopologySuite.Geometries.Coordinate"/> in this sequence.</param>
- <param name="measures">The number of measure-ordinates each <see cref="T:NetTopologySuite.Geometries.Coordinate"/> in this sequence has.</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence.#ctor(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence"/> class.
- </summary>
- <param name="coords">An array of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s.</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence.#ctor(NetTopologySuite.Geometries.Coordinate[],System.Int32)">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence"/> class.
- </summary>
- <param name="coords">An array of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s.</param>
- <param name="dimension">The total number of ordinates that make up a <see cref="T:NetTopologySuite.Geometries.Coordinate"/> in this sequence.</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence.#ctor(NetTopologySuite.Geometries.Coordinate[],System.Int32,System.Int32)">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence"/> class.
- </summary>
- <param name="coords">An array of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s.</param>
- <param name="dimension">The total number of ordinates that make up a <see cref="T:NetTopologySuite.Geometries.Coordinate"/> in this sequence.</param>
- <param name="measures">The number of measure-ordinates each <see cref="T:NetTopologySuite.Geometries.Coordinate"/> in this sequence has.</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence.#ctor(System.Int32,System.Int32,System.Int32)">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence"/> class.
- </summary>
- <param name="size">The number of coordinates in this sequence</param>
- <param name="dimension">The total number of ordinates that make up a <see cref="T:NetTopologySuite.Geometries.Coordinate"/> in this sequence.</param>
- <param name="measures">The number of measure-ordinates each <see cref="T:NetTopologySuite.Geometries.Coordinate"/> in this sequence has.</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence.GetRawCoordinates">
- <summary>
- Gets the underlying array containing the coordinate values.
- </summary>
- <returns>The array of coordinate values</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence.Copy">
- <inheritdoc cref="M:NetTopologySuite.Geometries.CoordinateSequence.Copy"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence.GetOrdinate(System.Int32,System.Int32)">
- <summary>
- Returns the ordinate of a coordinate in this sequence.
- Ordinate indices 0 and 1 are assumed to be X and Y.
- Ordinate indices greater than 1 have user-defined semantics
- (for instance, they may contain other dimensions or measure values).
- </summary>
- <remarks>
- Beware, for performance reasons the ordinate index is not checked, if
- it's over dimensions you may not get an exception but a meaningless
- value.
- </remarks>
- <param name="index">The coordinate index in the sequence.</param>
- <param name="ordinateIndex">The ordinate index in the coordinate (in range [0, dimension-1]).</param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence.SetOrdinate(System.Int32,System.Int32,System.Double)">
- <summary>
- Sets the ordinate of a coordinate in this sequence.
- </summary>
- <param name="index">The coordinate index.</param>
- <param name="ordinateIndex">The ordinate index in the coordinate, 0 based,
- smaller than the number of dimensions.</param>
- <param name="value">The new ordinate value.</param>
- <remarks>
- Warning: for performance reasons the ordinate index is not checked.
- If it is larger than the dimension a meaningless value may be returned.
- </remarks>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence.ExpandEnvelope(NetTopologySuite.Geometries.Envelope)">
- <summary>
- Expands the given Envelope to include the coordinates in the sequence.
- Allows implementing classes to optimize access to coordinate values.
- </summary>
- <param name="env">The envelope to expand.</param>
- <returns>A reference to the expanded envelope.</returns>
- </member>
- <member name="T:NetTopologySuite.Geometries.Implementation.PackedFloatCoordinateSequence">
- <summary>
- Packed coordinate sequence implementation based on floats.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Implementation.PackedFloatCoordinateSequence._coords">
- <summary>
- The packed coordinate array
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.PackedFloatCoordinateSequence.#ctor(System.Single[],System.Int32,System.Int32)">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.Geometries.Implementation.PackedFloatCoordinateSequence"/> class.
- </summary>
- <param name="coords">An array of <c>float</c> values that contains the ordinate values of the sequence.</param>
- <param name="dimension">The total number of ordinates that make up a <see cref="T:NetTopologySuite.Geometries.Coordinate"/> in this sequence.</param>
- <param name="measures">The number of measure-ordinates each <see cref="T:NetTopologySuite.Geometries.Coordinate"/> in this sequence has.</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.PackedFloatCoordinateSequence.#ctor(System.Double[],System.Int32,System.Int32)">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.Geometries.Implementation.PackedFloatCoordinateSequence"/> class.
- </summary>
- <param name="coords">An array of <c>double</c> values that contains the ordinate values of the sequence.</param>
- <param name="dimension">The total number of ordinates that make up a <see cref="T:NetTopologySuite.Geometries.Coordinate"/> in this sequence.</param>
- <param name="measures">The number of measure-ordinates each <see cref="T:NetTopologySuite.Geometries.Coordinate"/> in this sequence has.</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.PackedFloatCoordinateSequence.#ctor(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence"/> class.
- </summary>
- <param name="coords">An array of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s.</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.PackedFloatCoordinateSequence.#ctor(NetTopologySuite.Geometries.Coordinate[],System.Int32)">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.Geometries.Implementation.PackedFloatCoordinateSequence"/> class.
- </summary>
- <param name="coords">An array of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s.</param>
- <param name="dimension">The total number of ordinates that make up a <see cref="T:NetTopologySuite.Geometries.Coordinate"/> in this sequence.</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.PackedFloatCoordinateSequence.#ctor(NetTopologySuite.Geometries.Coordinate[],System.Int32,System.Int32)">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.Geometries.Implementation.PackedFloatCoordinateSequence"/> class.
- </summary>
- <param name="coords">An array of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s.</param>
- <param name="dimension">The total number of ordinates that make up a <see cref="T:NetTopologySuite.Geometries.Coordinate"/> in this sequence.</param>
- <param name="measures">The number of measure-ordinates each <see cref="T:NetTopologySuite.Geometries.Coordinate"/> in this sequence has.</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.PackedFloatCoordinateSequence.#ctor(System.Int32,System.Int32,System.Int32)">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.Geometries.Implementation.PackedFloatCoordinateSequence"/> class.
- </summary>
- <param name="size"></param>
- <param name="dimension"></param>
- <param name="measures"></param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.PackedFloatCoordinateSequence.GetRawCoordinates">
- <summary>
- Gets the underlying array containing the coordinate values.
- </summary>
- <returns>The array of coordinate values</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.PackedFloatCoordinateSequence.Copy">
- <inheritdoc cref="M:NetTopologySuite.Geometries.CoordinateSequence.Copy"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.PackedFloatCoordinateSequence.GetOrdinate(System.Int32,System.Int32)">
- <summary>
- Returns the ordinate of a coordinate in this sequence.
- Ordinate indices 0 and 1 are assumed to be X and Y.
- Ordinate indices greater than 1 have user-defined semantics
- (for instance, they may contain other dimensions or measure values).
- </summary>
- <remarks>
- Beware, for performance reasons the ordinate index is not checked, if
- it's over dimensions you may not get an exception but a meaningless
- value.
- </remarks>
- <param name="index">The coordinate index in the sequence.</param>
- <param name="ordinateIndex">The ordinate index in the coordinate (in range [0, dimension-1]).</param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.PackedFloatCoordinateSequence.SetOrdinate(System.Int32,System.Int32,System.Double)">
- <summary>
- Sets the ordinate of a coordinate in this sequence.
- </summary>
- <param name="index">The coordinate index.</param>
- <param name="ordinateIndex">The ordinate index in the coordinate, 0 based,
- smaller than the number of dimensions.</param>
- <param name="value">The new ordinate value.</param>
- <remarks>
- Warning: for performance reasons the ordinate index is not checked:
- if it is over dimensions you may not get an exception but a meaningless value.
- </remarks>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.PackedFloatCoordinateSequence.ExpandEnvelope(NetTopologySuite.Geometries.Envelope)">
- <summary>
- Expands the given Envelope to include the coordinates in the sequence.
- Allows implementing classes to optimize access to coordinate values.
- </summary>
- <param name="env">The envelope to expand.</param>
- <returns>A reference to the expanded envelope.</returns>
- </member>
- <member name="T:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory">
- <summary>
- Builds packed array coordinate sequences.
- The array data type can be either
- <c>double</c> or <c>float</c>,
- and defaults to <c>double</c>.
- </summary>
- </member>
- <member name="T:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory.PackedType">
- <summary>
- An enumeration of valid type codes
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory.PackedType.Double">
- <summary>
- Type code for arrays of type <c>double</c>.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory.PackedType.Float">
- <summary>
- Type code for arrays of type <c>float</c>.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory.DoubleFactory">
- <summary>
- A factory creating <see cref="F:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory.PackedType.Double"/> coordinate sequences
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory.FloatFactory">
- <summary>
- A factory creating <see cref="F:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory.PackedType.Float"/> coordinate sequences
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory.#ctor">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory"/> class,
- using double values.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory.#ctor(NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory.PackedType)">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory"/> class.
- </summary>
- <param name="type">The type.</param>
- </member>
- <member name="P:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory.Type">
- <summary>
- Gets the type of packed coordinate sequence this factory builds, either
- <see cref="F:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory.PackedType.Float"/> or <see cref="F:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory.PackedType.Double"/>
- </summary>
- <value>The type of packed array built.</value>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory.Create(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Returns a CoordinateSequence based on the given array; whether or not the
- array is copied is implementation-dependent.
- </summary>
- <param name="coordinates">Coordinates array, which may not be null nor contain null elements</param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory.Create(NetTopologySuite.Geometries.CoordinateSequence)">
- <summary>
- Returns a CoordinateSequence based on the given coordinate sequence; whether or not the
- array is copied is implementation-dependent.
- </summary>
- <param name="coordSeq"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory.Create(System.Double[],System.Int32)">
- <summary>
- Creates a packed coordinate sequence of type <see cref="P:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory.Type"/> from the provided <c>double</c> array
- using the provided dimension and a measure of <c>0</c>.
- </summary>
- <param name="packedCoordinates">The array containing coordinate values</param>
- <param name="dimension">The coordinate dimension</param>
- <returns>A packed coordinate sequence of <see cref="P:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory.Type"/></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory.Create(System.Double[],System.Int32,System.Int32)">
- <summary>
- Creates a packed coordinate sequence of type <see cref="P:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory.Type"/> from the provided <c>double</c> array
- using the provided dimension and a measure of <c>0</c>.
- </summary>
- <param name="packedCoordinates">The array containing coordinate values</param>
- <param name="dimension">The coordinate dimension</param>
- <param name="measures">The coordinate measure count</param>
- <returns>A packed coordinate sequence of <see cref="P:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory.Type"/></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory.Create(System.Single[],System.Int32)">
- <summary>
- Creates a packed coordinate sequence of type <see cref="P:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory.Type"/> from the provided <c>float</c> array
- using the provided dimension and a measure of <c>0</c>.
- </summary>
- <param name="packedCoordinates">The array containing coordinate values</param>
- <param name="dimension">The coordinate dimension</param>
- <returns>A packed coordinate sequence of <see cref="P:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory.Type"/></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory.Create(System.Single[],System.Int32,System.Int32)">
- <summary>
- Creates a packed coordinate sequence of type <see cref="P:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory.Type"/> from the provided <c>float</c> array
- using the provided dimension and a measure of <c>0</c>.
- </summary>
- <param name="packedCoordinates">The array containing coordinate values</param>
- <param name="dimension">The coordinate dimension</param>
- <param name="measures">The coordinate measure count</param>
- <returns>A packed coordinate sequence of <see cref="P:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory.Type"/></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory.Create(System.Int32,System.Int32,System.Int32)">
- <inheritdoc />
- </member>
- <member name="T:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence">
- <summary>
- An implementation of <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/> that packs its contents in a way that
- can be customized by the creator.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence.#ctor(System.Memory{System.Double}[],System.ValueTuple{System.Int32,System.Int32}[],System.Int32)">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence"/> class.
- </summary>
- <param name="rawData">
- Contains the raw data for this sequence.
- </param>
- <param name="dimensionMap">
- Contains a pair of indexes to tell us, for each dimension, where to find its data in
- <paramref name="rawData"/>.
- </param>
- <param name="measures">
- The value for <see cref="P:NetTopologySuite.Geometries.CoordinateSequence.Measures"/>.
- </param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence.GetRawCoordinatesAndStride(System.Int32)">
- <summary>
- Gets the underlying <see cref="T:System.Memory`1"/> for the ordinates at the given index, along
- with a "stride" value that represents how many slots there are between elements.
- </summary>
- <param name="ordinateIndex">
- The index of the ordinate whose values to get, from
- <see cref="M:NetTopologySuite.Geometries.CoordinateSequence.TryGetOrdinateIndex(NetTopologySuite.Geometries.Ordinate,System.Int32@)"/>.
- </param>
- <returns>
- The underlying <see cref="T:System.Memory`1"/> and stride.
- </returns>
- <remarks>
- Assuming <see cref="P:NetTopologySuite.Geometries.CoordinateSequence.Count"/> is nonzero, the first element of the
- returned array holds the first coordinate's value for the requested ordinate, and the
- last element of the returned array holds the last coordinate's value for the requested
- ordinate.
- </remarks>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence.GetOrdinate(System.Int32,System.Int32)">
- <inheritdoc />
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence.SetOrdinate(System.Int32,System.Int32,System.Double)">
- <inheritdoc />
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence.Copy">
- <inheritdoc />
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence.Reversed">
- <inheritdoc />
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence.ExpandEnvelope(NetTopologySuite.Geometries.Envelope)">
- <inheritdoc />
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence.ToCoordinateArray">
- <inheritdoc />
- </member>
- <member name="T:NetTopologySuite.Geometries.Implementation.RawCoordinateSequenceFactory">
- <summary>
- Factory for creating <see cref="T:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence"/> instances.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.RawCoordinateSequenceFactory.#ctor(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Ordinates})">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.Geometries.Implementation.RawCoordinateSequenceFactory"/> class.
- </summary>
- <param name="ordinateGroups">
- A sequence of zero or more <see cref="T:NetTopologySuite.Geometries.Ordinates"/> flags representing ordinate values
- that should be allocated together.
- </param>
- <exception cref="T:System.ArgumentNullException">
- Thrown when <paramref name="ordinateGroups"/> is <see langword="null"/>.
- </exception>
- <exception cref="T:System.ArgumentException">
- Thrown when a given flag appears in more than one element of
- <paramref name="ordinateGroups"/>.
- </exception>
- <remarks>
- Any flags not represented in <paramref name="ordinateGroups"/>, and any spatial or
- measure dimensions beyond the 16th, will be allocated together, SoA-style.
- <para/>
- Elements without any bits set will be silently ignored.
- </remarks>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.RawCoordinateSequenceFactory.CreateXY(System.Memory{System.Double},System.Memory{System.Double})">
- <summary>
- Creates a new <see cref="T:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence"/> that uses the given arrays for reading
- and writing X and Y data ignoring the <see cref="T:NetTopologySuite.Geometries.Ordinates"/> flags that were passed
- into the constructor for this factory instance.
- </summary>
- <param name="x">
- An array of X values, laid out as
- <c>[x0, x1, x2, ..., xn]</c>.
- </param>
- <param name="y">
- An array of Y values, laid out as
- <c>[y0, y1, y2, ..., yn]</c>.
- </param>
- <returns>
- A <see cref="T:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence"/> instance that's backed by the given arrays.
- </returns>
- <exception cref="T:System.ArgumentException">
- Thrown when the input arrays do not contain data for the same number of coordinates.
- </exception>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.RawCoordinateSequenceFactory.CreateXY(System.Memory{System.Double})">
- <summary>
- Creates a new <see cref="T:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence"/> that uses the given array for reading
- and writing X and Y data ignoring the <see cref="T:NetTopologySuite.Geometries.Ordinates"/> flags that were passed
- into the constructor for this factory instance.
- </summary>
- <param name="xy">
- An array of X and Y values, laid out as
- <c>[x0, y0, x1, y1, x2, y2, ..., xn, yn]</c>.
- </param>
- <returns>
- A <see cref="T:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence"/> instance that's backed by the given array.
- </returns>
- <remarks>
- The resulting instance is essentially a <see cref="T:NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence"/>
- with slightly more overhead, so the main reason to prefer this over that one would be if
- you <b>really</b> need to avoid copying the data to fit it into that format.
- </remarks>
- <exception cref="T:System.ArgumentException">
- Thrown when the length of <paramref name="xy"/> is not a multiple of 2.
- </exception>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.RawCoordinateSequenceFactory.CreateXYZ(System.Memory{System.Double},System.Memory{System.Double},System.Memory{System.Double})">
- <summary>
- Creates a new <see cref="T:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence"/> that uses the given arrays for reading
- and writing X, Y, and Z data ignoring the <see cref="T:NetTopologySuite.Geometries.Ordinates"/> flags that were passed
- into the constructor for this factory instance.
- </summary>
- <param name="x">
- An array of X values, laid out as
- <c>[x0, x1, x2, ..., xn]</c>.
- </param>
- <param name="y">
- An array of Y values, laid out as
- <c>[y0, y1, y2, ..., yn]</c>.
- </param>
- <param name="z">
- An array of Z values, laid out as
- <c>[z0, z1, z2, ..., zn]</c>.
- </param>
- <returns>
- A <see cref="T:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence"/> instance that's backed by the given arrays.
- </returns>
- <exception cref="T:System.ArgumentException">
- Thrown when the input arrays do not contain data for the same number of coordinates.
- </exception>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.RawCoordinateSequenceFactory.CreateXYZ(System.Memory{System.Double},System.Memory{System.Double})">
- <summary>
- Creates a new <see cref="T:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence"/> that uses the given array for reading
- and writing X, Y, and Z data ignoring the <see cref="T:NetTopologySuite.Geometries.Ordinates"/> flags that were passed
- into the constructor for this factory instance.
- </summary>
- <param name="xy">
- An array of X and Y values, laid out as
- <c>[x0, y0, x1, y1, x2, y2, ..., xn, yn]</c>.
- </param>
- <param name="z">
- An array of Z values, laid out as
- <c>[z0, z1, z2, ..., zn]</c>.
- </param>
- <returns>
- A <see cref="T:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence"/> instance that's backed by the given array.
- </returns>
- <remarks>
- The resulting instance is essentially a <see cref="T:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence"/>
- with slightly more overhead, so the main reason to prefer this over that one would be if
- you <b>really</b> need to avoid copying the data to fit it into that format.
- </remarks>
- <exception cref="T:System.ArgumentException">
- Thrown when the length of <paramref name="xy"/> is not a multiple of 2, or when the
- input arrays do not contain data for the same number of coordinates.
- </exception>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.RawCoordinateSequenceFactory.CreateXYZ(System.Memory{System.Double})">
- <summary>
- Creates a new <see cref="T:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence"/> that uses the given array for reading
- and writing X, Y, and Z data ignoring the <see cref="T:NetTopologySuite.Geometries.Ordinates"/> flags that were passed
- into the constructor for this factory instance.
- </summary>
- <param name="xyz">
- An array of X, Y, and Z values, laid out as
- <c>[x0, y0, z0, x1, y1, z1, x2, y2, z2, ..., xn, yn, zn]</c>.
- </param>
- <returns>
- A <see cref="T:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence"/> instance that's backed by the given array.
- </returns>
- <remarks>
- The resulting instance is essentially a <see cref="T:NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence"/>
- with slightly more overhead, so the main reason to prefer this over that one would be if
- you <b>really</b> need to avoid copying the data to fit it into that format.
- </remarks>
- <exception cref="T:System.ArgumentException">
- Thrown when the length of <paramref name="xyz"/> is not a multiple of 3.
- </exception>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.RawCoordinateSequenceFactory.CreateXYM(System.Memory{System.Double},System.Memory{System.Double},System.Memory{System.Double})">
- <summary>
- Creates a new <see cref="T:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence"/> that uses the given arrays for reading
- and writing X, Y, and M data ignoring the <see cref="T:NetTopologySuite.Geometries.Ordinates"/> flags that were passed
- into the constructor for this factory instance.
- </summary>
- <param name="x">
- An array of X values, laid out as
- <c>[x0, x1, x2, ..., xn]</c>.
- </param>
- <param name="y">
- An array of Y values, laid out as
- <c>[y0, y1, y2, ..., yn]</c>.
- </param>
- <param name="m">
- An array of M values, laid out as
- <c>[m0, m1, m2, ..., mn]</c>.
- </param>
- <returns>
- A <see cref="T:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence"/> instance that's backed by the given arrays.
- </returns>
- <exception cref="T:System.ArgumentException">
- Thrown when the input arrays do not contain data for the same number of coordinates.
- </exception>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.RawCoordinateSequenceFactory.CreateXYM(System.Memory{System.Double},System.Memory{System.Double})">
- <summary>
- Creates a new <see cref="T:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence"/> that uses the given array for reading
- and writing X, Y, and M data ignoring the <see cref="T:NetTopologySuite.Geometries.Ordinates"/> flags that were passed
- into the constructor for this factory instance.
- </summary>
- <param name="xy">
- An array of X and Y values, laid out as
- <c>[x0, y0, x1, y1, x2, y2, ..., xn, yn]</c>.
- </param>
- <param name="m">
- An array of M values, laid out as
- <c>[m0, m1, m2, ..., mn]</c>.
- </param>
- <returns>
- A <see cref="T:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence"/> instance that's backed by the given array.
- </returns>
- <remarks>
- The resulting instance is essentially a <see cref="T:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence"/>
- with slightly more overhead, so the main reason to prefer this over that one would be if
- you <b>really</b> need to avoid copying the data to fit it into that format.
- </remarks>
- <exception cref="T:System.ArgumentException">
- Thrown when the length of <paramref name="xy"/> is not a multiple of 2, or when the
- input arrays do not contain data for the same number of coordinates.
- </exception>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.RawCoordinateSequenceFactory.CreateXYM(System.Memory{System.Double})">
- <summary>
- Creates a new <see cref="T:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence"/> that uses the given array for reading
- and writing X, Y, and M data ignoring the <see cref="T:NetTopologySuite.Geometries.Ordinates"/> flags that were passed
- into the constructor for this factory instance.
- </summary>
- <param name="xym">
- An array of X, Y, and M values, laid out as
- <c>[x0, y0, m0, x1, y1, m1, x2, y2, m2, ..., xn, yn, mn]</c>.
- </param>
- <returns>
- A <see cref="T:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence"/> instance that's backed by the given array.
- </returns>
- <remarks>
- The resulting instance is essentially a <see cref="T:NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence"/>
- with slightly more overhead, so the main reason to prefer this over that one would be if
- you <b>really</b> need to avoid copying the data to fit it into that format.
- </remarks>
- <exception cref="T:System.ArgumentException">
- Thrown when the length of <paramref name="xym"/> is not a multiple of 3.
- </exception>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.RawCoordinateSequenceFactory.CreateXYZM(System.Memory{System.Double},System.Memory{System.Double},System.Memory{System.Double},System.Memory{System.Double})">
- <summary>
- Creates a new <see cref="T:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence"/> that uses the given arrays for reading
- and writing X, Y, Z, and M data ignoring the <see cref="T:NetTopologySuite.Geometries.Ordinates"/> flags that were passed
- into the constructor for this factory instance.
- </summary>
- <param name="x">
- An array of X values, laid out as
- <c>[x0, x1, x2, ..., xn]</c>.
- </param>
- <param name="y">
- An array of Y values, laid out as
- <c>[y0, y1, y2, ..., yn]</c>.
- </param>
- <param name="z">
- An array of Z values, laid out as
- <c>[z0, z1, z2, ..., zn]</c>.
- </param>
- <param name="m">
- An array of M values, laid out as
- <c>[m0, m1, m2, ..., mn]</c>.
- </param>
- <returns>
- A <see cref="T:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence"/> instance that's backed by the given arrays.
- </returns>
- <exception cref="T:System.ArgumentException">
- Thrown when the input arrays do not contain data for the same number of coordinates.
- </exception>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.RawCoordinateSequenceFactory.CreateXYZM(System.Memory{System.Double},System.Memory{System.Double},System.Memory{System.Double})">
- <summary>
- Creates a new <see cref="T:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence"/> that uses the given array for reading
- and writing X, Y, Z, and M data ignoring the <see cref="T:NetTopologySuite.Geometries.Ordinates"/> flags that were passed
- into the constructor for this factory instance.
- </summary>
- <param name="xy">
- An array of X and Y values, laid out as
- <c>[x0, y0, x1, y1, x2, y2, ..., xn, yn]</c>.
- </param>
- <param name="z">
- An array of Z values, laid out as
- <c>[z0, z1, z2, ..., zn]</c>.
- </param>
- <param name="m">
- An array of M values, laid out as
- <c>[m0, m1, m2, ..., mn]</c>.
- </param>
- <returns>
- A <see cref="T:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence"/> instance that's backed by the given array.
- </returns>
- <remarks>
- The resulting instance is essentially a <see cref="T:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence"/>
- with slightly more overhead, so the main reason to prefer this over that one would be if
- you <b>really</b> need to avoid copying the data to fit it into that format.
- </remarks>
- <exception cref="T:System.ArgumentException">
- Thrown when the length of <paramref name="xy"/> is not a multiple of 2, or when the
- input arrays do not contain data for the same number of coordinates.
- </exception>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.RawCoordinateSequenceFactory.CreateXYZM(System.Memory{System.Double})">
- <summary>
- Creates a new <see cref="T:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence"/> that uses the given array for reading
- and writing X, Y, Z, and M data ignoring the <see cref="T:NetTopologySuite.Geometries.Ordinates"/> flags that were passed
- into the constructor for this factory instance.
- </summary>
- <param name="xyzm">
- An array of X, Y, Z, and M values, laid out as
- <c>[x0, y0, z0, m0, x1, y1, z1, m1, x2, y2, z2, m2, ..., xn, yn, zn, mn]</c>.
- </param>
- <returns>
- A <see cref="T:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence"/> instance that's backed by the given array.
- </returns>
- <remarks>
- The resulting instance is essentially a <see cref="T:NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence"/>
- with slightly more overhead, so the main reason to prefer this over that one would be if
- you <b>really</b> need to avoid copying the data to fit it into that format.
- </remarks>
- <exception cref="T:System.ArgumentException">
- Thrown when the length of <paramref name="xyzm"/> is not a multiple of 4.
- </exception>
- </member>
- <member name="M:NetTopologySuite.Geometries.Implementation.RawCoordinateSequenceFactory.Create(System.Int32,System.Int32,System.Int32)">
- <inheritdoc />
- </member>
- <member name="T:NetTopologySuite.Geometries.IntersectionMatrix">
- <summary>
- Models a <b>Dimensionally Extended Nine-Intersection Model (DE-9IM)</b> matrix.
- </summary>
- <remarks>
- DE-9IM matrix values (such as "212FF1FF2")
- specify the topological relationship between two <see cref="T:NetTopologySuite.Geometries.Geometry"/>s.
- This class can also represent matrix patterns (such as "T*T******")
- which are used for matching instances of DE-9IM matrices.
- <para/>
- DE-9IM matrices are 3x3 matrices with integer entries.
- The matrix indices {0,1,2}
- represent the topological locations
- that occur in a geometry(Interior, Boundary, Exterior).
- These are provided by the constants
- <see cref="F:NetTopologySuite.Geometries.Location.Interior"/>, <see cref="F:NetTopologySuite.Geometries.Location.Boundary"/>, and <see cref="F:NetTopologySuite.Geometries.Location.Exterior"/>.
- <para/>
- When used to specify the topological relationship between two geometries,
- the matrix entries represent the possible dimensions of each intersection:
- <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/>
- When used to represent a matrix pattern entries can have the additional values
- <see cref="F:NetTopologySuite.Geometries.Dimension.True"/> ("T") and <see cref="F:NetTopologySuite.Geometries.Dimension.Dontcare"/> ("*").
- <para/>
- For a description of the DE-9IM and the spatial predicates derived from it, see the following references:
- <list type="bullet">
- <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>
- <item><description>
- <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>,
- Section 6.1.15 (which provides some further details on certain predicate specifications).</description></item>
- <item><description>Wikipedia article on <a href="https://en.wikipedia.org/wiki/DE-9IM">DE-9IM</a></description></item>
- </list>
- <para/>
- Methods are provided to:
- <list type="bullet">
- <item><description>set and query the elements of the matrix in a convenient fashion</description></item>
- <item><description>convert to and from the standard string representation(specified in SFS Section 2.1.13.2).</description></item>
- <item><description>test if a matrix matches a given pattern string.</description></item>
- <item><description>test if a matrix(possibly with geometry dimensions) matches a standard named spatial predicate</description></item>
- </list>
- </remarks>
- </member>
- <member name="F:NetTopologySuite.Geometries.IntersectionMatrix._matrix">
- <summary>
- Internal representation of this <see cref="T:NetTopologySuite.Geometries.IntersectionMatrix" />.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.IntersectionMatrix.#ctor">
- <summary>
- Creates an <see cref="T:NetTopologySuite.Geometries.IntersectionMatrix" /> with <c>null</c> location values.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.IntersectionMatrix.#ctor(System.String)">
- <summary>
- Creates an <see cref="T:NetTopologySuite.Geometries.IntersectionMatrix" /> with the given dimension
- symbols.
- </summary>
- <param name="elements">A string of nine dimension symbols in row major order.</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.IntersectionMatrix.#ctor(NetTopologySuite.Geometries.IntersectionMatrix)">
- <summary>
- Creates an <see cref="T:NetTopologySuite.Geometries.IntersectionMatrix" /> with the same elements as
- <c>other</c>.
- </summary>
- <param name="other">An <see cref="T:NetTopologySuite.Geometries.IntersectionMatrix" /> to copy.</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.IntersectionMatrix.Add(NetTopologySuite.Geometries.IntersectionMatrix)">
- <summary>
- Adds one matrix to another.
- Addition is defined by taking the maximum dimension value of each position
- in the summand matrices.
- </summary>
- <param name="im">The matrix to add.</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.IntersectionMatrix.IsTrue(NetTopologySuite.Geometries.Dimension)">
- <summary>
- Tests if the dimension value matches <tt>TRUE</tt>
- (i.e. has value 0, 1, 2 or TRUE).
- </summary>
- <param name="actualDimensionValue">A number that can be stored in the <c>IntersectionMatrix</c>.
- 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>
- <returns><c>true</c> if the dimension value matches <see cref="F:NetTopologySuite.Geometries.Dimension.True"/></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.IntersectionMatrix.Matches(NetTopologySuite.Geometries.Dimension,System.Char)">
- <summary>
- Tests if the dimension value satisfies the dimension symbol.
- </summary>
- <param name="actualDimensionValue">
- a number that can be stored in the <c>IntersectionMatrix</c>.
- Possible values are <c>{True, False, Dontcare, 0, 1, 2}</c>.
- </param>
- <param name="requiredDimensionSymbol">
- A character used in the string
- representation of an <see cref="T:NetTopologySuite.Geometries.IntersectionMatrix" />.
- Possible values are <c>T, F, * , 0, 1, 2</c>.
- </param>
- <returns>
- <c>true</c> if the dimension symbol encompasses the dimension value.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.IntersectionMatrix.Matches(System.String,System.String)">
- <summary>
- Tests if each of the actual dimension symbols in a matrix string satisfies the
- corresponding required dimension symbol in a pattern string.
- </summary>
- <param name="actualDimensionSymbols">
- Nine dimension symbols to validate.
- Possible values are <c>T, F, * , 0, 1, 2</c>.
- </param>
- <param name="requiredDimensionSymbols">
- Nine dimension symbols to validate
- against. Possible values are <c>T, F, * , 0, 1, 2</c>.
- </param>
- <returns>
- <c>true</c> if each of the required dimension
- symbols encompass the corresponding actual dimension symbol.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.IntersectionMatrix.Set(NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Dimension)">
- <summary>
- Changes the value of one of this <see cref="T:NetTopologySuite.Geometries.IntersectionMatrix" /> elements.
- </summary>
- <param name="row">
- The row of this <see cref="T:NetTopologySuite.Geometries.IntersectionMatrix" />,
- indicating the interior, boundary or exterior of the first <see cref="T:NetTopologySuite.Geometries.Geometry"/>
- </param>
- <param name="column">
- The column of this <see cref="T:NetTopologySuite.Geometries.IntersectionMatrix" />,
- indicating the interior, boundary or exterior of the second <see cref="T:NetTopologySuite.Geometries.Geometry"/>
- </param>
- <param name="dimensionValue">The new value of the element</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.IntersectionMatrix.Set(System.String)">
- <summary>
- Changes the elements of this <see cref="T:NetTopologySuite.Geometries.IntersectionMatrix" /> to the
- dimension symbols in <c>dimensionSymbols</c>.
- </summary>
- <param name="dimensionSymbols">
- Nine dimension symbols to which to set this <see cref="T:NetTopologySuite.Geometries.IntersectionMatrix" />
- s elements. Possible values are <c>{T, F, * , 0, 1, 2}</c>
- </param>
- </member>
- <member name="M:NetTopologySuite.Geometries.IntersectionMatrix.SetAtLeast(NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Dimension)">
- <summary>
- Changes the specified element to <c>minimumDimensionValue</c> if the element is less.
- </summary>
- <param name="row">
- The row of this <see cref="T:NetTopologySuite.Geometries.IntersectionMatrix" />,
- indicating the interior, boundary or exterior of the first <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
- </param>
- <param name="column">
- The column of this <see cref="T:NetTopologySuite.Geometries.IntersectionMatrix" />,
- indicating the interior, boundary or exterior of the second <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
- </param>
- <param name="minimumDimensionValue">
- The dimension value with which to compare the
- element. The order of dimension values from least to greatest is
- <c>True, False, Dontcare, 0, 1, 2</c>.
- </param>
- </member>
- <member name="M:NetTopologySuite.Geometries.IntersectionMatrix.SetAtLeastIfValid(NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Dimension)">
- <summary>
- If row >= 0 and column >= 0, changes the specified element to <c>minimumDimensionValue</c>
- if the element is less. Does nothing if row is smaller to 0 or column is smaller to 0.
- </summary>
- <param name="row"></param>
- <param name="column"></param>
- <param name="minimumDimensionValue"></param>
- </member>
- <member name="M:NetTopologySuite.Geometries.IntersectionMatrix.SetAtLeast(System.String)">
- <summary>
- For each element in this <see cref="T:NetTopologySuite.Geometries.IntersectionMatrix" />, changes the
- element to the corresponding minimum dimension symbol if the element is
- less.
- </summary>
- <param name="minimumDimensionSymbols">
- Nine dimension symbols with which to
- compare the elements of this <see cref="T:NetTopologySuite.Geometries.IntersectionMatrix" />. The
- order of dimension values from least to greatest is <c>Dontcare, True, False, 0, 1, 2</c>.
- </param>
- </member>
- <member name="M:NetTopologySuite.Geometries.IntersectionMatrix.SetAll(NetTopologySuite.Geometries.Dimension)">
- <summary>
- Changes the elements of this <see cref="T:NetTopologySuite.Geometries.IntersectionMatrix" /> to <c>dimensionValue</c>.
- </summary>
- <param name="dimensionValue">
- The dimension value to which to set this <see cref="T:NetTopologySuite.Geometries.IntersectionMatrix" />
- s elements. Possible values <c>True, False, Dontcare, 0, 1, 2}</c>.
- </param>
- </member>
- <member name="M:NetTopologySuite.Geometries.IntersectionMatrix.Get(NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Location)">
- <summary>
- Returns the value of one of this <see cref="T:NetTopologySuite.Geometries.IntersectionMatrix" />s
- elements.
- </summary>
- <param name="row">
- The row of this <see cref="T:NetTopologySuite.Geometries.IntersectionMatrix" />, indicating
- the interior, boundary or exterior of the first <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
- </param>
- <param name="column">
- The column of this <see cref="T:NetTopologySuite.Geometries.IntersectionMatrix" />,
- indicating the interior, boundary or exterior of the second <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
- </param>
- <returns>The dimension value at the given matrix position.</returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.IntersectionMatrix.Item(NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Location)">
- <summary>
- See methods Get(int, int) and Set(int, int, int value)
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.IntersectionMatrix.IsDisjoint">
- <summary>
- Tests if this matrix matches <c>[FF*FF****]</c>.
- </summary>
- <returns>
- <c>true</c> if the two <see cref="T:NetTopologySuite.Geometries.Geometry"/>'s related by
- this matrix are disjoint.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.IntersectionMatrix.IsIntersects">
- <summary>
- Tests if <c>isDisjoint</c> returns <see langword="false"/>.
- </summary>
- <returns>
- <c>true</c> if the two <see cref="T:NetTopologySuite.Geometries.Geometry"/>'s related by
- this matrix intersect.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.IntersectionMatrix.IsTouches(NetTopologySuite.Geometries.Dimension,NetTopologySuite.Geometries.Dimension)">
- <summary>
- Tests if this matrix matches
- <c>[FT*******]</c>, <c>[F**T*****]</c> or <c>[F***T****]</c>.
- </summary>
- <param name="dimensionOfGeometryA">The dimension of the first <see cref="T:NetTopologySuite.Geometries.Geometry"/>.</param>
- <param name="dimensionOfGeometryB">The dimension of the second <see cref="T:NetTopologySuite.Geometries.Geometry"/>.</param>
- <returns>
- <c>true</c> if the two <see cref="T:NetTopologySuite.Geometries.Geometry"/>
- s related by this matrix touch; Returns false
- if both <see cref="T:NetTopologySuite.Geometries.Geometry"/>s are points.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.IntersectionMatrix.IsCrosses(NetTopologySuite.Geometries.Dimension,NetTopologySuite.Geometries.Dimension)">
- <summary>
- Tests whether this geometry crosses the
- specified geometry.
- </summary>
- <remarks>
- The <c>crosses</c> predicate has the following equivalent definitions:
- <list type="bullet">
- <item><description>The geometries have some but not all interior points in common.</description></item>
- <item><description>The DE-9IM Intersection Matrix for the two geometries matches</description></item>
- <list type="bullet">
- <item><description><c>[T*T******]</c> (for P/L, P/A, and L/A situations)</description></item>
- <item><description><c>[T*****T**]</c> (for L/P, L/A, and A/L situations)</description></item>
- <item><description><c>[0********]</c> (for L/L situations)</description></item>
- </list>
- </list>
- For any other combination of dimensions this predicate returns <c>false</c>.
- <para/>
- The SFS defined this predicate only for P/L, P/A, L/L, and L/A situations.
- JTS extends the definition to apply to L/P, A/P and A/L situations as well.
- This makes the relation symmetric.
- </remarks>
- <param name="dimensionOfGeometryA">The dimension of the first <see cref="T:NetTopologySuite.Geometries.Geometry"/>.</param>
- <param name="dimensionOfGeometryB">The dimension of the second <see cref="T:NetTopologySuite.Geometries.Geometry"/>.</param>
- <returns>
- <c>true</c> if the two <see cref="T:NetTopologySuite.Geometries.Geometry"/>
- s related by this matrix cross.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.IntersectionMatrix.IsWithin">
- <summary>
- Tests whether this matrix matches <c>[T*F**F***]</c>.
- </summary>
- <returns><c>true</c> if the first <see cref="T:NetTopologySuite.Geometries.Geometry"/> is within the second.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.IntersectionMatrix.IsContains">
- <summary>
- Tests whether this matrix matches <c>[T*****FF*]</c>
- </summary>
- <returns><c>true</c> if the first <see cref="T:NetTopologySuite.Geometries.Geometry"/> contains the second.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.IntersectionMatrix.IsCovers">
- <summary>
- Tests if this matrix matches
- <c>[T*****FF*]</c>
- or <c>[*T****FF*]</c>
- or <c>[***T**FF*]</c>
- or <c>[****T*FF*]</c>.
- </summary>
- <returns><c>true</c> if the first <see cref="T:NetTopologySuite.Geometries.Geometry"/> covers the second</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.IntersectionMatrix.IsCoveredBy">
- <summary>
- Tests if this matrix matches
- <c>[T*F**F***]</c>
- or <c>[*TF**F***]</c>
- or <c>[**FT*F***]</c>
- or <c>[**F*TF***]</c>.
- </summary>
- <returns><c>true</c> if the first <see cref="T:NetTopologySuite.Geometries.Geometry"/> is covered by the second</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.IntersectionMatrix.IsEquals(NetTopologySuite.Geometries.Dimension,NetTopologySuite.Geometries.Dimension)">
- <summary>
- Tests whether the argument dimensions are equal and
- this matrix matches the pattern <c>[T*F**FFF*]</c>.
- <para/>
- <b>Note:</b> This pattern differs from the one stated in
- <i>Simple feature access - Part 1: Common architecture</i>.
- That document states the pattern as <c>[TFFFTFFFT]</c>. This would
- specify that
- two identical <tt>POINT</tt>s are not equal, which is not desirable behaviour.
- The pattern used here has been corrected to compute equality in this situation.
- </summary>
- <param name="dimensionOfGeometryA">The dimension of the first <see cref="T:NetTopologySuite.Geometries.Geometry"/>.</param>
- <param name="dimensionOfGeometryB">The dimension of the second <see cref="T:NetTopologySuite.Geometries.Geometry"/>.</param>
- <returns>
- <c>true</c> if the two <see cref="T:NetTopologySuite.Geometries.Geometry"/>s
- related by this matrix are equal; the
- <see cref="T:NetTopologySuite.Geometries.Geometry"/>s must have the same dimension to be equal.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.IntersectionMatrix.IsOverlaps(NetTopologySuite.Geometries.Dimension,NetTopologySuite.Geometries.Dimension)">
- <summary>
- Tests if this matrix matches
- <list type="bullet">
- <item><description><c>[T*T***T**]</c> (for two points or two surfaces)</description></item>
- <item><description><c>[1*T***T**]</c> (for two curves)</description></item>
- </list>
- </summary>
- <param name="dimensionOfGeometryA">The dimension of the first <see cref="T:NetTopologySuite.Geometries.Geometry"/>.</param>
- <param name="dimensionOfGeometryB">The dimension of the second <see cref="T:NetTopologySuite.Geometries.Geometry"/>.</param>
- <returns>
- <c>true</c> if the two <see cref="T:NetTopologySuite.Geometries.Geometry"/>
- s related by this matrix overlap. For this
- function to return <c>true</c>, the <see cref="T:NetTopologySuite.Geometries.Geometry"/>s must
- be two points, two curves or two surfaces.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.IntersectionMatrix.Matches(System.String)">
- <summary>
- Tests whether this matrix matches the given matrix pattern
- </summary>
- <param name="pattern">
- A pattern containing nine dimension symbols with which to
- compare the entries of this matrix.Possible
- symbol values are <c>{ T, F, * , 0, 1, 2}</c>.
- </param>
- <returns>
- <c>true</c> if this <see cref="T:NetTopologySuite.Geometries.IntersectionMatrix" />
- matches the required dimension symbols.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.IntersectionMatrix.Transpose">
- <summary>
- Transposes this IntersectionMatrix.
- </summary>
- <returns>This <see cref="T:NetTopologySuite.Geometries.IntersectionMatrix" /> as a convenience,</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.IntersectionMatrix.ToString">
- <summary>
- Returns a nine-character <c>String</c> representation of this <see cref="T:NetTopologySuite.Geometries.IntersectionMatrix" />.
- </summary>
- <returns>
- The nine dimension symbols of this <see cref="T:NetTopologySuite.Geometries.IntersectionMatrix" />
- in row-major order.
- </returns>
- </member>
- <member name="T:NetTopologySuite.Geometries.IPolygonal">
- <summary>
- Interface to identify all <c>Geometry</c> subclasses that have a <c>Dimension</c> of <see cref="F:NetTopologySuite.Geometries.Dimension.Surface"/>
- and have components that are <see cref="T:NetTopologySuite.Geometries.Polygon"/>s.
- </summary>
- <author>Martin Davis</author>
- <seealso cref="T:NetTopologySuite.Geometries.IPuntal"/>
- <seealso cref="T:NetTopologySuite.Geometries.ILineal"/>
- </member>
- <member name="T:NetTopologySuite.Geometries.IPuntal">
- <summary>
- Interface to identify all <c>Geometry</c> subclasses that have a <c>Dimension</c> of <see cref="F:NetTopologySuite.Geometries.Dimension.Point"/>
- and have components that ar <see cref="T:NetTopologySuite.Geometries.Point"/>s.
- </summary>
- <author>Martin Davis</author>
- <seealso cref="T:NetTopologySuite.Geometries.ILineal"/>
- <seealso cref="T:NetTopologySuite.Geometries.IPolygonal"/>
- </member>
- <member name="T:NetTopologySuite.Geometries.LinearRing">
- <summary>
- Models an OGC SFS <c>LinearRing</c>.
- </summary>
- <remarks>
- A <c>LinearRing</c> is a <see cref="T:NetTopologySuite.Geometries.LineString"/> which is both closed and simple.
- In other words,
- the first and last coordinate in the ring must be equal,
- and the ring must not self-intersect.
- Either orientation of the ring is allowed.
- <para/>
- A ring must have either 0 or 3 or more points.
- The first and last points must be equal (in 2D).
- If these conditions are not met, the constructors throw
- an <see cref="T:System.ArgumentException"/><br/>
- A ring with 3 points is invalid, because it is collapsed
- and thus has a self-intersection. It is allowed to be constructed
- so that it can be represented, and repaired if needed.
- </remarks>
- </member>
- <member name="F:NetTopologySuite.Geometries.LinearRing.MinimumValidSize">
- <summary>
- The minimum number of vertices allowed in a valid non-empty ring.
- Empty rings with 0 vertices are also valid.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.LinearRing.#ctor(NetTopologySuite.Geometries.CoordinateSequence,NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
- Constructs a <c>LinearRing</c> with the vertices specified
- by the given <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>.
- </summary>
- <param name="points">A sequence points forming a closed and simple linestring,
- or <c>null</c> to create the empty geometry.</param>
- <param name="factory">The factory that creates this <c>LinearRing</c></param>
- <exception cref="T:System.ArgumentException">If the ring is not closed, or has too few points</exception>
- </member>
- <member name="M:NetTopologySuite.Geometries.LinearRing.ValidateConstruction">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.LinearRing.SortIndex">
- <summary>
- Gets a value to sort the geometry
- </summary>
- <remarks>
- NOTE:<br/>
- For JTS v1.17 this property's getter has been renamed to <c>getTypeCode()</c>.
- In order not to break binary compatibility we did not follow.
- </remarks>
- </member>
- <member name="P:NetTopologySuite.Geometries.LinearRing.BoundaryDimension">
- <summary>
- Returns <c>Dimensions.False</c>, since by definition LinearRings do not have a boundary.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.LinearRing.IsClosed">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.LinearRing.GeometryType">
- <summary>
- Returns the name of this object's interface.
- </summary>
- <returns>"LinearRing"</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.LinearRing.CopyInternal">
- <inheritdoc cref="M:NetTopologySuite.Geometries.Geometry.CopyInternal"/>>
- </member>
- <member name="M:NetTopologySuite.Geometries.LinearRing.Reverse">
- <inheritdoc cref="M:NetTopologySuite.Geometries.Geometry.Reverse"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.LinearRing.ReverseInternal">
- <summary>
- The actual implementation of the <see cref="M:NetTopologySuite.Geometries.Geometry.Reverse"/> function for <c>LINEARRING</c>s.
- </summary>
- <returns>A reversed geometry</returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.LinearRing.IsCCW">
- <summary>
- Gets a value indicating if this <c>LINEARRING</c> is oriented <see cref="F:NetTopologySuite.Algorithm.OrientationIndex.CounterClockwise"/>
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.LinearRing.#ctor(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.Geometries.LinearRing"/> class.
- </summary>
- <param name="points">The points used for create this instance.</param>
- <remarks>
- For create this <see cref="T:NetTopologySuite.Geometries.Geometry"/> is used a standard <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>
- with <see cref="T:NetTopologySuite.Geometries.PrecisionModel" /> <c> == </c> <see cref="F:NetTopologySuite.Geometries.PrecisionModels.Floating"/>.
- </remarks>
- <exception cref="T:System.ArgumentException">If the ring is not closed, or has too few points</exception>
- </member>
- <member name="T:NetTopologySuite.Geometries.LinearRingOrientation">
- <summary>
- An enumeration of ring orientation values
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.LinearRingOrientation.CounterClockwise">
- <summary>
- The orientation of the ring's coordinates is counter-clockwise.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.LinearRingOrientation.LeftHandRule">
- <summary>
- The orientation of the ring's coordinates follows the left-hand-rule,
- saying that if you follow the ring in the direction of its coordinates
- your left hand will be inside the ring.
- </summary>
- <seealso cref="F:NetTopologySuite.Geometries.LinearRingOrientation.CounterClockwise"/>
- </member>
- <member name="F:NetTopologySuite.Geometries.LinearRingOrientation.CCW">
- <summary>
- The orientation of the ring's coordinates is counter-clockwise.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.LinearRingOrientation.DontCare">
- <summary>
- The orientation of the rings coordinates does not matter.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.LinearRingOrientation.Default">
- <summary>
- The default orientation of the rings coordinates.
- Set to <see cref="F:NetTopologySuite.Geometries.LinearRingOrientation.CounterClockwise"/>
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.LinearRingOrientation.Clockwise">
- <summary>
- The orientation of the ring's coordinates is clockwise.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.LinearRingOrientation.RightHandRule">
- <summary>
- The orientation of the ring's coordinates follows the right-hand-rule,
- saying that if you follow the ring in the direction of its coordinates
- your right hand will be inside the ring.
- </summary>
- <seealso cref="F:NetTopologySuite.Geometries.LinearRingOrientation.Clockwise"/>
- </member>
- <member name="F:NetTopologySuite.Geometries.LinearRingOrientation.CW">
- <summary>
- The orientation of the ring's coordinates is clockwise.
- </summary>
- </member>
- <member name="T:NetTopologySuite.Geometries.LineSegment">
- <summary>
- Represents a line segment defined by two <c>Coordinate</c>s.
- Provides methods to compute various geometric properties
- and relationships of line segments.
- This class is designed to be easily mutable (to the extent of
- having its contained points public).
- This supports a common pattern of reusing a single LineSegment
- object as a way of computing segment properties on the
- segments defined by arrays or lists of <c>Coordinate</c>s.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.LineSegment.P1">
- <summary>
- The end-point
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.LineSegment.P0">
- <summary>
- The start-point
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.LineSegment.#ctor(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Creates an instance of this class using two coordinates
- </summary>
- <param name="p0">The start-point</param>
- <param name="p1">The end-point</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.LineSegment.#ctor(NetTopologySuite.Geometries.LineSegment)">
- <summary>
- Creates an instance of this class using another instance
- </summary>
- <param name="ls"></param>
- </member>
- <member name="M:NetTopologySuite.Geometries.LineSegment.#ctor">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.LineSegment.#ctor(System.Double,System.Double,System.Double,System.Double)">
- <summary>
- Creates an instance of this class
- </summary>
- <param name="x0"></param>
- <param name="y0"></param>
- <param name="x1"></param>
- <param name="y1"></param>
- </member>
- <member name="M:NetTopologySuite.Geometries.LineSegment.GetCoordinate(System.Int32)">
- <summary>
-
- </summary>
- <param name="i"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.LineSegment.SetCoordinates(NetTopologySuite.Geometries.LineSegment)">
- <summary>
-
- </summary>
- <param name="ls"></param>
- </member>
- <member name="M:NetTopologySuite.Geometries.LineSegment.SetCoordinates(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
-
- </summary>
- <param name="p0"></param>
- <param name="p1"></param>
- </member>
- <member name="P:NetTopologySuite.Geometries.LineSegment.MinX">
- <summary>
- Gets the minimum X ordinate
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.LineSegment.MaxX">
- <summary>
- Gets the maximum X ordinate
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.LineSegment.MinY">
- <summary>
- Gets the minimum Y ordinate
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.LineSegment.MaxY">
- <summary>
- Gets the maximum Y ordinate
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.LineSegment.Length">
- <summary>
- Computes the length of the line segment.
- </summary>
- <returns>The length of the line segment.</returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.LineSegment.IsHorizontal">
- <summary>
- Tests whether the segment is horizontal.
- </summary>
- <returns><c>true</c> if the segment is horizontal.</returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.LineSegment.IsVertical">
- <summary>
- Tests whether the segment is vertical.
- </summary>
- <returns><c>true</c> if the segment is vertical.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.LineSegment.OrientationIndex(NetTopologySuite.Geometries.LineSegment)">
- <summary>
- Determines the orientation of a LineSegment relative to this segment.
- The concept of orientation is specified as follows:
- Given two line segments A and L,
- A is to the left of a segment L if A lies wholly in the
- closed half-plane lying to the left of L
- A is to the right of a segment L if A lies wholly in the
- closed half-plane lying to the right of L
- otherwise, A has indeterminate orientation relative to L. This
- happens if A is collinear with L or if A crosses the line determined by L.
- </summary>
- <param name="seg">The <c>LineSegment</c> to compare.</param>
- <returns>
- 1 if <c>seg</c> is to the left of this segment,
- -1 if <c>seg</c> is to the right of this segment,
- 0 if <c>seg</c> is collinear to or crosses this segment.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.LineSegment.OrientationIndex(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Determines the orientation index of a <see cref="T:NetTopologySuite.Geometries.Coordinate"/> relative to this segment.
- The orientation index is as defined in <see cref="M:NetTopologySuite.Algorithm.Orientation.Index(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)"/>.
- </summary>
-
- <returns>
- <list type="table">
- <item><term>1</term><description>if <c>p</c> is to the left of this segment</description></item>
- <item><term>-1</term><description>if <c>p</c> is to the right of this segment</description></item>
- <item><term>0</term><description>if <c>p</c> is collinear with this segment</description></item>
- </list>"
- </returns>
-
- </member>
- <member name="M:NetTopologySuite.Geometries.LineSegment.Reverse">
- <summary>
- Reverses the direction of the line segment.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.LineSegment.Normalize">
- <summary>
- Puts the line segment into a normalized form.
- This is useful for using line segments in maps and indexes when
- topological equality rather than exact equality is desired.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.LineSegment.Angle">
- <returns>
- The angle this segment makes with the x-axis (in radians).
- </returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.LineSegment.MidPoint">
- <summary>The midpoint of the segment</summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.LineSegment.ComputeMidPoint(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Computes the midpoint of two coordinates
- </summary>
- <remarks>This method is named <c>midPoint</c> in JTS.</remarks>
- <param name="p0">A coordinate</param>
- <param name="p1">A coordinate</param>
- <returns>The mid point</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.LineSegment.Distance(NetTopologySuite.Geometries.LineSegment)">
- <summary>
- Computes the distance between this line segment and another one.
- </summary>
- <param name="ls"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.LineSegment.Distance(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Computes the distance between this line segment and a point.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.LineSegment.DistancePerpendicular(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Computes the perpendicular distance between the (infinite) line defined
- by this line segment and a point.
- <para/>
- If the segment has zero length this returns the distance between
- the segment and the point.
- </summary>
- <param name="p">The point to compute the distance to</param>
- <returns>The perpendicular distance between the line and point</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.LineSegment.DistancePerpendicularOriented(NetTopologySuite.Geometries.Coordinate)">
- <summary>Computes the oriented perpendicular distance between the (infinite) line
- defined by this line segment and a point.
- The oriented distance is positive if the point on the left of the line,
- and negative if it is on the right.
- If the segment has zero length this returns the distance between
- the segment and the point.
- </summary>
- <param name="p">The point to compute the distance to</param>
- <returns>The oriented perpendicular distance between the line and point</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.LineSegment.PointAlong(System.Double)">
- <summary>
- Computes the <see cref="T:NetTopologySuite.Geometries.Coordinate" /> that lies a given
- fraction along the line defined by this segment.
- </summary>
- <remarks>
- A fraction of <c>0.0</c> returns the start point of the segment;
- A fraction of <c>1.0</c> returns the end point of the segment.
- If the fraction is < 0.0 or > 1.0 the point returned
- will lie before the start or beyond the end of the segment.
- </remarks>
- <param name="segmentLengthFraction"> the fraction of the segment length along the line</param>
- <returns> the point at that distance</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.LineSegment.PointAlongOffset(System.Double,System.Double)">
- <summary>
- Computes the <see cref="T:NetTopologySuite.Geometries.Coordinate" /> that lies a given
- </summary>
- <remarks>
- A fraction along the line defined by this segment and offset from
- the segment by a given distance.
- A fraction of <c>0.0</c> offsets from the start point of the segment;
- A fraction of <c>1.0</c> offsets from the end point of the segment.
- The computed point is offset to the left of the line if the offset distance is
- positive, to the right if negative.
- </remarks>
- <param name="segmentLengthFraction"> the fraction of the segment length along the line</param>
- <param name="offsetDistance"> the distance the point is offset from the segment</param>
- (positive is to the left, negative is to the right)
- <returns> the point at that distance and offset</returns>
- <exception cref="T:System.ApplicationException"> if the segment has zero length</exception>
- </member>
- <member name="M:NetTopologySuite.Geometries.LineSegment.ProjectionFactor(NetTopologySuite.Geometries.Coordinate)">
- <summary>Computes the Projection Factor for the projection of the point p
- onto this LineSegment. The Projection Factor is the constant r
- by which the vector for this segment must be multiplied to
- equal the vector for the projection of <tt>p</tt> on the line
- defined by this segment.
- <para/>
- The projection factor will lie in the range <tt>(-inf, +inf)</tt>,
- or be <c>NaN</c> if the line segment has zero length.
- </summary>
- <param name="p">The point to compute the factor for</param>
- <returns>The projection factor for the point</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.LineSegment.SegmentFraction(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Computes the fraction of distance (in [0.0, 1.0])
- that the projection of a point occurs along this line segment.
- If the point is beyond either ends of the line segment,
- the closest fractional value (0.0 or 1.0) is returned.
- </summary>
- <remarks>
- Essentially, this is the <see cref="M:NetTopologySuite.Geometries.LineSegment.ProjectionFactor(NetTopologySuite.Geometries.Coordinate)" /> clamped to
- the range [0.0, 1.0].
- </remarks>
- <param name="inputPt"> the point</param>
- <returns> the fraction along the line segment the projection of the point occurs</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.LineSegment.Project(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Compute the projection of a point onto the line determined
- by this line segment.
- Note that the projected point may lie outside the line segment.
- If this is the case, the projection factor will lie outside the range [0.0, 1.0].
- </summary>
- <param name="p"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.LineSegment.Project(NetTopologySuite.Geometries.LineSegment)">
- <summary>
- Project a line segment onto this line segment and return the resulting
- line segment. The returned line segment will be a subset of
- the target line line segment. This subset may be null, if
- the segments are oriented in such a way that there is no projection.
- Note that the returned line may have zero length (i.e. the same endpoints).
- This can happen for instance if the lines are perpendicular to one another.
- </summary>
- <param name="seg">The line segment to project.</param>
- <returns>The projected line segment, or <c>null</c> if there is no overlap.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.LineSegment.Offset(System.Double)">
- <summary>
- Computes the <see cref="T:NetTopologySuite.Geometries.LineSegment"/> that is offset from
- the segment by a given distance.
- The computed segment is offset to the left of the line if the offset distance is
- positive, to the right if negative.
- </summary>
- <param name="offsetDistance">The distance the point is offset from the segment
- (positive is to the left, negative is to the right)</param>
- <returns>A line segment offset by the specified distance</returns>
- <exception cref="T:System.ApplicationException">Thrown if the segment has zero length</exception>
- </member>
- <member name="M:NetTopologySuite.Geometries.LineSegment.ClosestPoint(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Computes the closest point on this line segment to another point.
- </summary>
- <param name="p">The point to find the closest point to.</param>
- <returns>
- A Coordinate which is the closest point on the line segment to the point p.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.LineSegment.ClosestPoints(NetTopologySuite.Geometries.LineSegment)">
- <summary>
- Computes the closest points on a line segment.
- </summary>
- <param name="line"></param>
- <returns>
- A pair of Coordinates which are the closest points on the line segments.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.LineSegment.ClosestPoints(NetTopologySuite.Geometries.LineSegment,NetTopologySuite.Algorithm.ElevationModel)">
- <summary>
- Computes the closest points on a line segment.
- </summary>
- <param name="line"></param>
- <returns>
- A pair of Coordinates which are the closest points on the line segments.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.LineSegment.Reflect(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Computes the reflection of a point in the line defined
- by this line segment.
- </summary>
- <param name="p">The point to reflect</param>
- <returns>The reflected point</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.LineSegment.Intersection(NetTopologySuite.Geometries.LineSegment)">
- <summary>
- Computes an intersection point between two segments, if there is one.
- There may be 0, 1 or many intersection points between two segments.
- If there are 0, null is returned. If there is 1 or more, a single one
- is returned (chosen at the discretion of the algorithm). If
- more information is required about the details of the intersection,
- the <see cref="T:NetTopologySuite.Algorithm.RobustLineIntersector"/> class should be used.
- </summary>
- <param name="line">A line segment</param>
- <returns> An intersection point, or <c>null</c> if there is none.</returns>
- <see cref="T:NetTopologySuite.Algorithm.RobustLineIntersector"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.LineSegment.Intersection(NetTopologySuite.Geometries.LineSegment,NetTopologySuite.Algorithm.ElevationModel)">
- <summary>
- Computes an intersection point between two segments, if there is one.
- There may be 0, 1 or many intersection points between two segments.
- If there are 0, null is returned. If there is 1 or more, a single one
- is returned (chosen at the discretion of the algorithm). If
- more information is required about the details of the intersection,
- the <see cref="T:NetTopologySuite.Algorithm.RobustLineIntersector"/> class should be used.
- </summary>
- <param name="line">A line segment</param>
- <param name="em">An elevation model. May be <c>null</c></param>
- <returns> An intersection point, or <c>null</c> if there is none.</returns>
- <see cref="T:NetTopologySuite.Algorithm.RobustLineIntersector"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.LineSegment.LineIntersection(NetTopologySuite.Geometries.LineSegment)">
- <summary>
- Computes the intersection point of the lines defined by two segments, if there is one.
- </summary>
- <remarks>
- There may be 0, 1 or an infinite number of intersection points between two lines.
- If there is a unique intersection point, it is returned.
- Otherwise, <c>null</c> is returned.
- If more information is required about the details of the intersection,
- the <see cref="T:NetTopologySuite.Algorithm.RobustLineIntersector"/> class should be used.
- </remarks>
- <param name="line">A line segment defining a straight line</param>
- <returns>An intersection point, or <c>null</c> if there is none or an infinite number</returns>
- <seealso cref="T:NetTopologySuite.Algorithm.RobustLineIntersector"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.LineSegment.ToGeometry(NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
- Creates a LineString with the same coordinates as this segment
- </summary>
- <param name="geomFactory">the geometry factory to use</param>
- <returns>A LineString with the same geometry as this segment</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.LineSegment.Equals(System.Object)">
- <summary>
- Returns <c>true</c> if <c>o</c> has the same values for its points.
- </summary>
- <param name="o">A <c>LineSegment</c> with which to do the comparison.</param>
- <returns>
- <c>true</c> if <c>o</c> is a <c>LineSegment</c>
- with the same values for the x and y ordinates.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.LineSegment.op_Equality(NetTopologySuite.Geometries.LineSegment,NetTopologySuite.Geometries.LineSegment)">
- <summary>
-
- </summary>
- <param name="obj1"></param>
- <param name="obj2"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.LineSegment.op_Inequality(NetTopologySuite.Geometries.LineSegment,NetTopologySuite.Geometries.LineSegment)">
- <summary>
-
- </summary>
- <param name="obj1"></param>
- <param name="obj2"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.LineSegment.CompareTo(NetTopologySuite.Geometries.LineSegment)">
- <summary>
- Compares this object with the specified object for order.
- Uses the standard lexicographic ordering for the points in the LineSegment.
- </summary>
- <param name="other">
- The <c>LineSegment</c> with which this <c>LineSegment</c>
- is being compared.
- </param>
- <returns>
- A negative integer, zero, or a positive integer as this <c>LineSegment</c>
- is less than, equal to, or greater than the specified <c>LineSegment</c>.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.LineSegment.EqualsTopologically(NetTopologySuite.Geometries.LineSegment)">
- <summary>
- Returns <c>true</c> if <c>other</c> is
- topologically equal to this LineSegment (e.g. irrespective
- of orientation).
- </summary>
- <param name="other">
- A <c>LineSegment</c> with which to do the comparison.
- </param>
- <returns>
- <c>true</c> if <c>other</c> is a <c>LineSegment</c>
- with the same values for the x and y ordinates.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.LineSegment.ToString">
- <summary>
-
- </summary>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.LineSegment.GetHashCode">
- <summary>
- Return HashCode.
- </summary>
- </member>
- <member name="T:NetTopologySuite.Geometries.LineString">
- <summary>
- Models an OGC-style <c>LineString</c>
- </summary>
- <remarks>
- A LineString consists of a sequence of two or more vertices,
- along with all points along the linearly-interpolated curves
- (line segments) between each
- pair of consecutive vertices.
- Consecutive vertices may be equal.
- The line segments in the line may intersect each other (in other words,
- the <c>LineString</c> may "curl back" in itself and self-intersect.
- <c>LineString</c>s with exactly two identical points are invalid.
- <para>A <c>LineString</c> must have either 0 or <see cref="F:NetTopologySuite.Geometries.LineString.MinimumValidSize"/> or more points.
- If these conditions are not met, the constructors throw an <see cref="T:System.ArgumentException"/>.
- </para>
- </remarks>
- </member>
- <member name="F:NetTopologySuite.Geometries.LineString.MinimumValidSize">
- <summary>
- The minimum number of vertices allowed in a valid non-empty linestring.
- Empty linestrings with 0 vertices are also valid.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.LineString.Empty">
- <summary>
- Represents an empty <c>LineString</c>.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.LineString._points">
- <summary>
- The points of this <c>LineString</c>.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.LineString.#ctor(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.Geometries.LineString"/> class.
- </summary>
- <remarks>
- For create this <see cref="T:NetTopologySuite.Geometries.Geometry"/> is used a standard <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>
- with <see cref="T:NetTopologySuite.Geometries.PrecisionModel" /> <c> == </c> <see cref="F:NetTopologySuite.Geometries.PrecisionModels.Floating"/>.
- </remarks>
- <param name="points">The coordinates used for create this <see cref="T:NetTopologySuite.Geometries.LineString" />.</param>
- <exception cref="T:System.ArgumentException">If too few points are provided</exception>
- </member>
- <member name="M:NetTopologySuite.Geometries.LineString.#ctor(NetTopologySuite.Geometries.CoordinateSequence,NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.Geometries.LineString"/> class.
- </summary>
- <param name="points">
- The points of the <c>LineString</c>, or <c>null</c>
- to create the empty point. Consecutive points may not be equal.
- </param>
- <param name="factory"></param>
- <exception cref="T:System.ArgumentException">If too few points are provided</exception>
- </member>
- <member name="P:NetTopologySuite.Geometries.LineString.SortIndex">
- <summary>
- Gets a value to sort the geometry
- </summary>
- <remarks>
- NOTE:<br/>
- For JTS v1.17 this property's getter has been renamed to <c>getTypeCode()</c>.
- In order not to break binary compatibility we did not follow.
- </remarks>
- </member>
- <member name="P:NetTopologySuite.Geometries.LineString.Coordinates">
- <summary>
- Returns an array containing the values of all the vertices for
- this geometry.
- </summary>
- <remarks>
- If the geometry is a composite, the array will contain all the vertices
- for the components, in the order in which the components occur in the geometry.
- <para>
- In general, the array cannot be assumed to be the actual internal
- storage for the vertices. Thus modifying the array
- may not modify the geometry itself.
- Use the <see cref="M:NetTopologySuite.Geometries.CoordinateSequence.SetOrdinate(System.Int32,System.Int32,System.Double)"/> method
- (possibly on the components) to modify the underlying data.
- If the coordinates are modified,
- <see cref="M:NetTopologySuite.Geometries.Geometry.GeometryChanged"/> must be called afterwards.
- </para>
- </remarks>
- <returns>The vertices of this <c>Geometry</c>.</returns>
- <seealso cref="M:NetTopologySuite.Geometries.Geometry.GeometryChanged"/>
- <seealso cref="M:NetTopologySuite.Geometries.CoordinateSequence.SetOrdinate(System.Int32,System.Int32,System.Double)"/>
- <seealso cref="M:NetTopologySuite.Geometries.CoordinateSequence.SetOrdinate(System.Int32,NetTopologySuite.Geometries.Ordinate,System.Double)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.LineString.GetOrdinates(NetTopologySuite.Geometries.Ordinate)">
- <summary>
- Gets an array of <see cref="T:System.Double"/> ordinate values
- </summary>
- <param name="ordinate">The ordinate index</param>
- <returns>An array of ordinate values</returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.LineString.CoordinateSequence">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.LineString.GetCoordinateN(System.Int32)">
- <summary>
-
- </summary>
- <param name="n"></param>
- <returns></returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.LineString.Coordinate">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.LineString.Dimension">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.LineString.BoundaryDimension">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.LineString.IsEmpty">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.LineString.NumPoints">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.LineString.GetPointN(System.Int32)">
- <summary>
- Gets
- </summary>
- <param name="n"></param>
- <returns></returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.LineString.StartPoint">
- <summary>
- Gets a value indicating the start point of this <c>LINESTRING</c>
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.LineString.EndPoint">
- <summary>
- Gets a value indicating the end point of this <c>LINESTRING</c>
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.LineString.IsClosed">
- <summary>
- Gets a value indicating if this <c>LINESTRING</c> is closed.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.LineString.IsRing">
- <summary>
- Gets a value indicating if this <c>LINESTRING</c> forms a ring.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.LineString.GeometryType">
- <summary>
- Returns the name of this object's interface.
- </summary>
- <returns>"LineString"</returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.LineString.OgcGeometryType">
- <summary>
- Gets the OGC geometry type
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.LineString.Length">
- <summary>
- Returns the length of this <c>LineString</c>
- </summary>
- <returns>The length of the polygon.</returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.LineString.Boundary">
- <summary>
- Returns the boundary, or an empty geometry of appropriate dimension
- if this <c>Geometry</c> is empty.
- For a discussion of this function, see the OpenGIS Simple
- Features Specification. As stated in SFS Section 2.1.13.1, "the boundary
- of a Geometry is a set of Geometries of the next lower dimension."
- </summary>
- <returns>The closure of the combinatorial boundary of this <c>Geometry</c>.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.LineString.Reverse">
- <summary>
- Creates a <see cref="T:NetTopologySuite.Geometries.LineString" /> whose coordinates are in the reverse order of this objects.
- </summary>
- <returns>A <see cref="T:NetTopologySuite.Geometries.LineString" /> with coordinates in the reverse order.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.LineString.ReverseInternal">
- <summary>
- The actual implementation of the <see cref="M:NetTopologySuite.Geometries.Geometry.Reverse"/> function for <c>LINESTRING</c>s.
- </summary>
- <returns>A reversed geometry</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.LineString.IsCoordinate(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Returns true if the given point is a vertex of this <c>LineString</c>.
- </summary>
- <param name="pt">The <c>Coordinate</c> to check.</param>
- <returns><c>true</c> if <c>pt</c> is one of this <c>LineString</c>'s vertices.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.LineString.ComputeEnvelopeInternal">
- <summary>
-
- </summary>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.LineString.EqualsExact(NetTopologySuite.Geometries.Geometry,System.Double)">
- <summary>
-
- </summary>
- <param name="other"></param>
- <param name="tolerance"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.LineString.Apply(NetTopologySuite.Geometries.ICoordinateFilter)">
- <summary>
-
- </summary>
- <param name="filter"></param>
- </member>
- <member name="M:NetTopologySuite.Geometries.LineString.Apply(NetTopologySuite.Geometries.ICoordinateSequenceFilter)">
- <summary>
- Performs an operation on the coordinates in this <c>Geometry</c>'s <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>s.
- </summary>
- <remarks>
- If the filter reports that a coordinate value has been changed,
- <see cref="M:NetTopologySuite.Geometries.Geometry.GeometryChanged"/> will be called automatically.
- </remarks>
- <param name="filter">The filter to apply</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.LineString.Apply(NetTopologySuite.Geometries.IEntireCoordinateSequenceFilter)">
- <inheritdoc />
- </member>
- <member name="M:NetTopologySuite.Geometries.LineString.Apply(NetTopologySuite.Geometries.IGeometryFilter)">
- <summary>
- Performs an operation with or on this <c>Geometry</c> and its
- subelement <c>Geometry</c>s (if any).
- Only GeometryCollections and subclasses
- have subelement Geometry's.
- </summary>
- <param name="filter">
- The filter to apply to this <c>Geometry</c> (and
- its children, if it is a <c>GeometryCollection</c>).
- </param>
- </member>
- <member name="M:NetTopologySuite.Geometries.LineString.Apply(NetTopologySuite.Geometries.IGeometryComponentFilter)">
- <summary>
- Performs an operation with or on this Geometry and its
- component Geometry's. Only GeometryCollections and
- Polygons have component Geometry's; for Polygons they are the LinearRings
- of the shell and holes.
- </summary>
- <param name="filter">The filter to apply to this <c>Geometry</c>.</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.LineString.CopyInternal">
- <inheritdoc cref="M:NetTopologySuite.Geometries.Geometry.CopyInternal"/>>
- </member>
- <member name="M:NetTopologySuite.Geometries.LineString.Normalize">
- <summary>
- Normalizes a <c>LineString</c>. A normalized <c>LineString</c>
- has the first point which is not equal to it's reflected point
- less than the reflected point.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.LineString.IsEquivalentClass(NetTopologySuite.Geometries.Geometry)">
- <inheritdoc cref="M:NetTopologySuite.Geometries.Geometry.IsEquivalentClass(NetTopologySuite.Geometries.Geometry)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.LineString.CompareToSameClass(System.Object)">
- <inheritdoc cref="M:NetTopologySuite.Geometries.Geometry.CompareToSameClass(System.Object)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.LineString.CompareToSameClass(System.Object,System.Collections.Generic.IComparer{NetTopologySuite.Geometries.CoordinateSequence})">
- <inheritdoc cref="M:NetTopologySuite.Geometries.Geometry.CompareToSameClass(System.Object,System.Collections.Generic.IComparer{NetTopologySuite.Geometries.CoordinateSequence})"/>
- </member>
- <member name="P:NetTopologySuite.Geometries.LineString.Item(System.Int32)">
- <summary>
-
- </summary>
- <param name="n"></param>
- <returns></returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.LineString.Count">
- <summary>
-
- </summary>
- <value></value>
- </member>
- <member name="T:NetTopologySuite.Geometries.Location">
- <summary>
- The location of a <see cref="T:NetTopologySuite.Geometries.Coordinate"/> relative to a <see cref="T:NetTopologySuite.Geometries.Geometry"/>
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Location.Interior">
- <summary>
- DE-9IM row index of the interior of the first point and column index of
- the interior of the second point. Location value for the interior of a
- point.
- </summary>
- <remarks>int value = 0;</remarks>
- </member>
- <member name="F:NetTopologySuite.Geometries.Location.Boundary">
- <summary>
- DE-9IM row index of the boundary of the first point and column index of
- the boundary of the second point. Location value for the boundary of a
- point.
- </summary>
- <remarks>int value = 1;</remarks>
- </member>
- <member name="F:NetTopologySuite.Geometries.Location.Exterior">
- <summary>
- DE-9IM row index of the exterior of the first point and column index of
- the exterior of the second point. Location value for the exterior of a
- point.
- </summary>
- <remarks>int value = 2;</remarks>
- </member>
- <member name="F:NetTopologySuite.Geometries.Location.Null">
- <summary>
- Used for uninitialized location values.
- </summary>
- <remarks>int value = 1;</remarks>
- </member>
- <member name="T:NetTopologySuite.Geometries.LocationUtility">
- <summary>
- Utility class for <see cref="T:NetTopologySuite.Geometries.Location"/> enumeration
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.LocationUtility.ToLocationSymbol(NetTopologySuite.Geometries.Location)">
- <summary>
- Converts the location value to a location symbol, for example, <c>EXTERIOR => 'e'</c>.
- </summary>
- <param name="locationValue"></param>
- <returns>Either 'e', 'b', 'i' or '-'.</returns>
- </member>
- <member name="T:NetTopologySuite.Geometries.MultiLineString">
- <summary>
- Models a collection of <see cref="T:NetTopologySuite.Geometries.LineString"/>s.
- <para/>
- Any collection of <c>LineString</c>s is a valid <c>MultiLineString</c>.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.MultiLineString.Empty">
- <summary>
- Represents an empty <c>MultiLineString</c>.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.MultiLineString.#ctor(NetTopologySuite.Geometries.LineString[],NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
- Constructs a <c>MultiLineString</c>.
- </summary>
- <param name="lineStrings">
- The <c>LineString</c>s for this <c>MultiLineString</c>,
- or <c>null</c> or an empty array to create the empty
- point. Elements may be empty <c>LineString</c>s,
- but not <c>null</c>s.
- </param>
- <param name="factory"></param>
- </member>
- <member name="M:NetTopologySuite.Geometries.MultiLineString.#ctor(NetTopologySuite.Geometries.LineString[])">
- <summary>
- Constructs a <c>MultiLineString</c>.
- </summary>
- <param name="lineStrings">
- The <c>LineString</c>s for this <c>MultiLineString</c>,
- or <c>null</c> or an empty array to create the empty
- point. Elements may be empty <c>LineString</c>s,
- but not <c>null</c>s.
- </param>
- <remarks>
- For create this <see cref="T:NetTopologySuite.Geometries.Geometry"/> is used a standard <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>
- with <see cref="T:NetTopologySuite.Geometries.PrecisionModel" /> <c> == </c> <see cref="F:NetTopologySuite.Geometries.PrecisionModels.Floating"/>.
- </remarks>
- </member>
- <member name="P:NetTopologySuite.Geometries.MultiLineString.SortIndex">
- <summary>
- Gets a value to sort the geometry
- </summary>
- <remarks>
- NOTE:<br/>
- For JTS v1.17 this property's getter has been renamed to <c>getTypeCode()</c>.
- In order not to break binary compatibility we did not follow.
- </remarks>
- </member>
- <member name="P:NetTopologySuite.Geometries.MultiLineString.Dimension">
- <summary>
-
- </summary>
- <value></value>
- </member>
- <member name="M:NetTopologySuite.Geometries.MultiLineString.HasDimension(NetTopologySuite.Geometries.Dimension)">
- <inheritdoc cref="M:NetTopologySuite.Geometries.Geometry.HasDimension(NetTopologySuite.Geometries.Dimension)"/>
- <returns><c>true</c> if <paramref name="dim"/> == <c><see cref="F:NetTopologySuite.Geometries.Dimension.Curve"/></c></returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.MultiLineString.BoundaryDimension">
- <summary>
-
- </summary>
- <value></value>
- </member>
- <member name="P:NetTopologySuite.Geometries.MultiLineString.GeometryType">
- <summary>
- Returns the name of this object's interface.
- </summary>
- <returns>"MultiLineString"</returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.MultiLineString.OgcGeometryType">
- <summary>
- Gets the OGC geometry type
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.MultiLineString.IsClosed">
- <summary>
- Gets a value indicating whether this instance is closed.
- </summary>
- <value><c>true</c> if this instance is closed; otherwise, <c>false</c>.</value>
- </member>
- <member name="M:NetTopologySuite.Geometries.MultiLineString.Reverse">
- <summary>
- Creates a <see cref="T:NetTopologySuite.Geometries.MultiLineString" /> in the reverse order to this object.
- Both the order of the component LineStrings
- and the order of their coordinate sequences are reversed.
- </summary>
- <returns>a <see cref="T:NetTopologySuite.Geometries.MultiLineString" /> in the reverse order.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.MultiLineString.ReverseInternal">
- <inheritdoc cref="M:NetTopologySuite.Geometries.MultiLineString.ReverseInternal"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.MultiLineString.CopyInternal">
- <inheritdoc cref="M:NetTopologySuite.Geometries.Geometry.CopyInternal"/>>
- </member>
- <member name="M:NetTopologySuite.Geometries.MultiLineString.EqualsExact(NetTopologySuite.Geometries.Geometry,System.Double)">
- <summary>
-
- </summary>
- <param name="other"></param>
- <param name="tolerance"></param>
- <returns></returns>
- </member>
- <member name="T:NetTopologySuite.Geometries.MultiPoint">
- <summary>
- Models a collection of <c>Point</c>s.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.MultiPoint.Empty">
- <summary>
- Represents an empty <c>MultiPoint</c>.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.MultiPoint.#ctor(NetTopologySuite.Geometries.Point[],NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
- Constructs a <c>MultiPoint</c>.
- </summary>
- <param name="points">
- The <c>Point</c>s for this <c>MultiPoint</c>
- , or <c>null</c> or an empty array to create the empty point.
- Elements may be empty <c>Point</c>s, but not <c>null</c>s.
- </param>
- <param name="factory"></param>
- </member>
- <member name="M:NetTopologySuite.Geometries.MultiPoint.#ctor(NetTopologySuite.Geometries.Point[])">
- <summary>
- Constructs a <c>MultiPoint</c>.
- </summary>
- <param name="points">
- The <c>Point</c>s for this <c>MultiPoint</c>
- , or <c>null</c> or an empty array to create the empty point.
- Elements may be empty <c>Point</c>s, but not <c>null</c>s.
- </param>
- <remarks>
- For create this <see cref="T:NetTopologySuite.Geometries.Geometry"/> is used a standard <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>
- with <see cref="T:NetTopologySuite.Geometries.PrecisionModel" /> <c> == </c> <see cref="F:NetTopologySuite.Geometries.PrecisionModels.Floating"/>.
- </remarks>
- </member>
- <member name="M:NetTopologySuite.Geometries.MultiPoint.CopyInternal">
- <inheritdoc cref="M:NetTopologySuite.Geometries.Geometry.CopyInternal"/>>
- </member>
- <member name="P:NetTopologySuite.Geometries.MultiPoint.SortIndex">
- <summary>
- Gets a value to sort the geometry
- </summary>
- <remarks>
- NOTE:<br/>
- For JTS v1.17 this property's getter has been renamed to <c>getTypeCode()</c>.
- In order not to break binary compatibility we did not follow.
- </remarks>
- </member>
- <member name="P:NetTopologySuite.Geometries.MultiPoint.Dimension">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.MultiPoint.HasDimension(NetTopologySuite.Geometries.Dimension)">
- <inheritdoc cref="M:NetTopologySuite.Geometries.Geometry.HasDimension(NetTopologySuite.Geometries.Dimension)"/>
- <returns><c>true</c> if <paramref name="dim"/> == <c><see cref="F:NetTopologySuite.Geometries.Dimension.Point"/></c></returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.MultiPoint.BoundaryDimension">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.MultiPoint.GeometryType">
- <summary>
- Returns the name of this object's interface.
- </summary>
- <returns>"MultiPoint"</returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.MultiPoint.Boundary">
- <summary>
- Gets the boundary of this geometry.
- Zero-dimensional geometries have no boundary by definition,
- so an empty GeometryCollection is returned.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.MultiPoint.ReverseInternal">
- <inheritdoc cref="M:NetTopologySuite.Geometries.MultiPoint.ReverseInternal"/>
- </member>
- <member name="P:NetTopologySuite.Geometries.MultiPoint.IsValid">
- <inheritdoc cref="P:NetTopologySuite.Geometries.Geometry.IsValid"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.MultiPoint.EqualsExact(NetTopologySuite.Geometries.Geometry,System.Double)">
- <summary>
-
- </summary>
- <param name="other"></param>
- <param name="tolerance"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.MultiPoint.GetCoordinate(System.Int32)">
- <summary>
- Returns the <c>Coordinate</c> at the given position.
- </summary>
- <param name="n">The index of the <c>Coordinate</c> to retrieve, beginning at 0.
- </param>
- <returns>The <c>n</c>th <c>Coordinate</c>.</returns>
- </member>
- <member name="T:NetTopologySuite.Geometries.MultiPolygon">
- <summary>
- Basic implementation of <c>MultiPolygon</c>.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.MultiPolygon.Empty">
- <summary>
- Represents an empty <c>MultiPolygon</c>.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.MultiPolygon.#ctor(NetTopologySuite.Geometries.Polygon[])">
- <summary>
- Constructs a <c>MultiPolygon</c>.
- </summary>
- <param name="polygons">
- The <c>Polygon</c>s for this <c>MultiPolygon</c>
- , or <c>null</c> or an empty array to create the empty point.
- Elements may be empty <c>Polygon</c>s, but not <c>null</c>
- s. The polygons must conform to the assertions specified in the
- <see href="http://www.opengis.org/techno/specs.htm"/> OpenGIS Simple Features
- Specification for SQL.
- </param>
- <remarks>
- For create this <see cref="T:NetTopologySuite.Geometries.Geometry"/> is used a standard <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>
- with <see cref="T:NetTopologySuite.Geometries.PrecisionModel" /> <c> == </c> <see cref="F:NetTopologySuite.Geometries.PrecisionModels.Floating"/>.
- </remarks>
- </member>
- <member name="M:NetTopologySuite.Geometries.MultiPolygon.#ctor(NetTopologySuite.Geometries.Polygon[],NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
- Constructs a <c>MultiPolygon</c>.
- </summary>
- <param name="polygons">
- The <c>Polygon</c>s for this <c>MultiPolygon</c>
- , or <c>null</c> or an empty array to create the empty point.
- Elements may be empty <c>Polygon</c>s, but not <c>null</c>
- s. The polygons must conform to the assertions specified in the
- <see href="http://www.opengis.org/techno/specs.htm"/> OpenGIS Simple Features
- Specification for SQL.
- </param>
- <param name="factory"></param>
- </member>
- <member name="M:NetTopologySuite.Geometries.MultiPolygon.CopyInternal">
- <inheritdoc cref="M:NetTopologySuite.Geometries.Geometry.CopyInternal"/>>
- </member>
- <member name="P:NetTopologySuite.Geometries.MultiPolygon.SortIndex">
- <summary>
- Gets a value to sort the geometry
- </summary>
- <remarks>
- NOTE:<br/>
- For JTS v1.17 this property's getter has been renamed to <c>getTypeCode()</c>.
- In order not to break binary compatibility we did not follow.
- </remarks>
- </member>
- <member name="P:NetTopologySuite.Geometries.MultiPolygon.Dimension">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.MultiPolygon.HasDimension(NetTopologySuite.Geometries.Dimension)">
- <inheritdoc cref="M:NetTopologySuite.Geometries.Geometry.HasDimension(NetTopologySuite.Geometries.Dimension)"/>
- <returns><c>true</c> if <paramref name="dim"/> == <c><see cref="F:NetTopologySuite.Geometries.Dimension.Surface"/></c></returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.MultiPolygon.BoundaryDimension">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.MultiPolygon.GeometryType">
- <summary>
- Returns the name of this object's interface.
- </summary>
- <returns>"MultiPolygon"</returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.MultiPolygon.OgcGeometryType">
- <inheritdoc cref="P:NetTopologySuite.Geometries.Geometry.OgcGeometryType"/>>
- </member>
- <member name="P:NetTopologySuite.Geometries.MultiPolygon.Boundary">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.MultiPolygon.EqualsExact(NetTopologySuite.Geometries.Geometry,System.Double)">
- <summary>
-
- </summary>
- <param name="other"></param>
- <param name="tolerance"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.MultiPolygon.Reverse">
- <summary>
- Creates a <see cref="T:NetTopologySuite.Geometries.MultiPolygon"/> with every component reversed.
- </summary>
- <remarks>The order of the components in the collection are not reversed.</remarks>
- <returns>An <see cref="T:NetTopologySuite.Geometries.MultiPolygon"/> in the reverse order</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.MultiPolygon.ReverseInternal">
- <inheritdoc cref="M:NetTopologySuite.Geometries.MultiPolygon.ReverseInternal"/>
- </member>
- <member name="T:NetTopologySuite.Geometries.OctagonalEnvelope">
- <summary>
- A bounding container for a <see cref="T:NetTopologySuite.Geometries.Geometry"/> which is in the shape of a general octagon.
- </summary>
- <remarks>
- The OctagonalEnvelope of a geometric object
- is a geometry which is tight bound along the (up to) four extremal rectilinear parallels
- and along the (up to) four extremal diagonal parallels.
- Depending on the shape of the contained
- geometry, the octagon may be degenerate to any extreme
- (e.g. it may be a rectangle, a line, or a point).
- </remarks>
- </member>
- <member name="M:NetTopologySuite.Geometries.OctagonalEnvelope.GetOctagonalEnvelope(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Gets the octagonal envelope of a geometry
- </summary>
- <param name="geom">The geometry</param>
- <returns>The octagonal envelope of the geometry</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.OctagonalEnvelope.#ctor">
- <summary>
- Creates a new null bounding octagon
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.OctagonalEnvelope.#ctor(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Creates a new null bounding octagon bounding a <see cref="T:NetTopologySuite.Geometries.Coordinate" />
- </summary>
- <param name="p">The coordinate to bound</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.OctagonalEnvelope.#ctor(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Creates a new null bounding octagon bounding a pair of <see cref="T:NetTopologySuite.Geometries.Coordinate" />s
- </summary>
- <param name="p0">A coordinate to bound</param>
- <param name="p1">A coordinate to bound</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.OctagonalEnvelope.#ctor(NetTopologySuite.Geometries.Envelope)">
- <summary>
- Creates a new null bounding octagon bounding an <see cref="T:NetTopologySuite.Geometries.Envelope" />
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.OctagonalEnvelope.#ctor(NetTopologySuite.Geometries.OctagonalEnvelope)">
- <summary>
- Creates a new null bounding octagon bounding an <see cref="T:NetTopologySuite.Geometries.OctagonalEnvelope" />
- (the copy constructor).
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.OctagonalEnvelope.#ctor(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Creates a new null bounding octagon bounding a <see cref="T:NetTopologySuite.Geometries.Geometry" />
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.OctagonalEnvelope.MinX">
- <summary>
- Gets a value indicating the minimal x-ordinate value
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.OctagonalEnvelope.MaxX">
- <summary>
- Gets a value indicating the maximal x-ordinate value
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.OctagonalEnvelope.MinY">
- <summary>
- Gets a value indicating the minimal y-ordinate value
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.OctagonalEnvelope.MaxY">
- <summary>
- Gets a value indicating the maximal y-ordinate value
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.OctagonalEnvelope.MinA">
- <summary>
- Gets a value indicating the minimal <c>a</c> value
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.OctagonalEnvelope.MaxA">
- <summary>
- Gets a value indicating the maximal <c>a</c> value
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.OctagonalEnvelope.MinB">
- <summary>
- Gets a value indicating the minimal <c>b</c> value
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.OctagonalEnvelope.MaxB">
- <summary>
- Gets a value indicating the maximal <c>b</c> value
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.OctagonalEnvelope.IsNull">
- <summary>
- Gets a value indicating that this object is null
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.OctagonalEnvelope.ExpandToInclude(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Method to expand this <see cref="T:NetTopologySuite.Geometries.OctagonalEnvelope"/> to include the provided <paramref name="g"/> geometry.
- </summary>
- <param name="g">The geometry</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.OctagonalEnvelope.ExpandToInclude(NetTopologySuite.Geometries.CoordinateSequence)">
- <summary>
- Method to expand this <see cref="T:NetTopologySuite.Geometries.OctagonalEnvelope"/> to include the provided <paramref name="seq"/> coordinate sequence.
- </summary>
- <param name="seq">The coordinate sequence</param>
- <returns>A reference to <c>this</c> octagonal envelope, expanded by <paramref name="seq"/></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.OctagonalEnvelope.ExpandToInclude(NetTopologySuite.Geometries.OctagonalEnvelope)">
- <summary>
- Method to expand this <see cref="T:NetTopologySuite.Geometries.OctagonalEnvelope"/> to include the provided <paramref name="oct"/> OctogonalEnvelope.
- </summary>
- <param name="oct">The OctogonalEnvelope</param>
- <returns>A reference to <c>this</c> octagonal envelope, expanded by <paramref name="oct"/></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.OctagonalEnvelope.ExpandToInclude(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Function to expand this <see cref="T:NetTopologySuite.Geometries.OctagonalEnvelope"/> to include the provided <paramref name="p"/> coordinate.
- </summary>
- <param name="p">The coordinate</param>
- <returns>A reference to <c>this</c> octagonal envelope, expanded by <paramref name="p"/></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.OctagonalEnvelope.ExpandToInclude(NetTopologySuite.Geometries.Envelope)">
- <summary>
- Function to expand this <see cref="T:NetTopologySuite.Geometries.OctagonalEnvelope"/> to include the provided <paramref name="env"/> envelope.
- </summary>
- <param name="env">The envelope</param>
- <returns>A reference to <c>this</c> octagonal envelope, expanded by <paramref name="env"/></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.OctagonalEnvelope.ExpandToInclude(System.Double,System.Double)">
- <summary>
- Function to expand this <see cref="T:NetTopologySuite.Geometries.OctagonalEnvelope"/> to include the provided <paramref name="x"/>- and <paramref name="y"/> ordinates.
- </summary>
- <param name="x">A x-ordinate value</param>
- <param name="y">A y-ordinate value</param>
- <returns>A reference to <c>this</c> octagonal envelope, expanded by <paramref name="x"/> and <paramref name="y"/></returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.OctagonalEnvelope.IsValid">
- <summary>
- Gets a value indicating if the extremal values for this octagon are valid.
- </summary>
- <returns><c>true</c> if this object has valid values</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.OctagonalEnvelope.Intersects(NetTopologySuite.Geometries.OctagonalEnvelope)">
- <summary>
- Function to test if <c>this</c> octagonal envelope intersects <paramref name="other"/> octagonal envelope .
- </summary>
- <param name="other">An octagonal envelope </param>
- <returns><c>true</c> if <c>this</c> octagonal envelope intersects <paramref name="other"/> octagonal envelope .</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.OctagonalEnvelope.Intersects(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Function to test if <c>this</c> octagonal envelope contains <paramref name="p"/> coordinate.
- </summary>
- <param name="p">A coordinate</param>
- <returns><c>true</c> if <c>this</c> octagonal envelope contains <paramref name="p"/> coordinate.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.OctagonalEnvelope.Contains(NetTopologySuite.Geometries.OctagonalEnvelope)">
- <summary>
- Function to test if <c>this</c> octagonal envelope contains <paramref name="other"/> octagonal envelope.
- </summary>
- <param name="other">An octagonal envelope</param>
- <returns><c>true</c> if <c>this</c> octagonal envelope contains <paramref name="other"/> octagonal envelope.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.OctagonalEnvelope.ToGeometry(NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
- Function to convert <c>this</c> octagonal envelope into a geometry
- </summary>
- <param name="geomFactory">The factory to create the geometry</param>
- <returns>A geometry</returns>
- </member>
- <member name="T:NetTopologySuite.Geometries.OgcCompliantGeometryFactory">
- <summary>
- OGC compliant geometry factory
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.OgcCompliantGeometryFactory.#ctor">
- <summary>
- Creates an instance of this class using the default
- values for <see cref="P:NetTopologySuite.Geometries.GeometryFactory.SRID"/>,
- <see cref="P:NetTopologySuite.Geometries.GeometryFactory.PrecisionModel"/> and
- <see cref="P:NetTopologySuite.Geometries.GeometryFactory.CoordinateSequenceFactory"/>.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.OgcCompliantGeometryFactory.#ctor(NetTopologySuite.Geometries.CoordinateSequenceFactory)">
- <summary>
- Creates an instance of this class using the default
- values for <see cref="P:NetTopologySuite.Geometries.GeometryFactory.SRID"/>,
- <see cref="P:NetTopologySuite.Geometries.GeometryFactory.PrecisionModel"/>,
- but the specified <paramref name="factory"/>.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.OgcCompliantGeometryFactory.#ctor(NetTopologySuite.Geometries.PrecisionModel)">
- Creates an instance of this class using the default
- values for <see cref="P:NetTopologySuite.Geometries.GeometryFactory.SRID"/>,
- <see cref="P:NetTopologySuite.Geometries.GeometryFactory.CoordinateSequenceFactory"/> but the
- specified <paramref name="pm"/>.
- </member>
- <member name="M:NetTopologySuite.Geometries.OgcCompliantGeometryFactory.ToGeometry(NetTopologySuite.Geometries.Envelope)">
- <inheritdoc/>
- </member>
- <member name="M:NetTopologySuite.Geometries.OgcCompliantGeometryFactory.CreatePolygon(NetTopologySuite.Geometries.Coordinate[])">
- <inheritdoc/>
- <remarks>
- The <see cref="P:NetTopologySuite.Geometries.Polygon.ExteriorRing"/> is guaranteed to be orientated counter-clockwise.
- </remarks>
- </member>
- <member name="M:NetTopologySuite.Geometries.OgcCompliantGeometryFactory.CreatePolygon(NetTopologySuite.Geometries.CoordinateSequence)">
- <inheritdoc/>
- <remarks>
- The <see cref="P:NetTopologySuite.Geometries.Polygon.ExteriorRing"/> is guaranteed to be orientated counter-clockwise.
- </remarks>
- </member>
- <member name="M:NetTopologySuite.Geometries.OgcCompliantGeometryFactory.CreatePolygon(NetTopologySuite.Geometries.LinearRing)">
- <inheritdoc/>
- <remarks>
- The <see cref="P:NetTopologySuite.Geometries.Polygon.ExteriorRing"/> is guaranteed to be orientated counter-clockwise.
- </remarks>
- </member>
- <member name="M:NetTopologySuite.Geometries.OgcCompliantGeometryFactory.CreatePolygon(NetTopologySuite.Geometries.LinearRing,NetTopologySuite.Geometries.LinearRing[])">
- <inheritdoc/>
- <remarks>
- The <see cref="P:NetTopologySuite.Geometries.Polygon.ExteriorRing"/> is guaranteed to be orientated counter-clockwise.
- <br/>The <see cref="P:NetTopologySuite.Geometries.Polygon.InteriorRings"/> are guaranteed to be orientated clockwise.
- </remarks>
- </member>
- <member name="T:NetTopologySuite.Geometries.OgcGeometryType">
- <summary>
- Enumeration of OGC Geometry Types
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.OgcGeometryType.Point">
- <summary>
- Point.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.OgcGeometryType.LineString">
- <summary>
- LineString.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.OgcGeometryType.Polygon">
- <summary>
- Polygon.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.OgcGeometryType.MultiPoint">
- <summary>
- MultiPoint.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.OgcGeometryType.MultiLineString">
- <summary>
- MultiLineString.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.OgcGeometryType.MultiPolygon">
- <summary>
- MultiPolygon.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.OgcGeometryType.GeometryCollection">
- <summary>
- GeometryCollection.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.OgcGeometryType.CircularString">
- <summary>
- CircularString
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.OgcGeometryType.CompoundCurve">
- <summary>
- CompoundCurve
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.OgcGeometryType.CurvePolygon">
- <summary>
- CurvePolygon
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.OgcGeometryType.MultiCurve">
- <summary>
- MultiCurve
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.OgcGeometryType.MultiSurface">
- <summary>
- MultiSurface
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.OgcGeometryType.Curve">
- <summary>
- Curve
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.OgcGeometryType.Surface">
- <summary>
- Surface
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.OgcGeometryType.PolyhedralSurface">
- <summary>
- PolyhedralSurface
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.OgcGeometryType.TIN">
- <summary>
- TIN
- </summary>
- </member>
- <member name="T:NetTopologySuite.Geometries.Ordinate">
- <summary>
- Identifies the different well-supported components of coordinate values.
- <para>
- All supported coordinates define values for at least the X and the Y components.
- </para>
- <para>
- The first 16 spatial and 16 measure dimensions may also be accessed this way.
- </para>
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinate.Spatial1">
- <summary>
- The 1st spatial dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinate.X">
- <summary>
- The "X" ordinate.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinate.Spatial2">
- <summary>
- The 2nd spatial dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinate.Y">
- <summary>
- The "Y" ordinate.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinate.Spatial3">
- <summary>
- The 3rd spatial dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinate.Z">
- <summary>
- The "Z" ordinate.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinate.Spatial4">
- <summary>
- The 4th spatial dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinate.Spatial5">
- <summary>
- The 5th spatial dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinate.Spatial6">
- <summary>
- The 6th spatial dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinate.Spatial7">
- <summary>
- The 7th spatial dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinate.Spatial8">
- <summary>
- The 8th spatial dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinate.Spatial9">
- <summary>
- The 9th spatial dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinate.Spatial10">
- <summary>
- The 10th spatial dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinate.Spatial11">
- <summary>
- The 11th spatial dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinate.Spatial12">
- <summary>
- The 12th spatial dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinate.Spatial13">
- <summary>
- The 13th spatial dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinate.Spatial14">
- <summary>
- The 14th spatial dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinate.Spatial15">
- <summary>
- The 15th spatial dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinate.Spatial16">
- <summary>
- The 16th spatial dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinate.Measure1">
- <summary>
- The 1st measure dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinate.M">
- <summary>
- The "M" ordinate.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinate.Measure2">
- <summary>
- The 2nd measure dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinate.Measure3">
- <summary>
- The 3rd measure dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinate.Measure4">
- <summary>
- The 4th measure dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinate.Measure5">
- <summary>
- The 5th measure dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinate.Measure6">
- <summary>
- The 6th measure dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinate.Measure7">
- <summary>
- The 7th measure dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinate.Measure8">
- <summary>
- The 8th measure dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinate.Measure9">
- <summary>
- The 9th measure dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinate.Measure10">
- <summary>
- The 10th measure dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinate.Measure11">
- <summary>
- The 11th measure dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinate.Measure12">
- <summary>
- The 12th measure dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinate.Measure13">
- <summary>
- The 13th measure dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinate.Measure14">
- <summary>
- The 14th measure dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinate.Measure15">
- <summary>
- The 15th measure dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinate.Measure16">
- <summary>
- The 16th measure dimension.
- </summary>
- </member>
- <member name="T:NetTopologySuite.Geometries.Ordinates">
- <summary>
- Flags for Ordinate values
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinates.None">
- <summary>
- No ordinates
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinates.X">
- <summary>
- Flag for the x-ordinate
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinates.Y">
- <summary>
- Flag for the y-ordinate
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinates.Z">
- <summary>
- Flag for the z-ordinate
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinates.M">
- <summary>
- Flag for the m-ordinate
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinates.XY">
- <summary>
- Flag for both x- and y-ordinate
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinates.XYZ">
- <summary>
- Flag for x-, y- and z-ordinate
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinates.XYM">
- <summary>
- Flag for x-, y- and m-ordinate
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinates.XYZM">
- <summary>
- Flag for x-, y-, z- and m-ordinate
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinates.Spatial1">
- <summary>
- Flag for the 1st spatial dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinates.Spatial2">
- <summary>
- Flag for the 2nd spatial dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinates.Spatial3">
- <summary>
- Flag for the 3rd spatial dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinates.Spatial4">
- <summary>
- Flag for the 4th spatial dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinates.Spatial5">
- <summary>
- Flag for the 5th spatial dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinates.Spatial6">
- <summary>
- Flag for the 6th spatial dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinates.Spatial7">
- <summary>
- Flag for the 7th spatial dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinates.Spatial8">
- <summary>
- Flag for the 8th spatial dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinates.Spatial9">
- <summary>
- Flag for the 9th spatial dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinates.Spatial10">
- <summary>
- Flag for the 10th spatial dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinates.Spatial11">
- <summary>
- Flag for the 11th spatial dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinates.Spatial12">
- <summary>
- Flag for the 12th spatial dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinates.Spatial13">
- <summary>
- Flag for the 13th spatial dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinates.Spatial14">
- <summary>
- Flag for the 14th spatial dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinates.Spatial15">
- <summary>
- Flag for the 15th spatial dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinates.Spatial16">
- <summary>
- Flag for the 16th spatial dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinates.AllSpatialOrdinates">
- <summary>
- Flags for all spatial ordinates.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinates.Measure1">
- <summary>
- Flag for the 1st measure dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinates.Measure2">
- <summary>
- Flag for the 2nd measure dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinates.Measure3">
- <summary>
- Flag for the 3rd measure dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinates.Measure4">
- <summary>
- Flag for the 4th measure dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinates.Measure5">
- <summary>
- Flag for the 5th measure dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinates.Measure6">
- <summary>
- Flag for the 6th measure dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinates.Measure7">
- <summary>
- Flag for the 7th measure dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinates.Measure8">
- <summary>
- Flag for the 8th measure dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinates.Measure9">
- <summary>
- Flag for the 9th measure dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinates.Measure10">
- <summary>
- Flag for the 10th measure dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinates.Measure11">
- <summary>
- Flag for the 11th measure dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinates.Measure12">
- <summary>
- Flag for the 12th measure dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinates.Measure13">
- <summary>
- Flag for the 13th measure dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinates.Measure14">
- <summary>
- Flag for the 14th measure dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinates.Measure15">
- <summary>
- Flag for the 15th measure dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinates.Measure16">
- <summary>
- Flag for the 16th measure dimension.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinates.AllMeasureOrdinates">
- <summary>
- Flags for all non-spatial ordinates.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Ordinates.AllOrdinates">
- <summary>
- Flags for all recognized ordinates.
- </summary>
- </member>
- <member name="T:NetTopologySuite.Geometries.OrdinatesUtility">
- <summary>
- Static utility functions for dealing with <see cref="T:NetTopologySuite.Geometries.Ordinates"/> and dimension
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.OrdinatesUtility.OrdinatesToDimension(NetTopologySuite.Geometries.Ordinates)">
- <summary>
- Translates the <paramref name="ordinates"/>-flag to a number of dimensions.
- </summary>
- <param name="ordinates">The ordinates flag</param>
- <returns>The number of dimensions</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.OrdinatesUtility.OrdinatesToMeasures(NetTopologySuite.Geometries.Ordinates)">
- <summary>
- Translates the <paramref name="ordinates"/>-flag to a number of measures.
- </summary>
- <param name="ordinates">The ordinates flag</param>
- <returns>The number of measures</returns>
- </member>
- <member name="T:NetTopologySuite.Geometries.Point">
- <summary>
- Represents a single point.
- <para/>
- A <c>Point</c> is topologically valid if and only if:
- <list type="bullet">
- <item><description>The coordinate which defines it if any) is a valid coordinate
- (i.e. does not have an <c>NaN</c> X- or Y-ordinate</description></item>
- </list>
- </summary>
-
- </member>
- <member name="F:NetTopologySuite.Geometries.Point.Empty">
- <summary>
- Represents an empty <c>Point</c>.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Point._coordinates">
- <summary>
- The <c>Coordinate</c> wrapped by this <c>Point</c>.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.Point.SortIndex">
- <summary>
- Gets a value to sort the geometry
- </summary>
- <remarks>
- NOTE:<br/>
- For JTS v1.17 this property's getter has been renamed to <c>getTypeCode()</c>.
- In order not to break binary compatibility we did not follow.
- </remarks>
- </member>
- <member name="P:NetTopologySuite.Geometries.Point.CoordinateSequence">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.Point.#ctor(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.Geometries.Point"/> class.
- </summary>
- <param name="coordinate">The coordinate used for create this <see cref="T:NetTopologySuite.Geometries.Point" />.</param>
- <remarks>
- For create this <see cref="T:NetTopologySuite.Geometries.Geometry"/> is used a standard <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>
- with <see cref="T:NetTopologySuite.Geometries.PrecisionModel" /> <c> == </c> <see cref="F:NetTopologySuite.Geometries.PrecisionModels.Floating"/>.
- </remarks>
- </member>
- <member name="M:NetTopologySuite.Geometries.Point.#ctor(NetTopologySuite.Geometries.CoordinateSequence,NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
- Constructs a <c>Point</c> with the given coordinate.
- </summary>
- <param name="coordinates">
- Contains the single coordinate on which to base this <c>Point</c>,
- or <c>null</c> to create the empty point.
- </param>
- <param name="factory"></param>
- </member>
- <member name="P:NetTopologySuite.Geometries.Point.Coordinates">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.Point.NumPoints">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.Point.IsEmpty">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.Point.Dimension">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.Point.BoundaryDimension">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.Point.X">
- <summary>
- Gets a value indicating the x-ordinate of this point
- </summary>
- <remarks>
- Deviation from JTS: this implementation <b>does not</b> throw an exception
- when this property is accessed or set
- </remarks>
- </member>
- <member name="P:NetTopologySuite.Geometries.Point.Y">
- <summary>
- Gets a value indicating the y-ordinate of this point
- </summary>
- <remarks>
- Deviation from JTS: this implementation <b>does not</b> throw an exception
- when this property is accessed or set
- </remarks>
- </member>
- <member name="P:NetTopologySuite.Geometries.Point.Coordinate">
- <inheritdoc/>
- </member>
- <member name="P:NetTopologySuite.Geometries.Point.GeometryType">
- <summary>
- Returns the name of this object's interface.
- </summary>
- <returns>"Point"</returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.Point.OgcGeometryType">
- <summary>
- Gets the OGC geometry type
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.Point.Boundary">
- <summary>
- Gets the boundary of this geometry.
- Zero-dimensional geometries have no boundary by definition,
- so an empty GeometryCollection is returned.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.Point.ComputeEnvelopeInternal">
- <summary>
-
- </summary>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Point.EqualsExact(NetTopologySuite.Geometries.Geometry,System.Double)">
- <summary>
-
- </summary>
- <param name="other"></param>
- <param name="tolerance"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Point.Apply(NetTopologySuite.Geometries.ICoordinateFilter)">
- <inheritdoc />
- </member>
- <member name="M:NetTopologySuite.Geometries.Point.Apply(NetTopologySuite.Geometries.ICoordinateSequenceFilter)">
- <inheritdoc />
- </member>
- <member name="M:NetTopologySuite.Geometries.Point.Apply(NetTopologySuite.Geometries.IEntireCoordinateSequenceFilter)">
- <inheritdoc />
- </member>
- <member name="M:NetTopologySuite.Geometries.Point.Apply(NetTopologySuite.Geometries.IGeometryFilter)">
- <inheritdoc />
- </member>
- <member name="M:NetTopologySuite.Geometries.Point.Apply(NetTopologySuite.Geometries.IGeometryComponentFilter)">
- <inheritdoc />
- </member>
- <member name="M:NetTopologySuite.Geometries.Point.CopyInternal">
- <inheritdoc cref="M:NetTopologySuite.Geometries.Geometry.CopyInternal"/>>
- </member>
- <member name="M:NetTopologySuite.Geometries.Point.Reverse">
- <inheritdoc cref="M:NetTopologySuite.Geometries.Geometry.Reverse"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Point.ReverseInternal">
- <summary>
- The actual implementation of the <see cref="M:NetTopologySuite.Geometries.Geometry.Reverse"/> function for <c>POINT</c>s.
- </summary>
- <returns>A reversed geometry</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Point.Normalize">
- <inheritdoc cref="M:NetTopologySuite.Geometries.Point.Normalize"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Point.CompareToSameClass(System.Object)">
- <summary>
-
- </summary>
- <param name="other"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Point.CompareToSameClass(System.Object,System.Collections.Generic.IComparer{NetTopologySuite.Geometries.CoordinateSequence})">
- <summary>
-
- </summary>
- <param name="other"></param>
- <param name="comparer"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Point.#ctor(System.Double,System.Double,System.Double)">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.Geometries.Point"/> class.
- </summary>
- <param name="x">The x coordinate.</param>
- <param name="y">The y coordinate.</param>
- <param name="z">The z coordinate.</param>
- /// <remarks>
- For create this <see cref="T:NetTopologySuite.Geometries.Geometry"/> is used a standard <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>
- with <see cref="T:NetTopologySuite.Geometries.PrecisionModel" /> <c> set to </c> <see cref="F:NetTopologySuite.Geometries.PrecisionModels.Floating"/>.
- </remarks>
- </member>
- <member name="M:NetTopologySuite.Geometries.Point.#ctor(System.Double,System.Double)">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.Geometries.Point"/> class.
- </summary>
- <param name="x">The x coordinate.</param>
- <param name="y">The y coordinate.</param>
- /// <remarks>
- For create this <see cref="T:NetTopologySuite.Geometries.Geometry"/> is used a standard <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>
- with <see cref="T:NetTopologySuite.Geometries.PrecisionModel" /> <c> set to </c> <see cref="F:NetTopologySuite.Geometries.PrecisionModels.Floating"/>.
- </remarks>
- </member>
- <member name="P:NetTopologySuite.Geometries.Point.Z">
- <summary>
-
- </summary>
- </member>
- <member name="T:NetTopologySuite.Geometries.Polygon">
- <summary>
- Represents a polygon with linear edges, which may include holes.
- The outer boundary (shell)
- and inner boundaries (holes) of the polygon are represented by {@link LinearRing}s.
- The boundary rings of the polygon may have any orientation.
- Polygons are closed, simple geometries by definition.
- <para/>
- The polygon model conforms to the assertions specified in the
- <a href="http://www.opengis.org/techno/specs.htm">OpenGIS Simple Features
- Specification for SQL</a>.
- <para/>
- A <c>Polygon</c> is topologically valid if and only if:
- <list type="bullet">
- <item><description>the coordinates which define it are valid coordinates</description></item>
- <item><description>the linear rings for the shell and holes are valid
- (i.e. are closed and do not self-intersect)</description></item>
- <item><description>holes touch the shell or another hole at at most one point
- (which implies that the rings of the shell and holes must not cross)</description></item>
- <item><description>the interior of the polygon is connected,
- or equivalently no sequence of touching holes
- makes the interior of the polygon disconnected
- (i.e. effectively split the polygon into two pieces).</description></item>
- </list>
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Polygon.Empty">
- <summary>
- Represents an empty <c>Polygon</c>.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Polygon._shell">
- <summary>
- The exterior boundary, or <c>null</c> if this <c>Polygon</c>
- is the empty point.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Polygon._holes">
- <summary>
- The interior boundaries, if any.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.Polygon.#ctor(NetTopologySuite.Geometries.LinearRing,NetTopologySuite.Geometries.LinearRing[])">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.Geometries.Polygon"/> class.
- </summary>
- <param name="shell">
- The outer boundary of the new <c>Polygon</c>,
- or <c>null</c> or an empty <c>LinearRing</c> if the empty
- point is to be created.
- </param>
- <param name="holes">
- The inner boundaries of the new <c>Polygon</c>
- , or <c>null</c> or empty <c>LinearRing</c>s if the empty
- point is to be created.
- </param>
- <remarks>
- For create this <see cref="T:NetTopologySuite.Geometries.Geometry"/> is used a standard <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>
- with <see cref="T:NetTopologySuite.Geometries.PrecisionModel" /> <c> == </c> <see cref="F:NetTopologySuite.Geometries.PrecisionModels.Floating"/>.
- </remarks>
- </member>
- <member name="M:NetTopologySuite.Geometries.Polygon.#ctor(NetTopologySuite.Geometries.LinearRing,NetTopologySuite.Geometries.LinearRing[],NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
- Constructs a <c>Polygon</c> with the given exterior boundary and
- interior boundaries.
- </summary>
- <param name="shell">
- The outer boundary of the new <c>Polygon</c>,
- or <c>null</c> or an empty <c>LinearRing</c> if the empty
- point is to be created.
- </param>
- <param name="holes">
- The inner boundaries of the new <c>Polygon</c>
- , or <c>null</c> or empty <c>LinearRing</c>s if the empty
- point is to be created.
- </param>
- <param name="factory"></param>
- </member>
- <member name="P:NetTopologySuite.Geometries.Polygon.SortIndex">
- <summary>
- Gets a value to sort the geometry
- </summary>
- <remarks>
- NOTE:<br/>
- For JTS v1.17 this property's getter has been renamed to <c>getTypeCode()</c>.
- In order not to break binary compatibility we did not follow.
- </remarks>
- </member>
- <member name="P:NetTopologySuite.Geometries.Polygon.Coordinate">
- <summary>
- Returns a vertex of this <c>Geometry</c>
- (usually, but not necessarily, the first one).
- </summary>
- <remarks>
- The returned coordinate should not be assumed to be an actual Coordinate object used in the internal representation.
- </remarks>
- <returns>a Coordinate which is a vertex of this <c>Geometry</c>.</returns>
- <returns><c>null</c> if this Geometry is empty.
- </returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.Polygon.Coordinates">
- <summary>
- Returns an array containing the values of all the vertices for
- this geometry.
- </summary>
- <remarks>
- If the geometry is a composite, the array will contain all the vertices
- for the components, in the order in which the components occur in the geometry.
- <para>
- In general, the array cannot be assumed to be the actual internal
- storage for the vertices. Thus modifying the array
- may not modify the geometry itself.
- Use the <see cref="M:NetTopologySuite.Geometries.CoordinateSequence.SetOrdinate(System.Int32,System.Int32,System.Double)"/> method
- (possibly on the components) to modify the underlying data.
- If the coordinates are modified,
- <see cref="M:NetTopologySuite.Geometries.Geometry.GeometryChanged"/> must be called afterwards.
- </para>
- </remarks>
- <returns>The vertices of this <c>Geometry</c>.</returns>
- <seealso cref="M:NetTopologySuite.Geometries.Geometry.GeometryChanged"/>
- <seealso cref="M:NetTopologySuite.Geometries.CoordinateSequence.SetOrdinate(System.Int32,System.Int32,System.Double)"/>
- <seealso cref="M:NetTopologySuite.Geometries.CoordinateSequence.SetOrdinate(System.Int32,NetTopologySuite.Geometries.Ordinate,System.Double)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Polygon.GetOrdinates(NetTopologySuite.Geometries.Ordinate)">
- <summary>
- Gets an array of <see cref="T:System.Double"/> ordinate values
- </summary>
- <param name="ordinate">The ordinate index</param>
- <returns>An array of ordinate values</returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.Polygon.NumPoints">
- <summary>
- Returns the count of this <c>Geometry</c>s vertices. The <c>Geometry</c>
- s contained by composite <c>Geometry</c>s must be
- Geometry's; that is, they must implement <c>NumPoints</c>.
- </summary>
- <returns>The number of vertices in this <c>Geometry</c>.</returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.Polygon.Dimension">
- <summary>
- Returns the dimension of this geometry.
- </summary>
- <remarks>
- The dimension of a geometry is is the topological
- dimension of its embedding in the 2-D Euclidean plane.
- In the NTS spatial model, dimension values are in the set {0,1,2}.
- <para>
- Note that this is a different concept to the dimension of
- the vertex <see cref="P:NetTopologySuite.Geometries.Polygon.Coordinate"/>s.
- The geometry dimension can never be greater than the coordinate dimension.
- For example, a 0-dimensional geometry (e.g. a Point)
- may have a coordinate dimension of 3 (X,Y,Z).
- </para>
- </remarks>
- <returns>
- The topological dimensions of this geometry
- </returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.Polygon.BoundaryDimension">
- <summary>
- Returns the dimension of this <c>Geometry</c>s inherent boundary.
- </summary>
- <returns>
- The dimension of the boundary of the class implementing this
- interface, whether or not this object is the empty point. Returns
- <c>Dimension.False</c> if the boundary is the empty point.
- </returns>
- NOTE: make abstract and remove setter
- </member>
- <member name="P:NetTopologySuite.Geometries.Polygon.IsEmpty">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.Polygon.ExteriorRing">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.Polygon.NumInteriorRings">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.Polygon.InteriorRings">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.Polygon.GetInteriorRingN(System.Int32)">
- <summary>
-
- </summary>
- <param name="n"></param>
- <returns></returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.Polygon.GeometryType">
- <summary>
- Returns the name of this object's interface.
- </summary>
- <returns>"Polygon"</returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.Polygon.OgcGeometryType">
- <inheritdoc cref="P:NetTopologySuite.Geometries.Geometry.OgcGeometryType"/>
- </member>
- <member name="P:NetTopologySuite.Geometries.Polygon.Area">
- <summary>
- Returns the area of this <c>Polygon</c>
- </summary>
- <returns></returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.Polygon.Length">
- <summary>
- Returns the perimeter of this <c>Polygon</c>.
- </summary>
- <returns></returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.Polygon.Boundary">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.Polygon.ComputeEnvelopeInternal">
- <summary>
-
- </summary>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Polygon.EqualsExact(NetTopologySuite.Geometries.Geometry,System.Double)">
- <summary>
-
- </summary>
- <param name="other"></param>
- <param name="tolerance"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Polygon.Apply(NetTopologySuite.Geometries.ICoordinateFilter)">
- <inheritdoc cref="M:NetTopologySuite.Geometries.Geometry.Apply(NetTopologySuite.Geometries.ICoordinateFilter)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Polygon.Apply(NetTopologySuite.Geometries.ICoordinateSequenceFilter)">
- <inheritdoc cref="M:NetTopologySuite.Geometries.Geometry.Apply(NetTopologySuite.Geometries.ICoordinateSequenceFilter)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Polygon.Apply(NetTopologySuite.Geometries.IEntireCoordinateSequenceFilter)">
- <inheritdoc />
- </member>
- <member name="M:NetTopologySuite.Geometries.Polygon.Apply(NetTopologySuite.Geometries.IGeometryFilter)">
- <inheritdoc cref="M:NetTopologySuite.Geometries.Geometry.Apply(NetTopologySuite.Geometries.IGeometryFilter)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Polygon.Apply(NetTopologySuite.Geometries.IGeometryComponentFilter)">
- <inheritdoc cref="M:NetTopologySuite.Geometries.Geometry.Apply(NetTopologySuite.Geometries.IGeometryComponentFilter)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Polygon.CopyInternal">
- <inheritdoc cref="M:NetTopologySuite.Geometries.Geometry.CopyInternal"/>>
- </member>
- <member name="M:NetTopologySuite.Geometries.Polygon.ConvexHull">
- <summary>
-
- </summary>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Polygon.Normalize">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.Polygon.CompareToSameClass(System.Object)">
- <summary>
-
- </summary>
- <param name="o"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Polygon.CompareToSameClass(System.Object,System.Collections.Generic.IComparer{NetTopologySuite.Geometries.CoordinateSequence})">
- <summary>
-
- </summary>
- <param name="other"></param>
- <param name="comparer"></param>
- <returns></returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.Polygon.IsRectangle">
- <summary>
- Tests whether this is a rectangular <see cref="T:NetTopologySuite.Geometries.Polygon"/>.
- </summary>
- <returns><c>true</c> if the geometry is a rectangle.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Polygon.Reverse">
- <inheritdoc cref="M:NetTopologySuite.Geometries.Geometry.Reverse"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Polygon.ReverseInternal">
- <summary>
- The actual implementation of the <see cref="M:NetTopologySuite.Geometries.Geometry.Reverse"/> function for <c>POLYGON</c>s
- </summary>
- <returns>A reversed geometry</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Polygon.#ctor(NetTopologySuite.Geometries.LinearRing,NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
- Constructs a <c>Polygon</c> with the given exterior boundary.
- </summary>
- <param name="shell">
- The outer boundary of the new <c>Polygon</c>,
- or <c>null</c> or an empty <c>LinearRing</c> if the empty
- polygon is to be created.
- </param>
- <param name="factory"></param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Polygon.#ctor(NetTopologySuite.Geometries.LinearRing)">
- <summary>
- Constructs a <c>Polygon</c> with the given exterior boundary.
- </summary>
- <param name="shell">
- The outer boundary of the new <c>Polygon</c>,
- or <c>null</c> or an empty <c>LinearRing</c> if the empty
- polygon is to be created.
- </param>
- </member>
- <member name="P:NetTopologySuite.Geometries.Polygon.Shell">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.Polygon.Holes">
- <summary>
-
- </summary>
- </member>
- <member name="T:NetTopologySuite.Geometries.Position">
- <summary>
- Indicates the position of a location relative to a
- node or edge component of a planar topological structure.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Position.On">
- <summary>
- Specifies that a location is <c>on</c> a component
- </summary>
- <value>0</value>
- </member>
- <member name="F:NetTopologySuite.Geometries.Position.Left">
- <summary>
- Specifies that a location is to the <c>left</c> of a component
- </summary>
- <value>1</value>
- </member>
- <member name="F:NetTopologySuite.Geometries.Position.Right">
- <summary>
- Specifies that a location is to the <c>right</c> of a component
- </summary>
- <value>2</value>
- </member>
- <member name="F:NetTopologySuite.Geometries.Position.Parallel">
- <summary>
- Specifies that a location is <c>is parallel to x-axis</c> of a component
- </summary>
- <value>-1</value>
- </member>
- <member name="M:NetTopologySuite.Geometries.Position.#ctor(System.Int32)">
- <summary>
- Creates a new position index
- </summary>
- <param name="index">A position index</param>
- </member>
- <member name="P:NetTopologySuite.Geometries.Position.Index">
- <summary>
- Gets a value indicating the position index
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.Position.Opposite">
- <summary>
- Returns <see cref="F:NetTopologySuite.Geometries.Position.Left"/> if the position is <see cref="F:NetTopologySuite.Geometries.Position.Right"/>,
- <see cref="F:NetTopologySuite.Geometries.Position.Right"/> if the position is <see cref="F:NetTopologySuite.Geometries.Position.Left"/>, or the position
- otherwise.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.Position.op_Equality(NetTopologySuite.Geometries.Position,NetTopologySuite.Geometries.Position)">
- <summary>
- Equality comparer for <see cref="T:NetTopologySuite.Geometries.Position"/> indices
- </summary>
- <param name="lhs">The position index on the left-hand-side</param>
- <param name="rhs">The position index on the right-hand-side</param>
- <returns><c>true</c> if both indices are equal.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Position.op_Inequality(NetTopologySuite.Geometries.Position,NetTopologySuite.Geometries.Position)">
- <summary>
- Inequality comparer for <see cref="T:NetTopologySuite.Geometries.Position"/> indices
- </summary>
- <param name="lhs">The position index on the left-hand-side</param>
- <param name="rhs">The position index on the right-hand-side</param>
- <returns><c>true</c> if both indices are <b>not</b> equal.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Position.op_Implicit(NetTopologySuite.Geometries.Position)~System.Int32">
- <summary>
- Implicit conversion operator for <see cref="T:NetTopologySuite.Geometries.Position"/> to <see cref="T:System.Int32"/> conversion.
- </summary>
- <param name="pos">The position index</param>
- </member>
- <member name="T:NetTopologySuite.Geometries.PrecisionModel">
- <summary>
- Specifies the precision model of the <c>Coordinate</c>s in a <c>Geometry</c>.
- In other words, specifies the grid of allowable points for a <c>Geometry</c>.
- A precision model may be<b>floating</b> (<see cref="F:NetTopologySuite.Geometries.PrecisionModels.Floating"/> or <see cref="F:NetTopologySuite.Geometries.PrecisionModels.FloatingSingle"/>),
- in which case normal floating-point value semantics apply.
- </summary>
- <remarks>
- For a <see cref="F:NetTopologySuite.Geometries.PrecisionModels.Fixed"/> precision model the
- <see cref="M:NetTopologySuite.Geometries.PrecisionModel.MakePrecise(NetTopologySuite.Geometries.Coordinate)"/> method allows rounding a
- coordinate to a "precise" value; that is, one whose precision
- is known exactly.
- <para/>
- Coordinates are assumed to be precise in geometries.
- That is, the coordinates are assumed to be rounded to the
- precision model given for the geometry.
- <para/>
- All internal operations
- assume that coordinates are rounded to the precision model.
- Constructive methods (such as bool operations) always round computed
- coordinates to the appropriate precision model.<br/>
- Three types of precision model are supported:
- <list type="table">
- <item><term>Floating</term><description>Represents full double precision floating point.
- This is the default precision model used in NTS</description></item>
- <item><term>FloatingSingle</term><description>Represents single precision floating point</description></item>
- <item><term>Fixed</term><description>Represents a model with a fixed number of decimal places.
- A Fixed Precision Model is specified by a <b>scale factor</b>.
- The scale factor specifies the size of the grid which numbers are rounded to.</description></item>
- </list>
- Input coordinates are mapped to fixed coordinates according to the following
- equations:
- <list type="bullet">
- <item><description><c>jtsPt.X = Math.Round( inputPt.X * scale, MidPointRounding.AwayFromZero ) / scale )</c></description></item>
- <item><description><c>jtsPt.Y = Math.Round( inputPt.Y * scale, MidPointRounding.AwayFromZero ) / scale )</c></description></item>
- </list>
- <para>
- For example, to specify 3 decimal places of precision, use a scale factor
- of 1000. To specify -3 decimal places of precision (i.e. rounding to
- the nearest 1000), use a scale factor of 0.001.
- </para>
- It is also supported to specify a precise <b>grid size</b>
- by providing it as a negative scale factor.
- This allows setting a precise grid size rather than using a fractional scale,
- which provides more accurate and robust rounding.
- For example, to specify rounding to the nearest 1000 use a scale factor of -1000.
- <para/>
- Coordinates are represented internally as Java double-precision values.
- .NET uses the IEEE-394 floating point standard, which
- provides 53 bits of precision. (Thus the maximum precisely representable
- <i>integer</i> is 9,007,199,254,740,992 - or almost 16 decimal digits of precision).
- </remarks>
- </member>
- <member name="M:NetTopologySuite.Geometries.PrecisionModel.MostPrecise(NetTopologySuite.Geometries.PrecisionModel,NetTopologySuite.Geometries.PrecisionModel)">
- <summary>
- Determines which of two <see cref="T:NetTopologySuite.Geometries.PrecisionModel"/>s is the most precise
- </summary>
- <param name="pm1">A precision model</param>
- <param name="pm2">A precision model</param>
- <returns>The PrecisionModel which is most precise</returns>
- </member>
- <member name="F:NetTopologySuite.Geometries.PrecisionModel.MaximumPreciseValue">
- <summary>
- The maximum precise value representable in a double. Since IEE754
- double-precision numbers allow 53 bits of mantissa, the value is equal to
- 2^53 - 1. This provides <i>almost</i> 16 decimal digits of precision.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.PrecisionModel._modelType">
- <summary>
- The type of PrecisionModel this represents.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.PrecisionModel._scale">
- <summary>
- The scale factor which determines the number of decimal places in fixed precision.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.PrecisionModel._gridSize">
- <summary>
- If non-zero, the precise grid size specified.
- In this case, the scale is also valid and is computed from the grid size.
- If zero, the scale is used to compute the grid size where needed.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.PrecisionModel.Floating">
- <summary>
- Gets a value indicating a precision model with double precision.
- </summary>
- <returns>A double precision model</returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.PrecisionModel.FloatingSingle">
- <summary>
- Gets a value indicating a precision model with single precision.
- </summary>
- <returns>A single precision model</returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.PrecisionModel.Fixed">
- <summary>
- Gets a value indicating a precision model with a scale of <c>1</c>.
- </summary>
- <returns>A fixed precision model</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.PrecisionModel.#ctor">
- <summary>
- Creates a <c>PrecisionModel</c> with a default precision
- of Floating.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.PrecisionModel.#ctor(NetTopologySuite.Geometries.PrecisionModels)">
- <summary>
- Creates a <c>PrecisionModel</c> that specifies
- an explicit precision model type.
- If the model type is Fixed the scale factor will default to 1.
- </summary>
- <param name="modelType">
- The type of the precision model.
- </param>
- </member>
- <member name="M:NetTopologySuite.Geometries.PrecisionModel.#ctor(System.Double)">
- <summary>
- Creates a <c>PrecisionModel</c> that specifies Fixed precision.
- Fixed-precision coordinates are represented as precise internal coordinates,
- which are rounded to the grid defined by the scale factor.
- <para/>
- The provided scale may be negative, to specify an exact grid size.
- The scale is then computed as the reciprocal.
- </summary>
- <param name="scale">
- Amount by which to multiply a coordinate, to obtain a precise coordinate.
- Must be non-zero
- </param>
- </member>
- <member name="M:NetTopologySuite.Geometries.PrecisionModel.#ctor(NetTopologySuite.Geometries.PrecisionModel)">
- <summary>
- Copy constructor to create a new <c>PrecisionModel</c>
- from an existing one.
- </summary>
- <param name="pm"></param>
- </member>
- <member name="P:NetTopologySuite.Geometries.PrecisionModel.IsFloating">
- <summary>
- Tests whether the precision model supports floating point.
- </summary>
- <returns><c>true</c> if the precision model supports floating point.</returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.PrecisionModel.MaximumSignificantDigits">
- <summary>
- Returns the maximum number of significant digits provided by this
- precision model.
- Intended for use by routines which need to print out precise values.
- </summary>
- <returns>
- The maximum number of decimal places provided by this precision model.
- </returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.PrecisionModel.Scale">
- <summary>
- Returns the scale factor used to specify a fixed precision model.
- </summary>
- <remarks>
- The number of decimal places of precision is
- equal to the base-10 logarithm of the scale factor.
- Non-integral and negative scale factors are supported.
- Negative scale factors indicate that the places
- of precision is to the left of the decimal point.
- </remarks>
- <returns>
- The scale factor for the fixed precision model
- </returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.PrecisionModel.GridSize">
- <summary>
- Computes the grid size for a fixed precision model.
- This is equal to the reciprocal of the scale factor.
- If the grid size has been set explicity (via a negative scale factor)
- it will be returned.
- </summary>
- <returns>The grid size at a fixed precision scale.</returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.PrecisionModel.PrecisionModelType">
- <summary>
- Gets the type of this PrecisionModel.
- </summary>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.PrecisionModel.MakePrecise(System.Double)">
- <summary>
- Rounds a numeric value to the PrecisionModel grid.
- Symmetric Arithmetic Rounding is used, to provide
- uniform rounding behaviour no matter where the number is
- on the number line.
- </summary>
- <remarks>
- This method has no effect on NaN values
- </remarks>
- <param name="val"></param>
- </member>
- <member name="M:NetTopologySuite.Geometries.PrecisionModel.MakePrecise(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Rounds a Coordinate to the PrecisionModel grid.
- </summary>
- <param name="coord"></param>
- </member>
- <member name="M:NetTopologySuite.Geometries.PrecisionModel.ToString">
- <summary>
-
- </summary>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.PrecisionModel.Equals(System.Object)">
- <summary>
-
- </summary>
- <param name="other"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.PrecisionModel.GetHashCode">
- <inheritdoc cref="M:System.Object.GetHashCode"/>>
- </member>
- <member name="M:NetTopologySuite.Geometries.PrecisionModel.Equals(NetTopologySuite.Geometries.PrecisionModel)">
- <summary>
-
- </summary>
- <param name="otherPrecisionModel"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.PrecisionModel.op_Equality(NetTopologySuite.Geometries.PrecisionModel,NetTopologySuite.Geometries.PrecisionModel)">
- <summary>
-
- </summary>
- <param name="obj1"></param>
- <param name="obj2"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.PrecisionModel.op_Inequality(NetTopologySuite.Geometries.PrecisionModel,NetTopologySuite.Geometries.PrecisionModel)">
- <summary>
-
- </summary>
- <param name="obj1"></param>
- <param name="obj2"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.PrecisionModel.CompareTo(System.Object)">
- <summary>
- Compares this <c>PrecisionModel</c> object with the specified object for order.
- A PrecisionModel is greater than another if it provides greater precision.
- The comparison is based on the value returned by the
- {getMaximumSignificantDigits) method.
- This comparison is not strictly accurate when comparing floating precision models
- to fixed models; however, it is correct when both models are either floating or fixed.
- </summary>
- <param name="o">
- The <c>PrecisionModel</c> with which this <c>PrecisionModel</c>
- is being compared.
- </param>
- <returns>
- A negative integer, zero, or a positive integer as this <c>PrecisionModel</c>
- is less than, equal to, or greater than the specified <c>PrecisionModel</c>.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.PrecisionModel.CompareTo(NetTopologySuite.Geometries.PrecisionModel)">
- <summary>
-
- </summary>
- <param name="other"></param>
- <returns></returns>
- </member>
- <member name="T:NetTopologySuite.Geometries.PrecisionModels">
- <summary>
-
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.PrecisionModels.Floating">
- <summary>
- Floating precision corresponds to the standard
- double-precision floating-point representation, which is
- based on the IEEE-754 standard
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.PrecisionModels.FloatingSingle">
- <summary>
- Floating single precision corresponds to the standard
- single-precision floating-point representation, which is
- based on the IEEE-754 standard
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.PrecisionModels.Fixed">
- <summary>
- Fixed Precision indicates that coordinates have a fixed number of decimal places.
- The number of decimal places is determined by the log10 of the scale factor.
- </summary>
- </member>
- <member name="T:NetTopologySuite.Geometries.Prepared.AbstractPreparedPolygonContains">
- <summary>
- A base class containing the logic for computes the <i>contains</i>
- and <i>covers</i> spatial relationship predicates
- for a <see cref="T:NetTopologySuite.Geometries.Prepared.PreparedPolygon"/> relative to all other <see cref="T:NetTopologySuite.Geometries.Geometry"/> classes.
- Uses short-circuit tests and indexing to improve performance.
- </summary>
- <remarks>
- <para>
- Contains and covers are very similar, and differ only in how certain
- cases along the boundary are handled. These cases require
- full topological evaluation to handle, so all the code in
- this class is common to both predicates.
- </para>
- <para>
- It is not possible to short-circuit in all cases, in particular
- in the case where line segments of the test geometry touches the polygon linework.
- In this case full topology must be computed.
- (However, if the test geometry consists of only points, this
- <i>can</i> be evaluated in an optimized fashion.
- </para>
- </remarks>
- <author>Martin Davis</author>
- </member>
- <member name="F:NetTopologySuite.Geometries.Prepared.AbstractPreparedPolygonContains.RequireSomePointInInterior">
- <summary>
- This flag controls a difference between contains and covers.
- For contains the value is true.
- For covers the value is false.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.Prepared.AbstractPreparedPolygonContains.#ctor(NetTopologySuite.Geometries.Prepared.PreparedPolygon)">
- <summary>
- Creates an instance of this operation.
- </summary>
- <param name="prepPoly">The PreparedPolygon to evaluate</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Prepared.AbstractPreparedPolygonContains.Eval(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Evaluate the <i>contains</i> or <i>covers</i> relationship
- for the given geometry.
- </summary>
- <param name="geom">the test geometry</param>
- <returns>true if the test geometry is contained</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Prepared.AbstractPreparedPolygonContains.EvalPoints(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Evaluation optimized for Point geometries.
- This provides about a 2x performance increase, and less memory usage.
- </summary>
- <param name="geom">A Point or MultiPoint geometry</param>
- <returns>The value of the predicate being evaluated</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Prepared.AbstractPreparedPolygonContains.IsSingleShell(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests whether a geometry consists of a single polygon with no holes.
- </summary>
- <returns>True if the geometry is a single polygon with no holes</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Prepared.AbstractPreparedPolygonContains.FullTopologicalPredicate(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes the full topological predicate.
- Used when short-circuit tests are not conclusive.
- </summary>
- <param name="geom">The test geometry</param>
- <returns>true if this prepared polygon has the relationship with the test geometry</returns>
- </member>
- <member name="T:NetTopologySuite.Geometries.Prepared.BasicPreparedGeometry">
- <summary>
- A base class for <see cref="T:NetTopologySuite.Geometries.Prepared.IPreparedGeometry"/> subclasses.
- </summary>
- <remarks>
- <para>Contains default implementations for methods, which simply delegate to the equivalent <see cref="P:NetTopologySuite.Geometries.Prepared.BasicPreparedGeometry.Geometry"/> methods.</para>
- <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>
- </remarks>
- <author>Martin Davis</author>
- </member>
- <member name="P:NetTopologySuite.Geometries.Prepared.BasicPreparedGeometry.RepresentativePoints">
- <summary>
- Gets the list of representative points for this geometry.
- One vertex is included for every component of the geometry
- (i.e. including one for every ring of polygonal geometries).
- <para/>
- Do not modify the returned list!
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.Prepared.BasicPreparedGeometry.IsAnyTargetComponentInTest(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests whether any representative of the target geometry intersects the test geometry.
- This is useful in A/A, A/L, A/P, L/P, and P/P cases.
- </summary>
- <param name="testGeom">The test geometry</param>
- <returns>true if any component intersects the areal test geometry</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Prepared.BasicPreparedGeometry.EnvelopesIntersect(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Determines whether a Geometry g interacts with this geometry by testing the geometry envelopes.
- </summary>
- <param name="g">A geometry</param>
- <returns>true if the envelopes intersect</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Prepared.BasicPreparedGeometry.EnvelopeCovers(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Determines whether the envelope of this geometry covers the Geometry g.
- </summary>
- <param name="g">A geometry</param>
- <returns>true if g is contained in this envelope</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Prepared.BasicPreparedGeometry.Contains(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests whether the base <see cref="P:NetTopologySuite.Geometries.Prepared.BasicPreparedGeometry.Geometry"/> contains a given geometry.
- </summary>
- <param name="g">The Geometry to test</param>
- <returns>true if this Geometry contains the given Geometry</returns>
- <see cref="M:NetTopologySuite.Geometries.Geometry.Contains(NetTopologySuite.Geometries.Geometry)"/>
- <remarks>Default implementation.</remarks>
- </member>
- <member name="M:NetTopologySuite.Geometries.Prepared.BasicPreparedGeometry.ContainsProperly(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests whether the base <see cref="P:NetTopologySuite.Geometries.Prepared.BasicPreparedGeometry.Geometry"/> properly contains a given geometry.
- <para/>
- The <c>ContainsProperly</c> predicate has the following equivalent definitions:
- <list>
- <item><description>Every point of the other geometry is a point of this geometry's interior.</description></item>
- <item><description>The DE-9IM Intersection Matrix for the two geometries matches <c>>[T**FF*FF*]</c></description></item>
- </list>
- In other words, if the test geometry has any interaction with the boundary of the target
- geometry the result of <c>ContainsProperly</c> is <c>false</c>.
- This is different semantics to the <see cref="M:NetTopologySuite.Geometries.Geometry.Contains(NetTopologySuite.Geometries.Geometry)"/> predicate,
- in which test geometries can intersect the target's boundary and still be contained.
- <para/>
- The advantage of using this predicate is that it can be computed
- efficiently, since it avoids the need to compute the full topological relationship
- of the input boundaries in cases where they intersect.
- <para/>
- An example use case is computing the intersections
- of a set of geometries with a large polygonal geometry.
- Since <i>intersection</i> is a fairly slow operation, it can be more efficient
- to use <see cref="M:NetTopologySuite.Geometries.Prepared.BasicPreparedGeometry.ContainsProperly(NetTopologySuite.Geometries.Geometry)" /> to filter out test geometries which lie
- wholly inside the area. In these cases the intersection is
- known <c>a priori</c> to be simply the original test geometry.
- </summary>
- <param name="g">The geometry to test</param>
- <returns>true if this geometry properly contains the given geometry</returns>
- <see cref="M:NetTopologySuite.Geometries.Prepared.IPreparedGeometry.ContainsProperly(NetTopologySuite.Geometries.Geometry)"/>
- <remarks>Default implementation.</remarks>
- <seealso cref="M:NetTopologySuite.Geometries.Prepared.BasicPreparedGeometry.Contains(NetTopologySuite.Geometries.Geometry)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Prepared.BasicPreparedGeometry.CoveredBy(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests whether the base <see cref="P:NetTopologySuite.Geometries.Prepared.BasicPreparedGeometry.Geometry"/> is covered by a given geometry.
- </summary>
- <param name="g">The geometry to test</param>
- <returns>true if this geometry is covered by the given geometry</returns>
- <see cref="M:NetTopologySuite.Geometries.Geometry.CoveredBy(NetTopologySuite.Geometries.Geometry)"/>
- <remarks>Default implementation.</remarks>
- </member>
- <member name="M:NetTopologySuite.Geometries.Prepared.BasicPreparedGeometry.Covers(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests whether the base <see cref="P:NetTopologySuite.Geometries.Prepared.BasicPreparedGeometry.Geometry"/> covers a given geometry.
- </summary>
- <param name="g">The geometry to test</param>
- <returns>true if this geometry covers the given geometry</returns>
- <see cref="M:NetTopologySuite.Geometries.Geometry.Covers(NetTopologySuite.Geometries.Geometry)"/>
- <remarks>Default implementation.</remarks>
- </member>
- <member name="M:NetTopologySuite.Geometries.Prepared.BasicPreparedGeometry.Crosses(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests whether the base <see cref="P:NetTopologySuite.Geometries.Prepared.BasicPreparedGeometry.Geometry"/> crosses a given geometry.
- </summary>
- <param name="g">The geometry to test</param>
- <returns>true if this geometry crosses the given geometry</returns>
- <see cref="M:NetTopologySuite.Geometries.Geometry.Crosses(NetTopologySuite.Geometries.Geometry)"/>
- <remarks>Default implementation.</remarks>
- </member>
- <member name="M:NetTopologySuite.Geometries.Prepared.BasicPreparedGeometry.Disjoint(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests whether the base <see cref="P:NetTopologySuite.Geometries.Prepared.BasicPreparedGeometry.Geometry"/> is disjoint from given geometry.
- </summary>
- <param name="g">The geometry to test</param>
- <returns>true if this geometry is disjoint from the given geometry</returns>
- <see cref="M:NetTopologySuite.Geometries.Geometry.Disjoint(NetTopologySuite.Geometries.Geometry)"/>
- <remarks>Standard implementation for all geometries.</remarks>
- </member>
- <member name="M:NetTopologySuite.Geometries.Prepared.BasicPreparedGeometry.Intersects(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests whether the base <see cref="P:NetTopologySuite.Geometries.Prepared.BasicPreparedGeometry.Geometry"/> intersects a given geometry.
- </summary>
- <param name="g">The geometry to test</param>
- <returns>true if this geometry intersects the given geometry</returns>
- <see cref="M:NetTopologySuite.Geometries.Geometry.Intersects(NetTopologySuite.Geometries.Geometry)"/>
- <remarks>Default implementation.</remarks>
- </member>
- <member name="M:NetTopologySuite.Geometries.Prepared.BasicPreparedGeometry.Overlaps(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests whether the base <see cref="P:NetTopologySuite.Geometries.Prepared.BasicPreparedGeometry.Geometry"/> overlaps a given geometry.
- </summary>
- <param name="g">The geometry to test</param>
- <returns>true if this geometry overlaps the given geometry</returns>
- <see cref="M:NetTopologySuite.Geometries.Geometry.Overlaps(NetTopologySuite.Geometries.Geometry)"/>
- <remarks>Default implementation.</remarks>
- </member>
- <member name="M:NetTopologySuite.Geometries.Prepared.BasicPreparedGeometry.Touches(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests whether the base <see cref="P:NetTopologySuite.Geometries.Prepared.BasicPreparedGeometry.Geometry"/> touches a given geometry.
- </summary>
- <param name="g">The geometry to test</param>
- <returns>true if this geometry touches the given geometry</returns>
- <see cref="M:NetTopologySuite.Geometries.Geometry.Touches(NetTopologySuite.Geometries.Geometry)"/>
- <remarks>Default implementation.</remarks>
- </member>
- <member name="M:NetTopologySuite.Geometries.Prepared.BasicPreparedGeometry.Within(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests whether the base <see cref="P:NetTopologySuite.Geometries.Prepared.BasicPreparedGeometry.Geometry"/> is within a given geometry.
- </summary>
- <param name="g">The geometry to test</param>
- <returns>true if this geometry is within the given geometry</returns>
- <see cref="M:NetTopologySuite.Geometries.Geometry.Within(NetTopologySuite.Geometries.Geometry)"/>
- <remarks>Default implementation.</remarks>
- </member>
- <member name="M:NetTopologySuite.Geometries.Prepared.BasicPreparedGeometry.ToString">
- <inheritdoc cref="M:System.Object.ToString"/>
- </member>
- <member name="T:NetTopologySuite.Geometries.Prepared.IPreparedGeometry">
- <summary>
- An interface for classes which prepare <see cref="P:NetTopologySuite.Geometries.Prepared.IPreparedGeometry.Geometry"/>s
- in order to optimize the performance of repeated calls to specific geometric operations.
- </summary>
- <remarks>
- <para>
- A given implementation may provide optimized implementations
- for only some of the specified methods, and delegate the remaining
- methods to the original <see cref="P:NetTopologySuite.Geometries.Prepared.IPreparedGeometry.Geometry"/> operations.
- </para>
- <para>
- An implementation may also only optimize certain situations, and delegate others.
- See the implementing classes for documentation about which methods and situations
- they optimize.</para>
- <para>
- Subclasses are intended to be thread-safe, to allow <c>IPreparedGeometry</c>
- to be used in a multi-threaded context
- (which allows extracting maximum benefit from the prepared state).
- </para>
- </remarks>
- <author>Martin Davis</author>
- </member>
- <member name="P:NetTopologySuite.Geometries.Prepared.IPreparedGeometry.Geometry">
- <summary>
- Gets the original <see cref="P:NetTopologySuite.Geometries.Prepared.IPreparedGeometry.Geometry"/> which has been prepared.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.Prepared.IPreparedGeometry.Contains(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests whether the base <see cref="P:NetTopologySuite.Geometries.Prepared.IPreparedGeometry.Geometry"/> contains a given geometry.
- </summary>
- <param name="geom">The Geometry to test</param>
- <returns>true if this Geometry contains the given Geometry</returns>
- <see cref="M:NetTopologySuite.Geometries.Geometry.Contains(NetTopologySuite.Geometries.Geometry)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Prepared.IPreparedGeometry.ContainsProperly(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests whether the base <see cref="P:NetTopologySuite.Geometries.Prepared.IPreparedGeometry.Geometry"/> contains a given geometry.
- </summary>
- <remarks>
- <para>
- The <c>ContainsProperly</c> predicate has the following equivalent definitions:
- <list type="bullet">
- <item><description>Every point of the other geometry is a point of this geometry's interior.</description></item>
- <item><description>The DE-9IM Intersection Matrix for the two geometries matches <c>>[T**FF*FF*]</c></description></item>
- </list>
- The advantage to using this predicate is that it can be computed
- efficiently, with no need to compute topology at individual points.
- </para>
- <para>
- An example use case for this predicate is computing the intersections
- of a set of geometries with a large polygonal geometry.
- Since <tt>intersection</tt> is a fairly slow operation, it can be more efficient
- to use <tt>containsProperly</tt> to filter out test geometries which lie
- wholly inside the area. In these cases the intersection
- known a priori to be simply the original test geometry.
- </para>
- </remarks>
- <param name="geom">The geometry to test</param>
- <returns>true if this geometry properly contains the given geometry</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Prepared.IPreparedGeometry.CoveredBy(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests whether the base <see cref="P:NetTopologySuite.Geometries.Prepared.IPreparedGeometry.Geometry"/> is covered by a given geometry.
- </summary>
- <param name="geom">The geometry to test</param>
- <returns>true if this geometry is covered by the given geometry</returns>
- <see cref="M:NetTopologySuite.Geometries.Geometry.CoveredBy(NetTopologySuite.Geometries.Geometry)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Prepared.IPreparedGeometry.Covers(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests whether the base <see cref="P:NetTopologySuite.Geometries.Prepared.IPreparedGeometry.Geometry"/> covers a given geometry.
- </summary>
- <param name="geom">The geometry to test</param>
- <returns>true if this geometry covers the given geometry</returns>
- <see cref="M:NetTopologySuite.Geometries.Geometry.Covers(NetTopologySuite.Geometries.Geometry)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Prepared.IPreparedGeometry.Crosses(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests whether the base <see cref="P:NetTopologySuite.Geometries.Prepared.IPreparedGeometry.Geometry"/> crosses a given geometry.
- </summary>
- <param name="geom">The geometry to test</param>
- <returns>true if this geometry crosses the given geometry</returns>
- <see cref="M:NetTopologySuite.Geometries.Geometry.Crosses(NetTopologySuite.Geometries.Geometry)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Prepared.IPreparedGeometry.Disjoint(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests whether the base <see cref="P:NetTopologySuite.Geometries.Prepared.IPreparedGeometry.Geometry"/> is disjoint from given geometry.
- </summary>
- <remarks>
- This method supports <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/>s as input
- </remarks>
- <param name="geom">The geometry to test</param>
- <returns>true if this geometry is disjoint from the given geometry</returns>
- <see cref="M:NetTopologySuite.Geometries.Geometry.Disjoint(NetTopologySuite.Geometries.Geometry)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Prepared.IPreparedGeometry.Intersects(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests whether the base <see cref="P:NetTopologySuite.Geometries.Prepared.IPreparedGeometry.Geometry"/> intersects a given geometry.
- </summary>
- <remarks>
- This method supports <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/>s as input
- </remarks>
- <param name="geom">The geometry to test</param>
- <returns>true if this geometry intersects the given geometry</returns>
- <see cref="M:NetTopologySuite.Geometries.Geometry.Intersects(NetTopologySuite.Geometries.Geometry)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Prepared.IPreparedGeometry.Overlaps(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests whether the base <see cref="P:NetTopologySuite.Geometries.Prepared.IPreparedGeometry.Geometry"/> overlaps a given geometry.
- </summary>
- <param name="geom">The geometry to test</param>
- <returns>true if this geometry overlaps the given geometry</returns>
- <see cref="M:NetTopologySuite.Geometries.Geometry.Overlaps(NetTopologySuite.Geometries.Geometry)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Prepared.IPreparedGeometry.Touches(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests whether the base <see cref="P:NetTopologySuite.Geometries.Prepared.IPreparedGeometry.Geometry"/> touches a given geometry.
- </summary>
- <param name="geom">The geometry to test</param>
- <returns>true if this geometry touches the given geometry</returns>
- <see cref="M:NetTopologySuite.Geometries.Geometry.Touches(NetTopologySuite.Geometries.Geometry)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Prepared.IPreparedGeometry.Within(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests whether the base <see cref="P:NetTopologySuite.Geometries.Prepared.IPreparedGeometry.Geometry"/> is within a given geometry.
- </summary>
- <param name="geom">The geometry to test</param>
- <returns>true if this geometry is within the given geometry</returns>
- <see cref="M:NetTopologySuite.Geometries.Geometry.Within(NetTopologySuite.Geometries.Geometry)"/>
- </member>
- <member name="T:NetTopologySuite.Geometries.Prepared.PreparedGeometryFactory">
- <summary>
- A factory for creating <see cref="T:NetTopologySuite.Geometries.Prepared.IPreparedGeometry"/>s. It chooses an appropriate implementation of PreparedGeometry
- based on the geometric type of the input geometry.
- <para/>
- In the future, the factory may accept hints that indicate
- special optimizations which can be performed.
- <para/>
- Instances of this class are thread-safe.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Geometries.Prepared.PreparedGeometryFactory.Prepare(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Creates a new <see cref="T:NetTopologySuite.Geometries.Prepared.IPreparedGeometry"/> appropriate for the argument <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
- </summary>
- <param name="geom">The geometry to prepare</param>
- <returns>
- the prepared geometry
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Prepared.PreparedGeometryFactory.Create(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Creates a new <see cref="T:NetTopologySuite.Geometries.Prepared.IPreparedGeometry"/> appropriate for the argument <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
- </summary>
- <param name="geom">The geometry to prepare</param>
- <returns>
- the prepared geometry
- </returns>
- </member>
- <member name="T:NetTopologySuite.Geometries.Prepared.PreparedLineString">
- <summary>
- A prepared version for <see cref="T:NetTopologySuite.Geometries.ILineal"/> geometries.
- <para>Instances of this class are thread-safe</para>.
- </summary>
- <author>mbdavis</author>
- </member>
- <member name="T:NetTopologySuite.Geometries.Prepared.PreparedLineStringIntersects">
- <summary>
- Computes the <i>intersects</i> spatial relationship predicate
- for a target <see cref="T:NetTopologySuite.Geometries.Prepared.PreparedLineString"/> relative to other <see cref="T:NetTopologySuite.Geometries.Geometry"/> classes.
- </summary>
- <remarks>
- Uses short-circuit tests and indexing to improve performance.
- </remarks>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Geometries.Prepared.PreparedLineStringIntersects.Intersects(NetTopologySuite.Geometries.Prepared.PreparedLineString,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes the intersects predicate between a <see cref="T:NetTopologySuite.Geometries.Prepared.PreparedLineString"/>
- and a <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
- </summary>
- <param name="prep">The prepared linestring</param>
- <param name="geom">A test geometry</param>
- <returns>true if the linestring intersects the geometry</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Prepared.PreparedLineStringIntersects.#ctor(NetTopologySuite.Geometries.Prepared.PreparedLineString)">
- <summary>
- Creates an instance of this operation.
- </summary>
- <param name="prepLine">The target PreparedLineString</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Prepared.PreparedLineStringIntersects.Intersects(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests whether this geometry intersects a given geometry.
- </summary>
- <param name="geom">The test geometry</param>
- <returns>true if the test geometry intersects</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Prepared.PreparedLineStringIntersects.IsAnyTestPointInTarget(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests whether any representative point of the test Geometry intersects
- the target geometry.
- </summary>
- <remarks>
- Only handles test geometries which are Puntal (dimension 0)
- </remarks>
- <param name="testGeom">A Puntal geometry to test</param>
- <returns>true if any point of the argument intersects the prepared geometry</returns>
- </member>
- <member name="T:NetTopologySuite.Geometries.Prepared.PreparedPoint">
- <summary>
- A prepared version for <see cref="T:NetTopologySuite.Geometries.IPuntal"/> geometries.
- <para>Instances of this class are thread-safe.</para>
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Geometries.Prepared.PreparedPoint.Intersects(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests whether this point intersects a <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
- </summary>
- <remarks>
- The optimization here is that computing topology for the test geometry
- is avoided. This can be significant for large geometries.
- </remarks>
- </member>
- <member name="T:NetTopologySuite.Geometries.Prepared.PreparedPolygon">
- <summary>
- A prepared version for <see cref="T:NetTopologySuite.Geometries.IPolygonal"/> geometries.
- This class supports both <see cref="T:NetTopologySuite.Geometries.Polygon"/>s and <see cref="T:NetTopologySuite.Geometries.MultiPolygon"/>s.
- <para>This class does <b>not</b> support MultiPolygons which are non-valid
- (e.g. with overlapping elements).
- </para>
- <para/>
- Instances of this class are thread-safe and immutable.
- </summary>
- <author>mbdavis</author>
- </member>
- <member name="T:NetTopologySuite.Geometries.Prepared.PreparedPolygonContains">
- <summary>
- 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.
- Uses short-circuit tests and indexing to improve performance.
- </summary>
- <remarks>
- <para>
- It is not possible to short-circuit in all cases, in particular
- in the case where the test geometry touches the polygon linework.
- In this case full topology must be computed.
- </para>
- </remarks>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Geometries.Prepared.PreparedPolygonContains.Contains(NetTopologySuite.Geometries.Prepared.PreparedPolygon,NetTopologySuite.Geometries.Geometry)">
- <summary>
- 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"/>.
- </summary>
- <param name="prep">The prepared polygon</param>
- <param name="geom">A test geometry</param>
- <returns>true if the polygon contains the geometry</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Prepared.PreparedPolygonContains.#ctor(NetTopologySuite.Geometries.Prepared.PreparedPolygon)">
- <summary>
- Creates an instance of this operation.
- </summary>
- <param name="prepPoly">the PreparedPolygon to evaluate</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Prepared.PreparedPolygonContains.Contains(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests whether this PreparedPolygon <c>contains</c> a given geometry.
- </summary>
- <param name="geom">The test geometry</param>
- <returns>true if the test geometry is contained</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Prepared.PreparedPolygonContains.FullTopologicalPredicate(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes the full topological <c>contains</c> predicate.<br/>
- Used when short-circuit tests are not conclusive.
- </summary>
- <param name="geom">The test geometry </param>
- <returns>true if this prepared polygon contains the test geometry</returns>
- </member>
- <member name="T:NetTopologySuite.Geometries.Prepared.PreparedPolygonContainsProperly">
- <summary>
- 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/>
- Uses short-circuit tests and indexing to improve performance.
- </summary>
- <remarks>
- <para>
- A Geometry A <c>containsProperly</c> another Geometry B if
- all points of B are contained in the Interior of A.
- Equivalently, B is contained in A AND B does not intersect
- the Boundary of A.
- </para>
- <para>
- The advantage to using this predicate is that it can be computed
- efficiently, with no need to compute topology at individual points.
- In a situation with many geometries intersecting the boundary
- of the target geometry, this can make a performance difference.
- </para>
- </remarks>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Geometries.Prepared.PreparedPolygonContainsProperly.ContainsProperly(NetTopologySuite.Geometries.Prepared.PreparedPolygon,NetTopologySuite.Geometries.Geometry)">
- <summary>Computes the <c>containsProperly</c> predicate between a <see cref="T:NetTopologySuite.Geometries.Prepared.PreparedPolygon"/> and a <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
- </summary>
- <param name="prep">The prepared polygon</param>
- <param name="geom">A test geometry</param>
- <returns>true if the polygon properly contains the geometry</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Prepared.PreparedPolygonContainsProperly.#ctor(NetTopologySuite.Geometries.Prepared.PreparedPolygon)">
- <summary>
- Creates an instance of this operation.
- </summary>
- <param name="prepPoly">The PreparedPolygon to evaluate</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Prepared.PreparedPolygonContainsProperly.ContainsProperly(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests whether this PreparedPolygon containsProperly a given geometry.
- </summary>
- <param name="geom">The test geometry</param>
- <returns>true if the polygon properly contains the geometry</returns>
- </member>
- <member name="T:NetTopologySuite.Geometries.Prepared.PreparedPolygonCovers">
- <summary>
- 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.
- </summary>
- <remarks>
- Uses short-circuit tests and indexing to improve performance.
- <para>
- It is not possible to short-circuit in all cases, in particular in the case where the test geometry touches the polygon linework.
- In this case full topology must be computed.
- </para></remarks>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Geometries.Prepared.PreparedPolygonCovers.Covers(NetTopologySuite.Geometries.Prepared.PreparedPolygon,NetTopologySuite.Geometries.Geometry)">
- <summary>
- 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.
- </summary>
- <param name="prep">The prepared polygon</param>
- <param name="geom">A test geometry</param>
- <returns>true if the polygon covers the geometry</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Prepared.PreparedPolygonCovers.#ctor(NetTopologySuite.Geometries.Prepared.PreparedPolygon)">
- <summary>
- Creates an instance of this operation.
- </summary>
- <param name="prepPoly">The PreparedPolygon to evaluate</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Prepared.PreparedPolygonCovers.Covers(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests whether this PreparedPolygon <c>covers</c> a given geometry.
- </summary>
- <param name="geom">The test geometry</param>
- <returns>true if the test geometry is covered</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Prepared.PreparedPolygonCovers.FullTopologicalPredicate(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes the full topological <c>covers</c> predicate. Used when short-circuit tests are not conclusive.
- </summary>
- <param name="geom">The test geometry</param>
- <returns>true if this prepared polygon covers the test geometry</returns>
- </member>
- <member name="T:NetTopologySuite.Geometries.Prepared.PreparedPolygonIntersects">
- <summary>
- Computes the <i>intersects</i> spatial relationship predicate
- for <see cref="T:NetTopologySuite.Geometries.Prepared.PreparedPolygon"/>s relative to all other <see cref="T:NetTopologySuite.Geometries.Geometry"/> classes.
- </summary>
- <remarks>Uses short-circuit tests and indexing to improve performance.</remarks>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Geometries.Prepared.PreparedPolygonIntersects.Intersects(NetTopologySuite.Geometries.Prepared.PreparedPolygon,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes the intersects predicate between a <see cref="T:NetTopologySuite.Geometries.Prepared.PreparedPolygon"/>
- and a <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
- </summary>
- <param name="prep">The prepared polygon</param>
- <param name="geom">A test geometry</param>
- <returns>true if the polygon intersects the geometry</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Prepared.PreparedPolygonIntersects.#ctor(NetTopologySuite.Geometries.Prepared.PreparedPolygon)">
- <summary>
- Creates an instance of this operation.
- </summary>
- <param name="prepPoly">The prepared polygon</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Prepared.PreparedPolygonIntersects.Intersects(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests whether this PreparedPolygon intersects a given geometry.
- </summary>
- <param name="geom">The test geometry</param>
- <returns>true if the test geometry intersects</returns>
- </member>
- <member name="T:NetTopologySuite.Geometries.Prepared.PreparedPolygonPredicate">
- <summary>
- A base class for predicate operations on <see cref="T:NetTopologySuite.Geometries.Prepared.PreparedPolygon"/>s.
- </summary>
- <author>mbdavis</author>
- </member>
- <member name="M:NetTopologySuite.Geometries.Prepared.PreparedPolygonPredicate.#ctor(NetTopologySuite.Geometries.Prepared.PreparedPolygon)">
- <summary>
- Creates an instance of this operation.
- </summary>
- <param name="prepPoly">the PreparedPolygon to evaluate</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Prepared.PreparedPolygonPredicate.IsAllTestComponentsInTarget(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests whether all components of the test Geometry are contained in the target geometry.
- </summary>
- <remarks>Handles both linear and point components.</remarks>
- <param name="testGeom">A geometry to test</param>
- <returns>
- true if all components of the argument are contained in the target geometry
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Prepared.PreparedPolygonPredicate.IsAllTestComponentsInTargetInterior(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests whether all components of the test Geometry are contained in the interior of the target geometry.
- </summary>
- <remarks>Handles both linear and point components.</remarks>
- <param name="testGeom">A geometry to test</param>
- <returns>true if all components of the argument are contained in the target geometry interior</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Prepared.PreparedPolygonPredicate.IsAnyTestComponentInTarget(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests whether any component of the test Geometry intersects
- the area of the target geometry.
- Handles test geometries with both linear and point components.
- </summary>
- <param name="testGeom">A geometry to test</param>
- <returns>true if any component of the argument intersects the prepared area geometry</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Prepared.PreparedPolygonPredicate.IsAllTestPointsInTarget(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests whether any point of the test Geometry intersects the interior of the target geometry.
- </summary>
- <remarks>Handles test geometries with both linear and point components.</remarks>
- <param name="testGeom">A geometry to test</param>
- <returns>true if any point of the argument intersects the prepared area geometry</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Prepared.PreparedPolygonPredicate.IsAnyTestPointInTargetInterior(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests whether any point of the test Geometry intersects the interior of the target geometry.
- </summary>
- <param name="testGeom">A geometry to test</param>
- <returns>true if any point of the argument intersects the prepared area geometry interior</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Prepared.PreparedPolygonPredicate.IsAnyTestComponentInTargetInterior(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests whether any component of the test Geometry intersects the interior of the target geometry.
- </summary>
- <remarks>Handles test geometries with both linear and point components.</remarks>
- <param name="testGeom">A geometry to test</param>
- <returns>true if any component of the argument intersects the prepared area geometry interior</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Prepared.PreparedPolygonPredicate.IsAllTestPointsInTargetInterior(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests whether all points of the test Pointal geometry
- are contained in the target geometry.
- </summary>
- <param name="testGeom">A geometry to test</param>
- <returns>true if all points of the argument are contained in the target geometry</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Prepared.PreparedPolygonPredicate.IsAnyTargetComponentInAreaTest(NetTopologySuite.Geometries.Geometry,System.Collections.Generic.IList{NetTopologySuite.Geometries.Coordinate})">
- <summary>
- Tests whether any component of the target geometry intersects the test geometry (which must be an areal geometry)
- </summary>
- <param name="testGeom">The test geometry</param>
- <param name="targetRepPts">The representative points of the target geometry</param>
- <returns>true if any component intersects the areal test geometry</returns>
- </member>
- <member name="T:NetTopologySuite.Geometries.Quadrant">
- <summary>
- Quadrant values
- </summary>
- <remarks>
- The quadants are numbered as follows:
- <para>
- <code>
- 1 - NW | 0 - NE <br/>
- -------+------- <br/>
- 2 - SW | 3 - SE
- </code>
- </para>
- </remarks>
- </member>
- <member name="P:NetTopologySuite.Geometries.Quadrant.Undefined">
- <summary>
- Undefined
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.Quadrant.NE">
- <summary>
- North-East
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.Quadrant.NW">
- <summary>
- North-West
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.Quadrant.SW">
- <summary>
- South-West
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.Quadrant.SE">
- <summary>
- South-East
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.Quadrant.#ctor(System.Int32)">
- <summary>
- Creates a quadrant with t
- </summary>
- <param name="value"></param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Quadrant.#ctor(System.Double,System.Double)">
- <summary>
- Creates a quadrant of a directed line segment (specified as x and y
- displacements, which cannot both be 0).
- </summary>
- <param name="dx"></param>
- <param name="dy"></param>
- <exception cref="T:System.ArgumentException">If the displacements are both 0</exception>
- </member>
- <member name="M:NetTopologySuite.Geometries.Quadrant.#ctor(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Returns the quadrant of a directed line segment from p0 to p1.
- </summary>
- <param name="p0"></param>
- <param name="p1"></param>
- <exception cref="T:System.ArgumentException"> if the points are equal</exception>
- </member>
- <member name="M:NetTopologySuite.Geometries.Quadrant.GetHashCode">
- <inheritdoc cref="M:System.Object.GetHashCode"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Quadrant.Equals(System.Object)">
- <inheritdoc cref="M:System.Object.Equals(System.Object)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Quadrant.ToString">
- <inheritdoc cref="M:System.Object.ToString"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Quadrant.IsOpposite(NetTopologySuite.Geometries.Quadrant)">
- <summary>
- Returns true if the quadrants are 1 and 3, or 2 and 4.
- </summary>
- <param name="quad">A quadrant</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Quadrant.CommonHalfPlane(NetTopologySuite.Geometries.Quadrant,NetTopologySuite.Geometries.Quadrant)">
- <summary>
- Returns the right-hand quadrant of the halfplane defined by the two quadrants,
- or -1 if the quadrants are opposite, or the quadrant if they are identical.
- </summary>
- <param name="quad1"></param>
- <param name="quad2"></param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Quadrant.IsInHalfPlane(NetTopologySuite.Geometries.Quadrant)">
- <summary>
- Returns whether this quadrant lies within the given halfplane (specified
- by its right-hand quadrant).
- </summary>
- <param name="halfPlane"></param>
- </member>
- <member name="P:NetTopologySuite.Geometries.Quadrant.IsNorthern">
- <summary>
- Returns <c>true</c> if the given quadrant is 0 or 1.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.Quadrant.op_Equality(NetTopologySuite.Geometries.Quadrant,NetTopologySuite.Geometries.Quadrant)">
- <summary>
- Equality operator for quadrants
- </summary>
- <param name="lhs">Quadrant value on the left-hand-side</param>
- <param name="rhs">Quadrant value on the right-hand-side</param>
- <returns><c>true</c> if quadrant value of <paramref name="lhs"/> and <paramref name="rhs"/> are equal.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Quadrant.op_Inequality(NetTopologySuite.Geometries.Quadrant,NetTopologySuite.Geometries.Quadrant)">
- <summary>
- Inequality operator for quadrants
- </summary>
- <param name="lhs">Quadrant value on the left-hand-side</param>
- <param name="rhs">Quadrant value on the right-hand-side</param>
- <returns><c>true</c> if quadrant value of <paramref name="lhs"/> and <paramref name="rhs"/> are <b>not</b> equal.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Quadrant.op_GreaterThan(NetTopologySuite.Geometries.Quadrant,NetTopologySuite.Geometries.Quadrant)">
- <summary>
- Greater than (>) operator for quadrants
- </summary>
- <param name="lhs">Quadrant value on the left-hand-side</param>
- <param name="rhs">Quadrant value on the right-hand-side</param>
- <returns><c>true</c> if quadrant value of <paramref name="lhs"/> and <paramref name="rhs"/> are <b>not</b> equal.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Quadrant.op_LessThan(NetTopologySuite.Geometries.Quadrant,NetTopologySuite.Geometries.Quadrant)">
- <summary>
- Less than (<) operator for quadrants
- </summary>
- <param name="lhs">Quadrant value on the left-hand-side</param>
- <param name="rhs">Quadrant value on the right-hand-side</param>
- <returns><c>true</c> if quadrant value of <paramref name="lhs"/> and <paramref name="rhs"/> are <b>not</b> equal.</returns>
- </member>
- <member name="T:NetTopologySuite.Geometries.TopologyException">
- <summary>
- Indicates an invalid or inconsistent topological situation encountered during processing
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.TopologyException.MsgWithCoord(System.String,NetTopologySuite.Geometries.Coordinate)">
- <summary>
-
- </summary>
- <param name="msg"></param>
- <param name="pt"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.TopologyException.#ctor(System.String)">
- <summary>
-
- </summary>
- <param name="msg"></param>
- </member>
- <member name="M:NetTopologySuite.Geometries.TopologyException.#ctor(System.String,NetTopologySuite.Geometries.Coordinate)">
- <summary>
-
- </summary>
- <param name="msg"></param>
- <param name="pt"></param>
- </member>
- <member name="P:NetTopologySuite.Geometries.TopologyException.Coordinate">
- <summary>
-
- </summary>
- </member>
- <member name="T:NetTopologySuite.Geometries.Triangle">
- <summary>
- Represents a planar triangle, and provides methods for calculating various
- properties of triangles.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.Triangle.P0">
- <summary>
- A corner point of the triangle
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.Triangle.P1">
- <summary>
- A corner point of the triangle
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.Triangle.P2">
- <summary>
- A corner point of the triangle
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.Triangle.IsAcute(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Tests whether a triangle is acute. A triangle is acute if all interior
- angles are acute. This is a strict test - right triangles will return
- <tt>false</tt> A triangle which is not acute is either right or obtuse.
- <para/>
- Note: this implementation is not robust for angles very close to 90 degrees.
- </summary>
- <param name="a">A vertex of the triangle</param>
- <param name="b">A vertex of the triangle</param>
- <param name="c">A vertex of the triangle</param>
- <returns>True if the triangle is acute.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Triangle.IsCCW(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Tests whether a triangle is oriented counter-clockwise.
- </summary>
- <param name="a">A vertex of the triangle</param>
- <param name="b">A vertex of the triangle</param>
- <param name="c">A vertex of the triangle</param>
- <returns><c>true</c> if the triangle orientation is counter-clockwise</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Triangle.Intersects(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Tests whether a triangle intersects a point.
- </summary>
- <param name="a">A vertex of the triangle</param>
- <param name="b">A vertex of the triangle</param>
- <param name="c">A vertex of the triangle</param>
- <param name="p">The point to test</param>
- <returns><c>true</c> if the triangle intersects the point</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Triangle.PerpendicularBisector(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Computes the line which is the perpendicular bisector of the
- </summary>
- <param name="a">A point</param>
- <param name="b">Another point</param>
- <returns>The perpendicular bisector, as an HCoordinate line segment a-b.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Triangle.Circumradius(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Computes the radius of the circumcircle of a triangle.
- <para/>
- Formula is as per <a href="https://math.stackexchange.com/a/3610959"/>
- </summary>
- <param name="a">A vertex of the triangle</param>
- <param name="b">A vertex of the triangle</param>
- <param name="c">A vertex of the triangle</param>
- <returns>The circumradius of the triangle</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Triangle.Circumcentre(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>Computes the circumcentre of a triangle.</summary>
- <remarks>
- The circumcentre is the centre of the circumcircle,
- the smallest circle which encloses the triangle.
- It is also the common intersection point of the
- perpendicular bisectors of the sides of the triangle,
- and is the only point which has equal distance to all three
- vertices of the triangle.
- <para>
- The circumcentre does not necessarily lie within the triangle. For example,
- the circumcentre of an obtuse isosceles triangle lies outside the triangle.
- </para>
- <para>This method uses an algorithm due to J.R.Shewchuk which uses normalization
- to the origin to improve the accuracy of computation. (See <i>Lecture Notes
- on Geometric Robustness</i>, Jonathan Richard Shewchuk, 1999).
- </para>
- </remarks>
- <param name="a">A vertex of the triangle</param>
- <param name="b">A vertex of the triangle</param>
- <param name="c">A vertex of the triangle</param>
- <returns>The circumcentre of the triangle</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Triangle.CircumcentreDD(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Computes the circumcentre of a triangle. The circumcentre is the centre of
- the circumcircle, the smallest circle which encloses the triangle.It is
- also the common intersection point of the perpendicular bisectors of the
- sides of the triangle, and is the only point which has equal distance to
- all three vertices of the triangle.
- <para/>
- The circumcentre does not necessarily lie within the triangle. For example,
- the circumcentre of an obtuse isosceles triangle lies outside the triangle.
- <para/>
- This method uses <see cref="T:NetTopologySuite.Mathematics.DD"/> extended-precision arithmetic to
- provide more accurate results than
- <see cref="M:NetTopologySuite.Geometries.Triangle.Circumcentre(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)"/>
- </summary>
- <param name="a">A vertex of the triangle</param>
- <param name="b">A vertex of the triangle</param>
- <param name="c">A vertex of the triangle</param>
- <returns>The circumcentre of the triangle</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Triangle.Det(System.Double,System.Double,System.Double,System.Double)">
- <summary>
- Computes the determinant of a 2x2 matrix. Uses standard double-precision
- arithmetic, so is susceptible to round-off error.
- </summary>
- <param name="m00">the [0,0] entry of the matrix</param>
- <param name="m01">the [0,1] entry of the matrix</param>
- <param name="m10">the [1,0] entry of the matrix</param>
- <param name="m11">the [1,1] entry of the matrix</param>
- <returns>The determinant</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Triangle.InCentre(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Computes the incentre of a triangle.
- </summary>
- <remarks>
- The <c>InCentre</c> of a triangle is the point which is equidistant
- from the sides of the triangle.
- It is also the point at which the bisectors of the triangle's angles meet.
- It is the centre of the triangle's <c>InCircle</c>, which is the unique circle
- that is tangent to each of the triangle's three sides.
- </remarks>
- <param name="a">A vertex of the triangle</param>
- <param name="b">A vertex of the triangle</param>
- <param name="c">A vertex of the triangle</param>
- <returns>The point which is the incentre of the triangle</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Triangle.Centroid(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>Computes the centroid (centre of mass) of a triangle.</summary>
- <remarks>
- This is also the point at which the triangle's three
- medians intersect (a triangle median is the segment from a vertex of the triangle to the
- midpoint of the opposite side).
- The centroid divides each median in a ratio of 2:1.
- The centroid always lies within the triangle.
- </remarks>
- <param name="a">A vertex of the triangle</param>
- <param name="b">A vertex of the triangle</param>
- <param name="c">A vertex of the triangle</param>
- <returns>The centroid of the triangle</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Triangle.Length(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Compute the length of the perimeter of a triangle
- </summary>
- <param name="a">A vertex of the triangle</param>
- <param name="b">A vertex of the triangle</param>
- <param name="c">A vertex of the triangle</param>
- <returns>The length of the perimeter of the triangle</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Triangle.LongestSideLength(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>Computes the length of the longest side of a triangle</summary>
- <param name="a">A vertex of the triangle</param>
- <param name="b">A vertex of the triangle</param>
- <param name="c">A vertex of the triangle</param>
- <returns>The length of the longest side of the triangle</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Triangle.AngleBisector(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>Computes the point at which the bisector of the angle ABC cuts the segment AC.</summary>
- <param name="a">A vertex of the triangle</param>
- <param name="b">A vertex of the triangle</param>
- <param name="c">A vertex of the triangle</param>
- <returns>The angle bisector cut point</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Triangle.Area(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Computes the 2D area of a triangle.
- The area value is always non-negative.
- </summary>
- <param name="a">A vertex of the triangle</param>
- <param name="b">A vertex of the triangle</param>
- <param name="c">A vertex of the triangle</param>
- <returns>The area of the triangle</returns>
- <seealso cref="M:NetTopologySuite.Geometries.Triangle.SignedArea(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Triangle.SignedArea(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Computes the signed 2D area of a triangle.
- </summary>
- <remarks>
- <para>
- The area value is positive if the triangle is oriented CW,
- and negative if it is oriented CCW.
- </para>
- <para>
- The signed area value can be used to determine point orientation, but
- the implementation in this method is susceptible to round-off errors.
- Use <see cref="M:NetTopologySuite.Algorithm.Orientation.Index(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)"/> for robust orientation
- calculation.
- </para>
- </remarks>
- <param name="a">A vertex of the triangle</param>
- <param name="b">A vertex of the triangle</param>
- <param name="c">A vertex of the triangle</param>
- <returns>The area of the triangle</returns>
- <seealso cref="M:NetTopologySuite.Geometries.Triangle.Area(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)"/>
- <seealso cref="M:NetTopologySuite.Algorithm.Orientation.Index(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Triangle.Area3D(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Computes the 3D area of a triangle.
- The value computed is always non-negative.
- </summary>
- <param name="a">A vertex of the triangle</param>
- <param name="b">A vertex of the triangle</param>
- <param name="c">A vertex of the triangle</param>
- <returns>The 3D area of the triangle</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Triangle.InterpolateZ(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Computes the Z-value (elevation) of an XY point
- on a three-dimensional plane defined by a triangle
- whose vertices have Z-values.
- The defining triangle must not be degenerate
- (in other words, the triangle must enclose a
- non-zero area),
- and must not be parallel to the Z-axis.
- <para/>
- This method can be used to interpolate
- the Z-value of a point inside a triangle
- (for example, of a TIN facet with elevations on the vertices).
- </summary>
- <param name="p">The point to compute the Z-value of</param>
- <param name="v0">A vertex of a triangle, with a Z ordinate</param>
- <param name="v1">A vertex of a triangle, with a Z ordinate</param>
- <param name="v2">A vertex of a triangle, with a Z ordinate</param>
- <returns>The computed Z-value (elevation) of the point</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Triangle.#ctor(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Creates a new triangle with the given vertices.
- </summary>
- <param name="p0">A vertex</param>
- <param name="p1">A vertex</param>
- <param name="p2">A vertex</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Triangle.InCentre">
- <summary>
- Computes the <c>InCentre</c> of this triangle
- </summary>
- <remarks>The <c>InCentre</c> of a triangle is the point which is equidistant
- from the sides of the triangle.
- This is also the point at which the bisectors of the angles meet.
- It is the centre of the triangle's <c>InCircle</c>,
- which is the unique circle that is tangent to each of the triangle's three sides.
- </remarks>
- <returns>
- The point which is the InCentre of the triangle.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Triangle.IsAcute">
- <summary>
- Tests whether this triangle is acute. A triangle is acute if all interior
- angles are acute. This is a strict test - right triangles will return
- <tt>false</tt> A triangle which is not acute is either right or obtuse.
- <para/>
- Note: this implementation is not robust for angles very close to 90
- degrees.
- </summary>
- <returns><c>true</c> if this triangle is acute</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Triangle.IsCCW">
- <summary>
- Tests whether this triangle is oriented counter-clockwise.
- </summary>
- <returns><c>true</c> if the triangle orientation is counter-clockwise</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Triangle.Circumcentre">
- <summary>
- Computes the circumcentre of this triangle. The circumcentre is the centre
- of the circumcircle, the smallest circle which passes through all the triangle vertices.
- It is also the common intersection point of the perpendicular bisectors of the
- sides of the triangle, and is the only point which has equal distance to
- all three vertices of the triangle.
- <para/>
- The circumcentre does not necessarily lie within the triangle.
- <para/>
- This method uses an algorithm due to J.R.Shewchuk which uses normalization
- to the origin to improve the accuracy of computation. (See <i>Lecture Notes
- on Geometric Robustness</i>, Jonathan Richard Shewchuk, 1999).
- </summary>
- <returns>The circumcentre of this triangle</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Triangle.Circumradius">
- <summary>
- Computes the radius of the circumcircle of a triangle.
- </summary>
- <returns>The triangle circumradius</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Triangle.Centroid">
- <summary>
- Computes the centroid (centre of mass) of this triangle. This is also the
- point at which the triangle's three medians intersect (a triangle median is
- the segment from a vertex of the triangle to the midpoint of the opposite
- side). The centroid divides each median in a ratio of 2:1.
- <para/>
- The centroid always lies within the triangle.
- </summary>
- <returns>The centroid of this triangle</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Triangle.Length">
- <summary>
- Computes the length of the perimeter of this triangle.
- </summary>
- <returns>The length of the perimeter</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Triangle.LongestSideLength">
- <summary>
- Computes the length of the longest side of this triangle
- </summary>
- <returns>The length of the longest side of this triangle</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Triangle.Area">
- <summary>
- Computes the 2D area of this triangle. The area value is always
- non-negative.
- </summary>
- <returns>The area of this triangle</returns>
- <seealso cref="M:NetTopologySuite.Geometries.Triangle.SignedArea"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Triangle.SignedArea">
- <summary>
- Computes the signed 2D area of this triangle. The area value is positive if
- the triangle is oriented CW, and negative if it is oriented CCW.
- <para/>
- The signed area value can be used to determine point orientation, but the
- implementation in this method is susceptible to round-off errors. Use
- <see cref="M:NetTopologySuite.Algorithm.Orientation.Index(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)"/>
- for robust orientation calculation.
- </summary>
- <returns>The signed 2D area of this triangle</returns>
- <seealso cref="M:NetTopologySuite.Algorithm.Orientation.Index(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Triangle.Area3D">
- <summary>
- Computes the 3D area of this triangle. The value computed is always
- non-negative.
- </summary>
- <returns>The 3D area of this triangle</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Triangle.InterpolateZ(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Computes the Z-value (elevation) of an XY point on a three-dimensional
- plane defined by this triangle (whose vertices must have Z-values). This
- triangle must not be degenerate (in other words, the triangle must enclose
- a non-zero area), and must not be parallel to the Z-axis.
- <para/>
- This method can be used to interpolate the Z-value of a point inside this
- triangle (for example, of a TIN facet with elevations on the vertices).
- </summary>
- <param name="p">The point to compute the Z-value of</param>
- <returns>The computed Z-value (elevation) of the point</returns>
- </member>
- <member name="T:NetTopologySuite.Geometries.Utilities.AffineTransformation">
- <summary>
- Represents an affine transformation on the 2D Cartesian plane.
- </summary>
- <remarks>
- <para>
- It can be used to transform a <see cref="T:NetTopologySuite.Geometries.Coordinate"/> or <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
- An affine transformation is a mapping of the 2D plane into itself
- via a series of transformations of the following basic types:
- <ul>
- <li>reflection (through a line)</li>
- <li>rotation (around the origin)</li>
- <li>scaling (relative to the origin)</li>
- <li>shearing (in both the X and Y directions)</li>
- <li>translation</li>
- </ul>
- </para>
- <para>
- In general, affine transformations preserve straightness and parallel lines,
- but do not preserve distance or shape.
- </para>
- <para>
- An affine transformation can be represented by a 3x3
- matrix in the following form:
- <blockquote><code>
- T = | m00 m01 m02 |<br/>
- | m10 m11 m12 |<br/>
- | 0 0 1 |
- </code></blockquote>
- A coordinate P = (x, y) can be transformed to a new coordinate P' = (x', y')
- by representing it as a 3x1 matrix and using matrix multiplication to compute:
- <blockquote><code>
- | x' | = T x | x |<br/>
- | y' | | y |<br/>
- | 1 | | 1 |
- </code></blockquote>
- </para>
- <h3>Transformation Composition</h3>
- <para>
- Affine transformations can be composed using the <see cref="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.Compose(NetTopologySuite.Geometries.Utilities.AffineTransformation)"/> method.
- Composition is computed via multiplication of the
- transformation matrices, and is defined as:
- <blockquote><pre>
- A.compose(B) = T<sub>B</sub> x T<sub>A</sub>
- </pre></blockquote>
- </para>
- <para>
- This produces a transformation whose effect is that of A followed by B.
- 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)"/>,
- <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)"/>
- have the effect of composing a transformation of that type with
- the transformation they are invoked on.
- The composition of transformations is in general <i>not</i> commutative.
- </para>
- <h3>Transformation Inversion</h3>
- <para>
- Affine transformations may be invertible or non-invertible.
- If a transformation is invertible, then there exists
- an inverse transformation which when composed produces
- the identity transformation.
- The <see cref="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.GetInverse"/> method
- computes the inverse of a transformation, if one exists.
- </para>
- <para>
- @author Martin Davis
- </para>
- </remarks>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.ReflectionInstance(System.Double,System.Double,System.Double,System.Double)">
- <summary>
- Creates a transformation for a reflection about the
- line (x0,y0) - (x1,y1).
- </summary>
- <param name="x0"> the x-ordinate of a point on the reflection line</param>
- <param name="y0"> the y-ordinate of a point on the reflection line</param>
- <param name="x1"> the x-ordinate of a another point on the reflection line</param>
- <param name="y1"> the y-ordinate of a another point on the reflection line</param>
- <returns> a transformation for the reflection</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.ReflectionInstance(System.Double,System.Double)">
- <summary>
- Creates a transformation for a reflection about the
- line (0,0) - (x,y).
- </summary>
- <param name="x"> the x-ordinate of a point on the reflection line</param>
- <param name="y"> the y-ordinate of a point on the reflection line</param>
- <returns> a transformation for the reflection</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.RotationInstance(System.Double)">
- <summary>
- Creates a transformation for a rotation
- about the origin
- by an angle <i>theta</i>.
- </summary>
- <remarks>
- Positive angles correspond to a rotation
- in the counter-clockwise direction.
- </remarks>
- <param name="theta"> the rotation angle, in radians</param>
- <returns> a transformation for the rotation</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.RotationInstance(System.Double,System.Double)">
- <summary>
- Creates a transformation for a rotation
- by an angle <i>theta</i>,
- specified by the sine and cosine of the angle.
- </summary>
- <remarks>
- This allows providing exact values for sin(theta) and cos(theta)
- for the common case of rotations of multiples of quarter-circles.
- </remarks>
- <param name="sinTheta"> the sine of the rotation angle</param>
- <param name="cosTheta"> the cosine of the rotation angle</param>
- <returns> a transformation for the rotation</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.RotationInstance(System.Double,System.Double,System.Double)">
- <summary>
- Creates a transformation for a rotation
- about the point (x,y) by an angle <i>theta</i>.
- </summary>
- <remarks>
- Positive angles correspond to a rotation
- in the counter-clockwise direction.
- </remarks>
- <param name="theta"> the rotation angle, in radians</param>
- <param name="x"> the x-ordinate of the rotation point</param>
- <param name="y"> the y-ordinate of the rotation point</param>
- <returns> a transformation for the rotation</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.RotationInstance(System.Double,System.Double,System.Double,System.Double)">
- <summary>
- Creates a transformation for a rotation
- about the point (x,y) by an angle <i>theta</i>,
- specified by the sine and cosine of the angle.
- </summary>
- <remarks>
- This allows providing exact values for sin(theta) and cos(theta)
- for the common case of rotations of multiples of quarter-circles.
- </remarks>
- <param name="sinTheta"> the sine of the rotation angle</param>
- <param name="cosTheta"> the cosine of the rotation angle</param>
- <param name="x"> the x-ordinate of the rotation point</param>
- <param name="y"> the y-ordinate of the rotation point</param>
- <returns> a transformation for the rotation</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.ScaleInstance(System.Double,System.Double)">
- <summary>
- Creates a transformation for a scaling relative to the origin.
- </summary>
- <param name="xScale"> the value to scale by in the x direction</param>
- <param name="yScale"> the value to scale by in the y direction</param>
- <returns> a transformation for the scaling</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.ScaleInstance(System.Double,System.Double,System.Double,System.Double)">
- <summary>
- Creates a transformation for a scaling relative to the point (x,y).
- </summary>
- <param name="xScale">The value to scale by in the x direction</param>
- <param name="yScale">The value to scale by in the y direction</param>
- <param name="x">The x-ordinate of the point to scale around</param>
- <param name="y">The y-ordinate of the point to scale around</param>
- <returns>A transformation for the scaling</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.ShearInstance(System.Double,System.Double)">
- <summary>
- Creates a transformation for a shear.
- </summary>
- <param name="xShear"> the value to shear by in the x direction</param>
- <param name="yShear"> the value to shear by in the y direction</param>
- <returns> a transformation for the shear</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.TranslationInstance(System.Double,System.Double)">
- <summary>
- Creates a transformation for a translation.
- </summary>
- <param name="x"> the value to translate by in the x direction</param>
- <param name="y"> the value to translate by in the y direction</param>
- <returns> a transformation for the translation</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.#ctor">
- <summary>
- Constructs a new identity transformation
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.#ctor(System.Double[])">
- <summary>
- Constructs a new transformation whose
- matrix has the specified values.
- </summary>
- <param name="matrix"> an array containing the 6 values { m00, m01, m02, m10, m11, m12 }</param>
- <exception cref="T:System.NullReferenceException"> if matrix is null</exception>
- <exception cref="T:System.IndexOutOfRangeException"> if matrix is too small</exception>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.#ctor(System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)">
- <summary>
- Constructs a new transformation whose
- matrix has the specified values.
- </summary>
- <param name="m00"> the entry for the [0, 0] element in the transformation matrix</param>
- <param name="m01"> the entry for the [0, 1] element in the transformation matrix</param>
- <param name="m02"> the entry for the [0, 2] element in the transformation matrix</param>
- <param name="m10"> the entry for the [1, 0] element in the transformation matrix</param>
- <param name="m11"> the entry for the [1, 1] element in the transformation matrix</param>
- <param name="m12"> the entry for the [1, 2] element in the transformation matrix</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.#ctor(NetTopologySuite.Geometries.Utilities.AffineTransformation)">
- <summary>
- Constructs a transformation which is
- a copy of the given one.
- </summary>
- <param name="trans"> the transformation to copy</param>
- </member>
- <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)">
- <summary>
- Constructs a transformation
- which maps the given source
- points into the given destination points.
- </summary>
- <param name="src0"> source point 0</param>
- <param name="src1"> source point 1</param>
- <param name="src2"> source point 2</param>
- <param name="dest0"> the mapped point for source point 0</param>
- <param name="dest1"> the mapped point for source point 1</param>
- <param name="dest2"> the mapped point for source point 2</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.SetToIdentity">
- <summary>
- Sets this transformation to be the identity transformation.
- </summary>
- <remarks>
- The identity transformation has the matrix:
- <blockquote><code>
- | 1 0 0 |<br/>
- | 0 1 0 |<br/>
- | 0 0 1 |
- </code></blockquote>
- </remarks>
- <returns> this transformation, with an updated matrix</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.SetTransformation(System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)">
- <summary>
- Sets this transformation's matrix to have the given values.
- </summary>
- <param name="m00"> the entry for the [0, 0] element in the transformation matrix</param>
- <param name="m01"> the entry for the [0, 1] element in the transformation matrix</param>
- <param name="m02"> the entry for the [0, 2] element in the transformation matrix</param>
- <param name="m10"> the entry for the [1, 0] element in the transformation matrix</param>
- <param name="m11"> the entry for the [1, 1] element in the transformation matrix</param>
- <param name="m12"> the entry for the [1, 2] element in the transformation matrix</param>
- <returns> this transformation, with an updated matrix</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.SetTransformation(NetTopologySuite.Geometries.Utilities.AffineTransformation)">
- <summary>
- Sets this transformation to be a copy of the given one
- </summary>
- <param name="trans"> a transformation to copy</param>
- <returns> this transformation, with an updated matrix</returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.Utilities.AffineTransformation.MatrixEntries">
- <summary>
- Gets an array containing the entries
- of the transformation matrix.
- </summary>
- <remarks>
- Only the 6 non-trivial entries are returned,
- in the sequence:
- <pre>
- m00, m01, m02, m10, m11, m12
- </pre>
- </remarks>
- <returns> an array of length 6</returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.Utilities.AffineTransformation.Determinant">
- <summary>
- Computes the determinant of the transformation matrix.
- </summary>
- <remarks>
- <para>
- The determinant is computed as:
- <blockquote><code>
- | m00 m01 m02 |<br/>
- | m10 m11 m12 | = m00 * m11 - m01 * m10<br/>
- | 0 0 1 |
- </code></blockquote>
- </para>
- <para>
- If the determinant is zero,
- the transform is singular (not invertible),
- and operations which attempt to compute
- an inverse will throw a <see cref="T:NetTopologySuite.Geometries.Utilities.NoninvertibleTransformationException"/>.
- </para>
- </remarks>
- <returns> the determinant of the transformation</returns>
- <see cref="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.GetInverse" />
-
- <returns>The determinant of the transformation</returns>
- <see cref="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.GetInverse"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.GetInverse">
- <summary>
- Computes the inverse of this transformation, if one
- exists.
- </summary>
- <remarks>
- <para>
- The inverse is the transformation which when
- composed with this one produces the identity
- transformation.
- A transformation has an inverse if and only if it
- is not singular (i.e. its
- determinant is non-zero).
- Geometrically, an transformation is non-invertible
- if it maps the plane to a line or a point.
- If no inverse exists this method
- will throw a <see cref="T:NetTopologySuite.Geometries.Utilities.NoninvertibleTransformationException"/>.
- </para>
- <para>
- The matrix of the inverse is equal to the
- inverse of the matrix for the transformation.
- It is computed as follows:
- <blockquote><code>
- 1
- inverse(A) = --- x adjoint(A)
- det
-
-
- = 1 | m11 -m01 m01*m12-m02*m11 |
- --- x | -m10 m00 -m00*m12+m10*m02 |
- det | 0 0 m00*m11-m10*m01 |
-
-
-
- = | m11/det -m01/det m01*m12-m02*m11/det |
- | -m10/det m00/det -m00*m12+m10*m02/det |
- | 0 0 1 |
- </code></blockquote>
- </para>
- </remarks>
- <returns>A new inverse transformation</returns>
- <see cref="P:NetTopologySuite.Geometries.Utilities.AffineTransformation.Determinant"/>
- <exception cref="T:NetTopologySuite.Geometries.Utilities.NoninvertibleTransformationException"></exception>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.SetToReflectionBasic(System.Double,System.Double,System.Double,System.Double)">
- <summary>
- Explicitly computes the math for a reflection. May not work.
- </summary>
- <param name="x0">The x-ordinate of one point on the reflection line</param>
- <param name="y0">The y-ordinate of one point on the reflection line</param>
- <param name="x1">The x-ordinate of another point on the reflection line</param>
- <param name="y1">The y-ordinate of another point on the reflection line</param>
- <returns>This transformation with an updated matrix</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.SetToReflection(System.Double,System.Double,System.Double,System.Double)">
- <summary>
- Sets this transformation to be a reflection about the line defined by a line <tt>(x0,y0) - (x1,y1)</tt>.
- </summary>
- <param name="x0">The x-ordinate of one point on the reflection line</param>
- <param name="y0">The y-ordinate of one point on the reflection line</param>
- <param name="x1">The x-ordinate of another point on the reflection line</param>
- <param name="y1">The y-ordinate of another point on the reflection line</param>
- <returns>This transformation with an updated matrix</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.SetToReflection(System.Double,System.Double)">
- <summary>
- Sets this transformation to be a reflection
- about the line defined by vector (x,y).
- </summary>
- <remarks>
- The transformation for a reflection
- is computed by:
- <blockquote><code>
- d = sqrt(x<sup>2</sup> + y<sup>2</sup>)
- sin = x / d;
- cos = x / d;
- T<sub>ref</sub> = T<sub>rot(sin, cos)</sub> x T<sub>scale(1, -1)</sub> x T<sub>rot(-sin, cos)</sub>
- </code></blockquote>
- </remarks>
- <param name="x"> the x-component of the reflection line vector</param>
- <param name="y"> the y-component of the reflection line vector</param>
- <returns> this transformation, with an updated matrix</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.SetToRotation(System.Double)">
- <summary>
- Sets this transformation to be a rotation around the orign.
- </summary>
- <remarks>
- A positive rotation angle corresponds
- to a counter-clockwise rotation.
- The transformation matrix for a rotation
- by an angle <c>theta</c>
- has the value:
- <blockquote><pre>
- | cos(theta) -sin(theta) 0 |
- | sin(theta) cos(theta) 0 |
- | 0 0 1 |
- </pre></blockquote>
- </remarks>
- <param name="theta"> the rotation angle, in radians</param>
- <returns> this transformation, with an updated matrix</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.SetToRotation(System.Double,System.Double)">
- <summary>
- Sets this transformation to be a rotation around the origin
- by specifying the sin and cos of the rotation angle directly.
- </summary>
- <remarks>
- The transformation matrix for the rotation
- has the value:
- <blockquote><pre>
- | cosTheta -sinTheta 0 |
- | sinTheta cosTheta 0 |
- | 0 0 1 |
- </pre></blockquote>
- </remarks>
- <param name="sinTheta"> the sine of the rotation angle</param>
- <param name="cosTheta"> the cosine of the rotation angle</param>
- <returns> this transformation, with an updated matrix</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.SetToRotation(System.Double,System.Double,System.Double)">
- <summary>
- Sets this transformation to be a rotation
- around a given point (x,y).
- </summary>
- <remarks>
- A positive rotation angle corresponds
- to a counter-clockwise rotation.
- The transformation matrix for a rotation
- by an angle <paramref name="theta" />
- has the value:
- <blockquote><pre>
- | cosTheta -sinTheta x-x*cos+y*sin |
- | sinTheta cosTheta y-x*sin-y*cos |
- | 0 0 1 |
- </pre></blockquote>
- </remarks>
- <param name="theta"> the rotation angle, in radians</param>
- <param name="x"> the x-ordinate of the rotation point</param>
- <param name="y"> the y-ordinate of the rotation point</param>
- <returns> this transformation, with an updated matrix</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.SetToRotation(System.Double,System.Double,System.Double,System.Double)">
- <summary>
- Sets this transformation to be a rotation
- around a given point (x,y)
- by specifying the sin and cos of the rotation angle directly.
- </summary>
- <remarks>
- The transformation matrix for the rotation
- has the value:
- <blockquote><pre>
- | cosTheta -sinTheta x-x*cos+y*sin |
- | sinTheta cosTheta y-x*sin-y*cos |
- | 0 0 1 |
- </pre></blockquote>
- </remarks>
- <param name="sinTheta"> the sine of the rotation angle</param>
- <param name="cosTheta"> the cosine of the rotation angle</param>
- <param name="x"> the x-ordinate of the rotation point</param>
- <param name="y"> the y-ordinate of the rotation point</param>
- <returns> this transformation, with an updated matrix</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.SetToScale(System.Double,System.Double)">
- <summary>
- Sets this transformation to be a scaling.
- </summary>
- <remarks>
- The transformation matrix for a scale
- has the value:
- <blockquote><pre>
- | xScale 0 dx |
- | 0 yScale dy |
- | 0 0 1 |
- </pre></blockquote>
- </remarks>
- <param name="xScale"> the amount to scale x-ordinates by</param>
- <param name="yScale"> the amount to scale y-ordinates by</param>
- <returns> this transformation, with an updated matrix</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.SetToShear(System.Double,System.Double)">
- <summary>
- Sets this transformation to be a shear.
- </summary>
- <remarks>
- The transformation matrix for a shear
- has the value:
- <blockquote><pre>
- | 1 xShear 0 |
- | yShear 1 0 |
- | 0 0 1 |
- </pre></blockquote>
- Note that a shear of (1, 1) is <i>not</i>
- equal to shear(1, 0) composed with shear(0, 1).
- Instead, shear(1, 1) corresponds to a mapping onto the
- line x = y.
- </remarks>
- <param name="xShear"> the x component to shear by</param>
- <param name="yShear"> the y component to shear by</param>
- <returns> this transformation, with an updated matrix</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.SetToTranslation(System.Double,System.Double)">
- <summary>
- Sets this transformation to be a translation.
- </summary>
- <remarks>
- For a translation by the vector (x, y)
- the transformation matrix has the value:
- <blockquote><pre>
- | 1 0 dx |
- | 1 0 dy |
- | 0 0 1 |
- </pre></blockquote>
- </remarks>
- <param name="dx"> the x component to translate by</param>
- <param name="dy"> the y component to translate by</param>
- <returns> this transformation, with an updated matrix</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.Reflect(System.Double,System.Double,System.Double,System.Double)">
- <summary>
- Updates the value of this transformation
- to that of a reflection transformation composed
- with the current value.
- </summary>
- <param name="x0"> the x-ordinate of a point on the line to reflect around</param>
- <param name="y0"> the y-ordinate of a point on the line to reflect around</param>
- <param name="x1"> the x-ordinate of a point on the line to reflect around</param>
- <param name="y1"> the y-ordinate of a point on the line to reflect around</param>
- <returns> this transformation, with an updated matrix</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.Reflect(System.Double,System.Double)">
- <summary>
- Updates the value of this transformation
- to that of a reflection transformation composed
- with the current value.
- </summary>
- <param name="x"> the x-ordinate of the line to reflect around</param>
- <param name="y"> the y-ordinate of the line to reflect around</param>
- <returns> this transformation, with an updated matrix</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.Rotate(System.Double)">
- <summary>
- Updates the value of this transformation
- to that of a rotation transformation composed
- with the current value.
- </summary>
- <remarks>
- Positive angles correspond to a rotation
- in the counter-clockwise direction.
- </remarks>
- <param name="theta"> the angle to rotate by in radians</param>
- <returns> this transformation, with an updated matrix</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.Rotate(System.Double,System.Double)">
- <summary>
- Updates the value of this transformation
- to that of a rotation around the origin composed
- with the current value,
- with the sin and cos of the rotation angle specified directly.
- </summary>
- <param name="sinTheta"> the sine of the angle to rotate by</param>
- <param name="cosTheta"> the cosine of the angle to rotate by</param>
- <returns> this transformation, with an updated matrix</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.Rotate(System.Double,System.Double,System.Double)">
- <summary>
- Updates the value of this transformation
- to that of a rotation around a given point composed
- with the current value.
- </summary>
- <remarks>
- Positive angles correspond to a rotation
- in the counter-clockwise direction.
- </remarks>
- <param name="theta"> the angle to rotate by, in radians</param>
- <param name="x"> the x-ordinate of the rotation point</param>
- <param name="y"> the y-ordinate of the rotation point</param>
- <returns> this transformation, with an updated matrix</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.Rotate(System.Double,System.Double,System.Double,System.Double)">
- <summary>
- Updates the value of this transformation
- to that of a rotation around a given point composed
- with the current value,
- with the sin and cos of the rotation angle specified directly.
- </summary>
- <param name="sinTheta"> the sine of the angle to rotate by</param>
- <param name="cosTheta"> the cosine of the angle to rotate by</param>
- <param name="x"> the x-ordinate of the rotation point</param>
- <param name="y"> the y-ordinate of the rotation point</param>
- <returns> this transformation, with an updated matrix</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.Scale(System.Double,System.Double)">
- <summary>
- Updates the value of this transformation
- to that of a scale transformation composed
- with the current value.
- </summary>
- <param name="xScale"> the value to scale by in the x direction</param>
- <param name="yScale"> the value to scale by in the y direction</param>
- <returns> this transformation, with an updated matrix</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.Shear(System.Double,System.Double)">
- <summary>
- Updates the value of this transformation
- to that of a shear transformation composed
- with the current value.
- </summary>
- <param name="xShear"> the value to shear by in the x direction</param>
- <param name="yShear"> the value to shear by in the y direction</param>
- <returns> this transformation, with an updated matrix</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.Translate(System.Double,System.Double)">
- <summary>
- Updates the value of this transformation
- to that of a translation transformation composed
- with the current value.
- </summary>
- <param name="x"> the value to translate by in the x direction</param>
- <param name="y"> the value to translate by in the y direction</param>
- <returns> this transformation, with an updated matrix</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.Compose(NetTopologySuite.Geometries.Utilities.AffineTransformation)">
- <summary>
- Updates this transformation to be
- the composition of this transformation with the given <see cref="T:NetTopologySuite.Geometries.Utilities.AffineTransformation" />.
- </summary>
- <remarks>
- This produces a transformation whose effect
- is equal to applying this transformation
- followed by the argument transformation.
- Mathematically,
- <blockquote><pre>
- A.compose(B) = T<sub>B</sub> x T<sub>A</sub>
- </pre></blockquote>
- </remarks>
- <param name="trans"> an affine transformation</param>
- <returns> this transformation, with an updated matrix</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.ComposeBefore(NetTopologySuite.Geometries.Utilities.AffineTransformation)">
- <summary>
- Updates this transformation to be the composition
- of a given <see cref="T:NetTopologySuite.Geometries.Utilities.AffineTransformation" /> with this transformation.
- </summary>
- <remarks>
- This produces a transformation whose effect
- is equal to applying the argument transformation
- followed by this transformation.
- Mathematically,
- <blockquote><pre>
- A.composeBefore(B) = T<sub>A</sub> x T<sub>B</sub>
- </pre></blockquote>
- </remarks>
- <param name="trans"> an affine transformation</param>
- <returns> this transformation, with an updated matrix</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.Transform(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Applies this transformation to the <paramref name="src" /> coordinate
- and places the results in the <paramref name="dest" /> coordinate
- (which may be the same as the source).
- </summary>
- <param name="src"> the coordinate to transform</param>
- <param name="dest"> the coordinate to accept the results</param>
- <returns> the <c>dest</c> coordinate</returns>
-
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.Transform(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Creates a new <see cref="T:NetTopologySuite.Geometries.Geometry"/> which is the result of this transformation applied to the input Geometry.
- </summary>
- <param name="g">A <c>Geometry</c></param>
- <returns>The transformed Geometry</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.Transform(NetTopologySuite.Geometries.CoordinateSequence,System.Int32)">
- <summary>
- Applies this transformation to the i'th coordinate
- in the given CoordinateSequence.
- </summary>
- <param name="seq"> a <c>CoordinateSequence</c></param>
- <param name="i"> the index of the coordinate to transform</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.Filter(NetTopologySuite.Geometries.CoordinateSequence,System.Int32)">
- <summary>
- Transforms the i'th coordinate in the input sequence
- </summary>
- <param name="seq">A <c>CoordinateSequence</c></param>
- <param name="i">The index of the coordinate to transform</param>
- </member>
- <member name="P:NetTopologySuite.Geometries.Utilities.AffineTransformation.Done">
- <summary>
- Reports that this filter should continue to be executed until
- all coordinates have been transformed.
- </summary>
- <returns> false</returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.Utilities.AffineTransformation.IsIdentity">
- <summary>Tests if this transformation is the identity transformation.</summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.Equals(System.Object)">
- <summary>
- Tests if an object is an <c>AffineTransformation</c> and has the same matrix as this transformation.
- </summary>
- <param name="obj">An object to test</param>
- <returns>true if the given object is equal to this object</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.GetHashCode">
- <inheritdoc cref="M:System.Object.GetHashCode"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.ToString">
- <summary>
- Gets a text representation of this transformation.
- The string is of the form:
- <code>
- AffineTransformation[[m00, m01, m02], [m10, m11, m12]]
- </code>
- </summary>
- <returns>A string representing this transformation</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.Clone">
- <summary>
- Clones this transformation
- </summary>
- <returns>A copy of this transformation</returns>
- </member>
- <member name="T:NetTopologySuite.Geometries.Utilities.AffineTransformationBuilder">
- <summary>
- Builds an <see cref="T:NetTopologySuite.Geometries.Utilities.AffineTransformation"/> defined by a set of control vectors.
- </summary>
- <remarks>
- <para>
- A control vector consists of a source point and a destination point,
- which is the image of the source point under the desired transformation.
- </para>
- <para>
- A transformation is well-defined
- by a set of three control vectors
- if and only if the source points are not collinear.
- (In particular, the degenerate situation
- where two or more source points are identical will not produce a well-defined transformation).
- A well-defined transformation exists and is unique.
- If the control vectors are not well-defined, the system of equations
- defining the transformation matrix entries is not solvable,
- and no transformation can be determined.</para>
- <para>
- No such restriction applies to the destination points.
- However, if the destination points are collinear or non-unique,
- a non-invertible transformations will be generated.
- </para>
- <para>
- This technique of recovering a transformation
- from its effect on known points is used in the Bilinear Interpolated Triangulation
- algorithm for warping planar surfaces.
- </para>
- </remarks>
- <author>Martin Davis</author>
- </member>
- <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)">
- <summary>
- Constructs a new builder for the transformation defined by the given set of control point mappings.
- </summary>
- <param name="src0">A control point</param>
- <param name="src1">A control point</param>
- <param name="src2">A control point</param>
- <param name="dest0">The image of <paramref name="src0"/> under the required transformation</param>
- <param name="dest1">The image of <paramref name="src1"/> under the required transformation</param>
- <param name="dest2">The image of <paramref name="src2"/> under the required transformation</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformationBuilder.GetTransformation">
- <summary>
- Computes the <see cref="T:NetTopologySuite.Geometries.Utilities.AffineTransformation"/>
- determined by the control point mappings,
- or <c>null</c> if the control vectors do not determine a well-defined transformation.
- </summary>
- <returns>
- An affine transformation, or <see langword="null"/> if the control vectors do not
- determine a well-defined transformation.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformationBuilder.Compute">
- <summary>
- Computes the transformation matrix by
- solving the two systems of linear equations
- defined by the control point mappings,
- if this is possible.
- </summary>
- <returns>True if the transformation matrix is solvable</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformationBuilder.Solve(System.Double[])">
- <summary>
- Solves the transformation matrix system of linear equations
- for the given right-hand side vector.
- </summary>
- <param name="b">The vector for the right-hand side of the system</param>
- <returns>The solution vector, or <see langword="null"/> if no solution could be determined.</returns>
- </member>
- <member name="T:NetTopologySuite.Geometries.Utilities.AffineTransformationFactory">
- <summary>
- Supports creating <see cref="T:NetTopologySuite.Geometries.Utilities.AffineTransformation"/>s defined by various kinds of inputs and transformation mapping rules.
- </summary>
- <author>Martin Davis</author>
- </member>
- <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)">
- <summary>
- Creates a transformation from a set of three control vectors. A control
- vector consists of a source point and a destination point, which is the
- image of the source point under the desired transformation. Three control
- vectors allows defining a fully general affine transformation.
- </summary>
- <param name="src0"></param>
- <param name="src1"></param>
- <param name="src2"></param>
- <param name="dest0"></param>
- <param name="dest1"></param>
- <param name="dest2"></param>
- <returns>The computed transformation</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformationFactory.CreateFromControlVectors(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Creates an AffineTransformation defined by a pair of control vectors. A
- control vector consists of a source point and a destination point, which is
- the image of the source point under the desired transformation. The
- computed transformation is a combination of one or more of a uniform scale,
- a rotation, and a translation (i.e. there is no shear component and no
- reflection)
- </summary>
- <param name="src0"></param>
- <param name="src1"></param>
- <param name="dest0"></param>
- <param name="dest1"></param>
- <returns>The computed transformation</returns>
- <returns><c>null</c> if the control vectors do not determine a well-defined transformation</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformationFactory.CreateFromControlVectors(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Creates an AffineTransformation defined by a single control vector. A
- control vector consists of a source point and a destination point, which is
- the image of the source point under the desired transformation. This
- produces a translation.
- </summary>
- <param name="src0">The start point of the control vector</param>
- <param name="dest0">The end point of the control vector</param>
- <returns>The computed transformation</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformationFactory.CreateFromControlVectors(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Creates an AffineTransformation defined by a set of control vectors.
- Between one and three vectors must be supplied.
- </summary>
- <param name="src">The source points of the vectors</param>
- <param name="dest">The destination points of the vectors</param>
- <returns>The computed transformation</returns>
- <exception cref="T:System.ArgumentException">if the control vector arrays are too short, long or of different lengths</exception>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformationFactory.CreateFromBaseLines(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Creates an AffineTransformation defined by a mapping between two baselines.
- The computed transformation consists of:
- <list type="bullet">
- <item><description>a translation from the start point of the source baseline to the start point of the destination baseline,</description></item>
- <item><description>a rotation through the angle between the baselines about the destination start point,</description></item>
- <item><description>and a scaling equal to the ratio of the baseline lengths.</description></item>
- </list>
- If the source baseline has zero length, an identity transformation is returned.
- </summary>
- <param name="src0">The start point of the source baseline</param>
- <param name="src1">The end point of the source baseline</param>
- <param name="dest0">The start point of the destination baseline</param>
- <param name="dest1">The end point of the destination baseline</param>
- <returns></returns>
- </member>
- <member name="T:NetTopologySuite.Geometries.Utilities.ComponentCoordinateExtracter">
- <summary>
- Extracts a representative <see cref="T:NetTopologySuite.Geometries.Coordinate"/>
- from each connected component of a <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
- </summary>
- <version>1.9</version>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.ComponentCoordinateExtracter.GetCoordinates(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Extracts a representative <see cref="T:NetTopologySuite.Geometries.Coordinate"/>
- from each connected component in a geometry.
- <para/>
- If more than one geometry is to be processed, it is more
- efficient to create a single <see cref="T:NetTopologySuite.Geometries.Utilities.ComponentCoordinateExtracter"/>
- instance and pass it to each geometry.
- </summary>
- <param name="geom">The Geometry from which to extract</param>
- <returns>A list of representative Coordinates</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.ComponentCoordinateExtracter.#ctor(System.Collections.Generic.List{NetTopologySuite.Geometries.Coordinate})">
- <summary>
- Constructs a LineExtracterFilter with a list in which to store LineStrings found.
- </summary>
- </member>
- <member name="T:NetTopologySuite.Geometries.Utilities.EnvelopeCombiner">
- <summary>
- Utility to combine just the <see cref="T:NetTopologySuite.Geometries.Envelope"/>s of a list of geometries.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.EnvelopeCombiner.Combine(NetTopologySuite.Geometries.Geometry[])">
- <summary>
- Gets the smallest <see cref="T:NetTopologySuite.Geometries.Envelope"/> within which all input geometries fit, or a
- <see cref="P:NetTopologySuite.Geometries.Envelope.IsNull">null</see> envelope if no non-empty geometries were found in
- the input list.
- </summary>
- <param name="geoms">
- The list of input geometries.
- </param>
- <returns>
- The smallest <see cref="T:NetTopologySuite.Geometries.Envelope"/> within which all input geometries fit, or a
- <see cref="P:NetTopologySuite.Geometries.Envelope.IsNull">null</see> envelope if no non-empty geometries were found in
- the input list.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.EnvelopeCombiner.Combine(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})">
- <summary>
- Gets the smallest <see cref="T:NetTopologySuite.Geometries.Envelope"/> within which all input geometries fit, or a
- <see cref="P:NetTopologySuite.Geometries.Envelope.IsNull">null</see> envelope if no non-empty geometries were found in
- the input list.
- </summary>
- <param name="geoms">
- The list of input geometries.
- </param>
- <returns>
- The smallest <see cref="T:NetTopologySuite.Geometries.Envelope"/> within which all input geometries fit, or a
- <see cref="P:NetTopologySuite.Geometries.Envelope.IsNull">null</see> envelope if no non-empty geometries were found in
- the input list.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.EnvelopeCombiner.CombineAsGeometry(NetTopologySuite.Geometries.Geometry[])">
- <summary>
- Gets the <see cref="T:NetTopologySuite.Geometries.Geometry"/> representation of the result of <see cref="M:NetTopologySuite.Geometries.Utilities.EnvelopeCombiner.Combine(NetTopologySuite.Geometries.Geometry[])"/>.
- </summary>
- <param name="geoms">
- The list of input geometries.
- </param>
- <returns>
- The <see cref="T:NetTopologySuite.Geometries.Geometry"/> representation of the result of <see cref="M:NetTopologySuite.Geometries.Utilities.EnvelopeCombiner.Combine(NetTopologySuite.Geometries.Geometry[])"/>.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.EnvelopeCombiner.CombineAsGeometry(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})">
- <summary>
- 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})"/>.
- </summary>
- <param name="geoms">
- The list of input geometries.
- </param>
- <returns>
- 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})"/>.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.EnvelopeCombiner.#ctor(NetTopologySuite.Geometries.Geometry[])">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.Geometries.Utilities.EnvelopeCombiner"/> class.
- </summary>
- <param name="geoms">
- The <see cref="T:NetTopologySuite.Geometries.Geometry"/> instances to combine.
- </param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.EnvelopeCombiner.#ctor(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.Geometries.Utilities.EnvelopeCombiner"/> class.
- </summary>
- <param name="geoms">
- The <see cref="T:NetTopologySuite.Geometries.Geometry"/> instances to combine.
- </param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.EnvelopeCombiner.Combine">
- <summary>
- Gets the smallest <see cref="T:NetTopologySuite.Geometries.Envelope"/> within which all input geometries fit, or a
- <see cref="P:NetTopologySuite.Geometries.Envelope.IsNull">null</see> envelope if no non-empty geometries were found in
- the input list.
- </summary>
- <returns>
- The smallest <see cref="T:NetTopologySuite.Geometries.Envelope"/> within which all input geometries fit, or a
- <see cref="P:NetTopologySuite.Geometries.Envelope.IsNull">null</see> envelope if no non-empty geometries were found in
- the input list.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.EnvelopeCombiner.CombineAsGeometry">
- <summary>
- Gets the <see cref="T:NetTopologySuite.Geometries.Geometry"/> representation of the result of <see cref="M:NetTopologySuite.Geometries.Utilities.EnvelopeCombiner.Combine"/>.
- </summary>
- <returns>
- The <see cref="T:NetTopologySuite.Geometries.Geometry"/> representation of the result of <see cref="M:NetTopologySuite.Geometries.Utilities.EnvelopeCombiner.Combine"/>.
- </returns>
- </member>
- <member name="T:NetTopologySuite.Geometries.Utilities.Extracter">
- <summary>
- This class offers utility methods to extract single component
- geometries of requested type from ordinary geometries.
- </summary>
- <seealso cref="T:NetTopologySuite.Geometries.Utilities.PolygonExtracter"/>
- <seealso cref="T:NetTopologySuite.Geometries.Utilities.LineStringExtracter"/>
- <seealso cref="T:NetTopologySuite.Geometries.Utilities.PointExtracter"/>
- <seealso cref="T:NetTopologySuite.Geometries.Utilities.GeometryExtracter"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.Extracter.GetPoints(NetTopologySuite.Geometries.Geometry,System.Collections.Generic.IList{NetTopologySuite.Geometries.Point})">
- <summary>
- 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.IList`1"/>.
- </summary>
- <param name="geom">The geometry from which to extract</param>
- <param name="list">The list to add the extracted elements to</param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.Extracter.GetPoints(NetTopologySuite.Geometries.Geometry)">
- <summary>
- 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"/>.
- </summary>
- <param name="geom">The geometry from which to extract</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.Extracter.GetLines(NetTopologySuite.Geometries.Geometry,System.Collections.Generic.IList{NetTopologySuite.Geometries.LineString})">
- <summary>
- 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"/>.
- </summary>
- <param name="geom">The geometry from which to extract</param>
- <param name="list">The list to add the extracted elements to</param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.Extracter.GetLines(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Extracts the <see cref="T:NetTopologySuite.Geometries.LineString"/> elements from a single <see cref="T:NetTopologySuite.Geometries.Geometry"/>
- and returns them in a <see cref="T:System.Collections.Generic.IList`1"/>.
- </summary>
- <param name="geom">The geometry from which to extract</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.Extracter.GetPolygons(NetTopologySuite.Geometries.Geometry,System.Collections.Generic.IList{NetTopologySuite.Geometries.Polygon})">
- <summary>
- 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"/>.
- </summary>
- <param name="geom">The geometry from which to extract</param>
- <param name="list">The list to add the extracted elements to</param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.Extracter.GetPolygons(NetTopologySuite.Geometries.Geometry)">
- <summary>
- 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"/>.
- </summary>
- <param name="geom">The geometry from which to extract</param>
- </member>
- <member name="T:NetTopologySuite.Geometries.Utilities.Extracter`1">
- <summary>
- Class to extract single instance geometries of <see cref="!:T"/>
- </summary>
- <typeparam name="T">The type of the geometries to extract</typeparam>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.Extracter`1.GetItems(NetTopologySuite.Geometries.Geometry,System.Collections.Generic.IList{`0})">
- <summary>
- Extracts the <typeparamref name="T"/>-geometry elements from a single
- <see cref="T:NetTopologySuite.Geometries.Geometry"/> and adds them to the provided <see cref="T:System.Collections.Generic.IList`1"/>.
- </summary>
- <param name="geom">The geometry from which to extract</param>
- <param name="comps">The list to add the extracted elements to</param>
- <returns><paramref name="comps"/>, extended by <c>T</c>-geometries of <paramref name="geom"/></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.Extracter`1.GetItems(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Extracts the <typeparamref name="T"/>-geometry elements from a single
- <see cref="T:NetTopologySuite.Geometries.Geometry"/> and adds them to the provided <see cref="T:System.Collections.Generic.IList`1"/>.
- </summary>
- <param name="geom">The geometry from which to extract</param>
- <returns>A list of <c>T</c>-geometry elements in <paramref name="geom"/></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.Extracter`1.#ctor(System.Collections.Generic.IList{`0})">
- <summary>
- Creates an instance of this class
- </summary>
- <param name="comps">The list to add <typeparamref name="T"/>-geometry elements to</param>
- <exception cref="T:System.InvalidOperationException"></exception>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.Extracter`1.Filter(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Adds <paramref name="geom"/> to the list when it is a <typeparamref name="T"/>-geometry.
- </summary>
- </member>
- <member name="T:NetTopologySuite.Geometries.Utilities.GeometryCollectionMapper">
- <summary>
- Maps the members of a <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/>
- into another <tt>GeometryCollection</tt> via a defined
- mapping function.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.GeometryCollectionMapper.Map(NetTopologySuite.Geometries.GeometryCollection,System.Func{NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry})">
- <summary>
-
- </summary>
- <param name="gc"></param>
- <param name="op"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.GeometryCollectionMapper.#ctor(System.Func{NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry})">
- <summary>
- Creates an instance of this class
- </summary>
- <param name="mapOp"></param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.GeometryCollectionMapper.Map(NetTopologySuite.Geometries.GeometryCollection)">
- <summary>
-
- </summary>
- <param name="gc"></param>
- <returns></returns>
- </member>
- <member name="T:NetTopologySuite.Geometries.Utilities.GeometryCombiner">
- <summary>
- Combines <see cref="T:NetTopologySuite.Geometries.Geometry"/>s to produce a <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/> of the most appropriate type.
- </summary>
- <remarks>
- <para>Input geometries which are already collections will have their elements extracted first.</para>
- <para>No validation of the result geometry is performed.
- (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>
- </remarks>
- <author>mbdavis</author>
- <seealso cref="M:NetTopologySuite.Geometries.GeometryFactory.BuildGeometry(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.GeometryCombiner.Combine(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})">
- <summary>Combines a collection of geometries.</summary>
- <param name="geoms">The geometries to combine</param>
- <returns>The combined geometry</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.GeometryCombiner.Combine(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Combines two geometries.
- </summary>
- <param name="g0">A geometry to combine</param>
- <param name="g1">A geometry to combine</param>
- <returns>The combined geometry</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.GeometryCombiner.Combine(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Combines three geometries.
- </summary>
- <param name="g0">A geometry to combine</param>
- <param name="g1">A geometry to combine</param>
- <param name="g2">A geometry to combine</param>
- <returns>The combined geometry</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.GeometryCombiner.CreateList(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Creates a list from two items
- </summary>
- <param name="obj0"></param>
- <param name="obj1"></param>
- <returns>A list from two geometries</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.GeometryCombiner.CreateList(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Creates a list from three items
- </summary>
- <param name="obj0"></param>
- <param name="obj1"></param>
- <param name="obj2"></param>
- <returns>A list from three geometries</returns>
- </member>
- <member name="P:NetTopologySuite.Geometries.Utilities.GeometryCombiner.SkipEmpty">
- <summary>
- Value indicating whether empty geometries should be skipped
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.GeometryCombiner.#ctor(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})">
- <summary>
- Creates a new combiner for a collection of geometries
- </summary>
- <param name="geoms">The geometries to combine</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.GeometryCombiner.ExtractFactory(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})">
- <summary>
- Extracts the GeometryFactory used by the geometries in a collection
- </summary>
- <param name="geoms"></param>
- <returns>a GeometryFactory</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.GeometryCombiner.Combine">
- <summary>
- 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"/>
- </summary>
- <returns>A Geometry which is the combination of the inputs</returns>
- <returns></returns>
- </member>
- <member name="T:NetTopologySuite.Geometries.Utilities.GeometryEditor">
- <summary>
- A class which supports creating new <see cref="T:NetTopologySuite.Geometries.Geometry"/>s
- which are modifications of existing ones,
- maintaining the same type structure.
- </summary>
- <remarks>
- Geometry objects are intended to be treated as immutable.
- This class allows you to "modifies" a Geometrys
- by traversing them, applying a user-defined
- <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"/>
- and creating a new Geometrys with the same structure but
- (possibly) modified components.
- <para>
- Examples of the kinds of modifications which can be made are:
- <list type="bullet">
- <item><description>
- The values of the coordinates may be changed.
- The editor does not check whether changing coordinate values makes the result Geometry invalid
- </description></item>
- <item><description>
- The coordinate lists may be changed (e.g. by adding, deleting or modifying coordinates).
- The modified coordinate lists must be consistent with their original parent component
- (e.g. a <tt>LinearRing</tt> must always have at least 4 coordinates, and the first and last
- coordinate must be equal).
- </description></item>
- <item><description>
- Components of the original point may be deleted
- (e.g. holes may be removed from a Polygon, or LineStrings removed from a MultiLineString).
- Deletions will be propagated up the component tree appropriately.
- </description></item></list>
- </para>
- <para>
- All changes must be consistent with the original Geometry's structure
- (e.g. a <c>Polygon</c> cannot be collapsed into a <c>LineString</c>).
- If changing the structure is required, use a <see cref="T:NetTopologySuite.Geometries.Utilities.GeometryTransformer"/>.
- </para>
- <para>
- This class supports creating an edited Geometry
- using a different <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/> via the <see cref="M:NetTopologySuite.Geometries.Utilities.GeometryEditor.#ctor(NetTopologySuite.Geometries.GeometryFactory)"/>
- constructor.
- Examples of situations where this is required is if the geometry is
- transformed to a new SRID and/or a new PrecisionModel.</para>
- <para>
- Usage notes
- <list type="bullet">
- <item><description>The resulting Geometry is not checked for validity.
- If validity needs to be enforced, the new Geometry's
- <see cref="P:NetTopologySuite.Geometries.Geometry.IsValid"/> method should be called.</description></item>
- <item><description>By default the UserData of the input geometry is not copied to the result.</description></item>
- </list>
- </para>
- </remarks>
- <seealso cref="T:NetTopologySuite.Geometries.Utilities.GeometryTransformer"/>
- <seealso cref="P:NetTopologySuite.Geometries.Geometry.IsValid"/>
- </member>
- <member name="F:NetTopologySuite.Geometries.Utilities.GeometryEditor._factory">
- <summary>
- The factory used to create the modified Geometry.
- </summary>
- <remarks>
- If <tt>null</tt> the GeometryFactory of the input is used.
- </remarks>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.GeometryEditor.#ctor">
- <summary>
- Creates a new GeometryEditor object which will create
- edited <see cref="T:NetTopologySuite.Geometries.Geometry"/> with the same <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/> as the input Geometry.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.GeometryEditor.#ctor(NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
- Creates a new GeometryEditor object which will create
- edited <see cref="T:NetTopologySuite.Geometries.Geometry"/>s with the given <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>.
- </summary>
- <param name="factory">The GeometryFactory to create the edited Geometry with.</param>
- </member>
- <member name="P:NetTopologySuite.Geometries.Utilities.GeometryEditor.CopyUserData">
- <summary>
- Gets or sets a value indicating if the User Data is copied to the edit result.
- If so, only the object reference is copied.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.GeometryEditor.Edit(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Utilities.GeometryEditor.IGeometryEditorOperation)">
- <summary>
- Edit the input <c>Geometry</c> with the given edit operation.
- Clients can create subclasses of GeometryEditorOperation or
- CoordinateOperation to perform required modifications.
- </summary>
- <param name="geometry">The Geometry to edit.</param>
- <param name="operation">The edit operation to carry out.</param>
- <returns>A new <c>Geometry</c> which is the result of the editing (which may be empty).</returns>
- </member>
- <member name="T:NetTopologySuite.Geometries.Utilities.GeometryEditor.IGeometryEditorOperation">
- <summary>
- A interface which specifies an edit operation for Geometries.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.GeometryEditor.IGeometryEditorOperation.Edit(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
- Edits a Geometry by returning a new Geometry with a modification.
- The returned Geometry may be the input geometry itself.
- It may be <c>null</c> if the geometry is to be deleted.
- </summary>
- <param name="geometry">The Geometry to modify.</param>
- <param name="factory">
- The factory with which to construct the modified Geometry
- (may be different to the factory of the input point).
- </param>
- <returns>A new Geometry which is a modification of the input Geometry.</returns>
- <returns><c>null</c> if the Geometry is to be deleted completely</returns>
- </member>
- <member name="T:NetTopologySuite.Geometries.Utilities.GeometryEditor.NoOpGeometryOperation">
- <summary>
- A GeometryEditorOperation which does not modify
- the input geometry.
- This can be used for simple changes of
- <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/> (including PrecisionModel and SRID).
- </summary>
- <author>mbdavis</author>
- </member>
- <member name="T:NetTopologySuite.Geometries.Utilities.GeometryEditor.CoordinateOperation">
- <summary>
- A GeometryEditorOperation which edits the coordinate list of a <c>Geometry</c>.
- Operates on Geometry subclasses which contains a single coordinate list.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.GeometryEditor.CoordinateOperation.Edit(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
-
- </summary>
- <param name="geometry"></param>
- <param name="factory"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.GeometryEditor.CoordinateOperation.Edit(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.Geometries.Geometry)">
- <summary>
- Edits the array of <c>Coordinate</c>s from a <c>Geometry</c>.
- </summary>
- <param name="coordinates">The coordinate array to operate on.</param>
- <param name="geometry">The point containing the coordinate list.</param>
- <returns>An edited coordinate array (which may be the same as the input).</returns>
- </member>
- <member name="T:NetTopologySuite.Geometries.Utilities.GeometryEditor.CoordinateSequenceOperation">
- <summary>
- A <see cref="T:NetTopologySuite.Geometries.Utilities.GeometryEditor.IGeometryEditorOperation"/> which edits the <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>
- of a <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
- <para/>
- Operates on Geometry subclasses which contains a single coordinate list.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.Utilities.GeometryEditor.CoordinateSequenceOperation.EditSequence">
- <returns>An edited coordinate sequence (which may be the same as the input)</returns>
- </member>
- <member name="T:NetTopologySuite.Geometries.Utilities.GeometryExtracter">
- <summary>
- Extracts the components of a given type from a <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
- </summary>
- <seealso cref="T:NetTopologySuite.Geometries.Utilities.PointExtracter"/>
- <seealso cref="T:NetTopologySuite.Geometries.Utilities.LineStringExtracter"/>
- <seealso cref="T:NetTopologySuite.Geometries.Utilities.PolygonExtracter"/>
- <seealso cref="T:NetTopologySuite.Geometries.Utilities.Extracter"/>
- <seealso cref="T:NetTopologySuite.Geometries.Utilities.Extracter`1"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.GeometryExtracter.Extract``1(NetTopologySuite.Geometries.Geometry,System.Collections.Generic.IList{NetTopologySuite.Geometries.Geometry})">
- <summary>
- 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"/>.
- </summary>
- <param name="geom">the geometry from which to extract</param>
- <param name="list">the list to add the extracted elements to</param>
- <typeparam name="T">The geometry type to extract</typeparam>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.GeometryExtracter.Extract``1(NetTopologySuite.Geometries.Geometry)">
- <summary>
- 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"/>.
- </summary>
- <param name="geom">the geometry from which to extract</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.GeometryExtracter.Extract(NetTopologySuite.Geometries.Geometry,System.String)">
- <summary>
- Extracts the components of <tt>geometryType</tt> from a <see cref="T:NetTopologySuite.Geometries.Geometry"/>
- </summary>
- <param name="geom">The geometry from which to extract</param>
- <param name="geometryType">Geometry type to extract (null or all white-space means all types)</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.GeometryExtracter.Extract(NetTopologySuite.Geometries.Geometry,System.String,System.Collections.Generic.IList{NetTopologySuite.Geometries.Geometry})">
- <summary>
- Extracts the components of <tt>geometryType</tt> from a <see cref="T:NetTopologySuite.Geometries.Geometry"/>
- and adds them to the provided <see cref="T:System.Collections.Generic.IList`1"/>
- </summary>
- <param name="geom">The geometry from which to extract</param>
- <param name="geometryType">Geometry type to extract (null or all white-space means all types)</param>
- <param name="list">The list to add the extracted elements to</param>
- </member>
- <member name="T:NetTopologySuite.Geometries.Utilities.GeometryExtracterByTypeName">
- <summary>
- Extracts the components of type <c>T</c> from a <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.GeometryExtracterByTypeName.#ctor(System.String,System.Collections.Generic.IList{NetTopologySuite.Geometries.Geometry})">
- <summary>
- Constructs a filter with a list in which to store the elements found.
- </summary>
- <param name="geometryType">Geometry type to extract (null means all types)</param>
- <param name="comps">The list to extract into</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.GeometryExtracterByTypeName.IsOfType(NetTopologySuite.Geometries.Geometry,System.String)">
- <summary>
- Y
- </summary>
- <param name="geom"></param>
- <param name="geometryType"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.GeometryExtracterByTypeName.Filter(NetTopologySuite.Geometries.Geometry)">
- <inheritdoc cref="M:NetTopologySuite.Geometries.IGeometryFilter.Filter(NetTopologySuite.Geometries.Geometry)"/>
- </member>
- <member name="T:NetTopologySuite.Geometries.Utilities.GeometryExtracter`1">
- <summary>
- Extracts the components of type <c>T</c> from a <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.GeometryExtracter`1.#ctor(System.Collections.Generic.IList{NetTopologySuite.Geometries.Geometry})">
- <summary>
- Constructs a filter with a list in which to store the elements found.
- </summary>
- <param name="comps">The list to extract into</param>
- </member>
- <member name="T:NetTopologySuite.Geometries.Utilities.GeometryFixer">
- <summary>
- Fixes a geometry to be a valid geometry, while preserving as much as
- possible of the shape and location of the input.
- Validity is determined according to <see cref="P:NetTopologySuite.Geometries.Geometry.IsValid"/>.
- <para/>
- Input geometries are always processed, so even valid inputs may
- have some minor alterations.The output is always a new geometry object.
- <h2>Semantic Rules</h2>
- <list type="number">
- <item><description>Vertices with non-finite X or Y ordinates are removed (as per <see cref="P:NetTopologySuite.Geometries.Coordinate.IsValid"/>)</description></item>
- <item><description>Repeated points are reduced to a single point</description></item>
- <item><description>Empty atomic geometries are valid and are returned unchanged</description></item>
- <item><description>Empty elements are removed from collections</description></item>
- <item><description><c>Point</c>: keep valid coordinate, or EMPTY</description></item>
- <item><description><c>LineString</c>: coordinates are fixed</description></item>
- <item><description><c>LinearRing</c>: coordinates are feixed, keep valid ring or else convert into <c>LineString</c></description></item>
- <item><description><c>Polygon</c>: transform into a valid polygon or multipolygon,
- preserving as much of the extent and vertices as possible.
- <list type="bullet">
- <item><description>Rings are fixed to ensure they are valid</description></item>
- <item><description>Holes intersection the shell are subtracted from the shell</description></item>
- <item><description>Holes outside the shell are converted into polygons</description></item>
- </list></description></item>
- <item><description><c>MultiPolygon</c>: each polygon is fixed,
- then result made non - overlapping (via union)</description></item>
- <item><description><c>GeometryCollection</c>: each element is fixed</description></item>
- <item><description>Collapsed lines and polygons are handled as follows,
- depending on the <c>keepCollapsed</c> setting:
- <list type="bullet">
- <item><description><c>false</c>: (default) collapses are converted to empty geometries
- (and removed if they are elements of collections)</description></item>
- <item><description><c>true</c>: collapses are converted to a valid geometry of lower dimension</description></item>
- </list></description></item>
- </list>
- </summary>
- <author>Martin Davis</author>
- <seealso cref="P:NetTopologySuite.Geometries.Geometry.IsValid"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.GeometryFixer.Fix(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Fixes a geometry to be valid.
- </summary>
- <param name="geom">The geometry to be fixed</param>
- <returns>The valid fixed geometry</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.GeometryFixer.Fix(NetTopologySuite.Geometries.Geometry,System.Boolean)">
- <summary>
- Fixes a geometry to be valid, allowing to set a flag controlling how
- single item results from fixed <c>MULTI</c> geometries should be
- returned.
- </summary>
- <param name="geom">The geometry to be fixed</param>
- <param name="isKeepMulti">A flag indicating if <c>MULTI</c> geometries should not
- be converted to single instance types if they consist of only one item.</param>
- <returns>The valid fixed geometry</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.GeometryFixer.#ctor(NetTopologySuite.Geometries.Geometry)">
- <summary>Creates a new instance to fix a given geometry</summary>
- <param name="geom">The geometry to be fixed</param>
- </member>
- <member name="P:NetTopologySuite.Geometries.Utilities.GeometryFixer.KeepCollapsed">
- <summary>
- Gets or sets a value indicating whether collapsed
- geometries are converted to empty,
- (which will be removed from collections),
- or to a valid geometry of lower dimension.
- The default is to convert collapses to empty geometries (<c>false</c>).
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.Utilities.GeometryFixer.KeepMulti">
- <summary>
- Gets or sets a value indicating whether collapsed
- geometries are converted to empty,
- (which will be removed from collections),
- or to a valid geometry of lower dimension.
- The default is to convert collapses to empty geometries (<c>false</c>).
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.GeometryFixer.GetResult">
- <summary>
- Gets the fixed geometry.
- </summary>
- <returns>The fixed geometry</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.GeometryFixer.FixCoordinates(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Returns a clean copy of the input coordinate array.
- </summary>
- <param name="pts">Coordinates to clean</param>
- <returns>An array of clean coordinates</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.GeometryFixer.Difference(NetTopologySuite.Geometries.Geometry,System.Collections.Generic.List{NetTopologySuite.Geometries.Geometry})">
- <summary>Subtracts a list of polygonal geometries from a polygonal geometry.</summary>
- <param name="shell">polygonal geometry for shell</param>
- <param name="holes">polygonal geometries for holes</param>
- <returns>The result geometry</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.GeometryFixer.Union(System.Collections.Generic.List{NetTopologySuite.Geometries.Geometry})">
- <summary>
- Unions a list of polygonal geometries.
- Optimizes case of zero or one input geometries.
- Requires that the inputs are net new objects.
- </summary>
- <param name="polys">The polygonal geometries to union</param>
- <returns>The union of the inputs</returns>
- </member>
- <member name="T:NetTopologySuite.Geometries.Utilities.GeometryMapper">
- <summary>
- Methods to map various collections
- of <see cref="T:NetTopologySuite.Geometries.Geometry"/>s
- via defined mapping functions.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.GeometryMapper.Map(NetTopologySuite.Geometries.Geometry,System.Func{NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry})">
- <summary>
- Maps the members of a <see cref="T:NetTopologySuite.Geometries.Geometry"/>
- (which may be atomic or composite)
- into another <tt>Geometry</tt> of most specific type.
- <tt>null</tt> results are skipped.
- In the case of hierarchical <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/>s,
- only the first level of members are mapped.
- </summary>
- <param name="geom">The input atomic or composite geometry</param>
- <param name="op">The mapping operation delegate</param>
- <returns>A result collection or geometry of most specific type</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.GeometryMapper.Map(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Utilities.GeometryMapper.IMapOp)">
- <summary>
- Maps the members of a <see cref="T:NetTopologySuite.Geometries.Geometry"/>
- (which may be atomic or composite)
- into another <tt>Geometry</tt> of most specific type.
- <tt>null</tt> results are skipped.
- In the case of hierarchical <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/>s,
- only the first level of members are mapped.
- </summary>
- <param name="geom">The input atomic or composite geometry</param>
- <param name="op">The mapping operation</param>
- <returns>A result collection or geometry of most specific type</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.GeometryMapper.FlatMap(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Dimension,NetTopologySuite.Geometries.Utilities.GeometryMapper.IMapOp)">
- <summary>
- Maps the atomic elements of a <see cref="T:NetTopologySuite.Geometries.Geometry"/>
- (which may be atomic or composite)
- using a <see cref="T:NetTopologySuite.Geometries.Utilities.GeometryMapper.IMapOp"/> mapping operation
- into an atomic <tt>Geometry</tt> or a flat collection
- of the most specific type.
- <tt>null</tt> and empty values returned from the mapping operation
- are discarded.
- </summary>
- <param name="geom">The geometry to map</param>
- <param name="emptyDim">The dimension of empy geometry to create</param>
- <param name="op">The mapping operation</param>
- <returns>The mapped result</returns>
- </member>
- <member name="T:NetTopologySuite.Geometries.Utilities.GeometryMapper.IMapOp">
- <summary>
- An interface for geometry functions used for mapping.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.GeometryMapper.IMapOp.Map(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes a new geometry value.
- </summary>
- <param name="g">The input geometry</param>
- <returns>A result geometry</returns>
- </member>
- <member name="T:NetTopologySuite.Geometries.Utilities.GeometryMapper.MapOp">
- <summary>
- Standard implementation of a geometry mapping
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.GeometryMapper.MapOp.#ctor(System.Func{NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry})">
- <summary>
- Creates an instance of this class using the provided mapping operation function
- </summary>
- <param name="mapOp">A mapping operation function</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.GeometryMapper.MapOp.Map(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes a new geometry value.
- </summary>
- <param name="g">The input geometry</param>
- <returns>A result geometry</returns>
- </member>
- <member name="T:NetTopologySuite.Geometries.Utilities.GeometryTransformer">
- <summary>
- A framework for processes which transform an input <c>Geometry</c> into
- an output <see cref="T:NetTopologySuite.Geometries.Geometry"/>, possibly changing its structure and type(s).
- </summary>
- <remarks>
- <para>
- This class is a framework for implementing subclasses
- which perform transformations on
- various different Geometry subclasses.
- </para>
- <para>
- It provides an easy way of applying specific transformations
- to given point types, while allowing unhandled types to be simply copied.
- Also, the framework handles ensuring that if subcomponents change type
- the parent geometries types change appropriately to maintain valid structure.
- Subclasses will override whichever <c>TransformX</c> methods
- they need to to handle particular Geometry types.
- </para>
- <para>
- A typically usage would be a transformation that may transform <c>Polygons</c> into
- <c>Polygons</c>, <c>LineStrings</c> or <c>Points</c>, depending on the geometry of the input
- (For instance, a simplification operation).
- This class would likely need to override the <see cref="M:NetTopologySuite.Geometries.Utilities.GeometryTransformer.TransformMultiPolygon(NetTopologySuite.Geometries.MultiPolygon,NetTopologySuite.Geometries.Geometry)"/>
- method to ensure that if input Polygons change type the result is a <c>GeometryCollection</c>,
- not a <c>MultiPolygon</c>.</para>
- <para>
- The default behaviour of this class is simply to recursively transform
- each Geometry component into an identical object by deep copying down
- to the level of, but not including, coordinates.
- </para>
- <para>
- Note that all <c>Transform<i>XXX</i></c> methods may return <c>null</c>,
- to avoid creating empty point objects. This will be handled correctly
- by the transformer. <c>Transform<i>XXX</i></c> methods should always return valid
- geometry - if they cannot do this they should return <c>null</c>
- (for instance, it may not be possible for a transformLineString implementation
- to return at least two points - in this case, it should return <c>null</c>).
- The <see cref="M:NetTopologySuite.Geometries.Utilities.GeometryTransformer.Transform(NetTopologySuite.Geometries.Geometry)"/> method itself will always
- return a non-null Geometry object (but this may be empty).</para>
- </remarks>>
- </member>
- <member name="F:NetTopologySuite.Geometries.Utilities.GeometryTransformer.Factory">
- <summary>
- The geometry factory
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Utilities.GeometryTransformer.pruneEmptyGeometry">
- <summary>
- <c>true</c> if empty geometries should not be included in the result.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Utilities.GeometryTransformer.preserveGeometryCollectionType">
- <summary>
- <c>true</c> if a homogenous collection result
- from a <c>GeometryCollection</c> should still
- be a general GeometryCollection.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Geometries.Utilities.GeometryTransformer._preserveType">
- <summary>
- <c>true</c> if the type of the input should be preserved.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.Utilities.GeometryTransformer.InputGeometry">
- <summary>
- Makes the input geometry available
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.GeometryTransformer.Transform(NetTopologySuite.Geometries.Geometry)">
- <summary>
-
- </summary>
- <param name="inputGeom"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.GeometryTransformer.CreateCoordinateSequence(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Convenience method which provides standard way of
- creating a <c>CoordinateSequence</c>.
- </summary>
- <param name="coords">The coordinate array to copy.</param>
- <returns>A coordinate sequence for the array.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.GeometryTransformer.Copy(NetTopologySuite.Geometries.CoordinateSequence)">
- <summary>
- Convenience method which provides a standard way of copying <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>s.
- </summary>
- <param name="seq">The sequence to copy.</param>
- <returns>A deep copy of the sequence.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.GeometryTransformer.TransformCoordinates(NetTopologySuite.Geometries.CoordinateSequence,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Transforms a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>.
- This method should always return a valid coordinate list for
- the desired result type. (E.g. a coordinate list for a LineString
- must have 0 or at least 2 points).
- If this is not possible, return an empty sequence -
- this will be pruned out.
- </summary>
- <param name="coords">The coordinates to transform</param>
- <param name="parent">The parent geometry</param>
- <returns>The transformed coordinates</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.GeometryTransformer.TransformPoint(NetTopologySuite.Geometries.Point,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Transforms a <see cref="T:NetTopologySuite.Geometries.Point"/> geometry.
- </summary>
- <param name="geom">The <c>Point</c> to transform</param>
- <param name="parent">The parent geometry</param>
- <returns>A <c>Point</c></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.GeometryTransformer.TransformMultiPoint(NetTopologySuite.Geometries.MultiPoint,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Transforms a <see cref="T:NetTopologySuite.Geometries.MultiPoint"/> geometry.
- </summary>
- <param name="geom">The <c>MultiPoint</c> to transform</param>
- <param name="parent">The parent geometry</param>
- <returns>A <c>MultiPoint</c></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.GeometryTransformer.TransformLinearRing(NetTopologySuite.Geometries.LinearRing,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Transforms a <see cref="T:NetTopologySuite.Geometries.LinearRing"/>.
- <para/>
- The transformation of a <c>LinearRing</c> may result in a coordinate sequence
- which does not form a structurally valid ring (i.e. a degenerate ring of 3 or fewer points).
- In this case a <c>LineString</c> is returned.
- Subclasses may wish to override this method and check for this situation
- (e.g.a subclass may choose to eliminate degenerate linear rings)
- </summary>
- <param name="geom">The <c>LinearRing</c> to transform</param>
- <param name="parent">The parent geometry</param>
- <returns>
- A <c>LinearRing</c> if the transformation resulted in a structurally valid ring, otherwise,
- if the transformation caused the LinearRing to collapse to 3 or fewer points, a <c>LineString</c>
- </returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.GeometryTransformer.TransformLineString(NetTopologySuite.Geometries.LineString,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Transforms a <see cref="T:NetTopologySuite.Geometries.LineString"/> geometry.
- </summary>
- <param name="geom">The <c>LineString</c> to transform</param>
- <param name="parent">The parent geometry</param>
- <returns>A <c>LineString</c></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.GeometryTransformer.TransformMultiLineString(NetTopologySuite.Geometries.MultiLineString,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Transforms a <see cref="T:NetTopologySuite.Geometries.MultiLineString"/> geometry.
- </summary>
- <param name="geom">The <c>MultiLineString</c> to transform</param>
- <param name="parent">The parent geometry</param>
- <returns>A <c>MultiLineString</c></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.GeometryTransformer.TransformPolygon(NetTopologySuite.Geometries.Polygon,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Transforms a <see cref="T:NetTopologySuite.Geometries.Polygon"/> geometry.
- </summary>
- <param name="geom">The <c>Polygon</c> to transform</param>
- <param name="parent">The parent geometry</param>
- <returns>A <c>Polygon</c></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.GeometryTransformer.TransformMultiPolygon(NetTopologySuite.Geometries.MultiPolygon,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Transforms a <see cref="T:NetTopologySuite.Geometries.MultiPolygon"/> geometry.
- </summary>
- <param name="geom">The <c>MultiPolygon</c> to transform</param>
- <param name="parent">The parent geometry</param>
- <returns>A <c>MultiPolygon</c></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.GeometryTransformer.TransformGeometryCollection(NetTopologySuite.Geometries.GeometryCollection,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Transforms a <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/> geometry.
- </summary>
- <param name="geom">The <c>GeometryCollection</c> to transform</param>
- <param name="parent">The parent geometry</param>
- <returns>A <c>GeometryCollection</c></returns>
- </member>
- <member name="T:NetTopologySuite.Geometries.Utilities.LinearComponentExtracter">
- <summary>
- Extracts all the 1-dimensional (<see cref="T:NetTopologySuite.Geometries.LineString"/>) components from a <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
- For polygonal geometries, this will extract all the component <see cref="T:NetTopologySuite.Geometries.LinearRing"/>s.
- If desired, <see cref="T:NetTopologySuite.Geometries.LinearRing"/>s can be forced to be returned as <see cref="T:NetTopologySuite.Geometries.LineString"/>s.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.LinearComponentExtracter.GetLines``1(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry},``0)">
- <summary>
- Extracts the linear components from a <see cref="T:System.Collections.Generic.IEnumerable`1"/>
- and adds them to the provided <see cref="T:System.Collections.Generic.ICollection`1"/>.
- </summary>
- <param name="geoms">The geometry from which to extract linear components</param>
- <param name="lines">The Collection to add the extracted linear components to</param>
- <returns>The Collection of linear components (LineStrings or LinearRings)</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.LinearComponentExtracter.GetLines``1(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry},``0,System.Boolean)">
- <summary>
- Extracts the linear components from a <see cref="T:System.Collections.Generic.IEnumerable`1"/>
- and adds them to the provided <see cref="T:System.Collections.Generic.ICollection`1"/>.
- </summary>
- <param name="geoms">The geometry from which to extract linear components</param>
- <param name="lines">The Collection to add the extracted linear components to</param>
- <param name="forceToLineString"></param>
- <returns>The Collection of linear components (LineStrings or LinearRings)</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.LinearComponentExtracter.GetLines``1(NetTopologySuite.Geometries.Geometry,``0)">
- <summary>
- Extracts the linear components from a single <see cref="T:NetTopologySuite.Geometries.Geometry"/>
- and adds them to the provided <see cref="T:System.Collections.Generic.ICollection`1"/>.
- </summary>
- <param name="geom">The geometry from which to extract linear components</param>
- <param name="lines">The Collection to add the extracted linear components to</param>
- <returns>The Collection of linear components (LineStrings or LinearRings)</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.LinearComponentExtracter.GetLines``1(NetTopologySuite.Geometries.Geometry,``0,System.Boolean)">
- <summary>
- Extracts the linear components from a single <see cref="T:NetTopologySuite.Geometries.Geometry"/>
- and adds them to the provided <see cref="T:System.Collections.Generic.ICollection`1"/>.
- </summary>
- <param name="geom">The geometry from which to extract linear components</param>
- <param name="lines">The Collection to add the extracted linear components to</param>
- <param name="forceToLineString"></param>
- <returns>The Collection of linear components (LineStrings or LinearRings)</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.LinearComponentExtracter.GetLines(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Extracts the linear components from a single point.
- If more than one point is to be processed, it is more
- efficient to create a single <c>LineExtracterFilter</c> instance
- and pass it to multiple geometries.
- </summary>
- <param name="geom">The point from which to extract linear components.</param>
- <returns>The list of linear components.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.LinearComponentExtracter.GetLines(NetTopologySuite.Geometries.Geometry,System.Boolean)">
- <summary>
- Extracts the linear components from a single geometry.
- If more than one geometry is to be processed, it is more
- efficient to create a single <see cref="T:NetTopologySuite.Geometries.Utilities.LinearComponentExtracter"/> instance
- and pass it to multiple geometries.
- </summary>
- <param name="geom">The geometry from which to extract linear components</param>
- <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>
- <returns>The list of linear components</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.LinearComponentExtracter.GetGeometry(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Extracts the linear components from a single <see cref="T:NetTopologySuite.Geometries.Geometry"/>
- and returns them as either a <see cref="T:NetTopologySuite.Geometries.LineString"/> or <see cref="T:NetTopologySuite.Geometries.MultiLineString"/>.
- </summary>
- <param name="geom">The geometry from which to extract</param>
- <returns>A linear geometry</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.LinearComponentExtracter.GetGeometry(NetTopologySuite.Geometries.Geometry,System.Boolean)">
- <summary>
- Extracts the linear components from a single <see cref="T:NetTopologySuite.Geometries.Geometry"/>
- and returns them as either a <see cref="T:NetTopologySuite.Geometries.LineString"/> or <see cref="T:NetTopologySuite.Geometries.MultiLineString"/>.
- </summary>
- <param name="geom">The geometry from which to extract</param>
- <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>
- <returns>A linear geometry</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.LinearComponentExtracter.#ctor(System.Collections.Generic.ICollection{NetTopologySuite.Geometries.Geometry})">
- <summary>
- Constructs a LineExtracterFilter with a list in which to store LineStrings found.
- </summary>
- <param name="lines"></param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.LinearComponentExtracter.#ctor(System.Collections.Generic.ICollection{NetTopologySuite.Geometries.Geometry},System.Boolean)">
- <summary>
- Constructs a LineExtracterFilter with a list in which to store LineStrings found.
- </summary>
- <param name="lines"></param>
- <param name="isForcedToLineString"></param>
- </member>
- <member name="P:NetTopologySuite.Geometries.Utilities.LinearComponentExtracter.IsForcedToLineString">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.LinearComponentExtracter.Filter(NetTopologySuite.Geometries.Geometry)">
- <summary>
-
- </summary>
- <param name="geom"></param>
- </member>
- <member name="T:NetTopologySuite.Geometries.Utilities.LineStringExtracter">
- <summary>
- Extracts all the <see cref="T:NetTopologySuite.Geometries.LineString"/> elements from a <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
- </summary>
- <seealso cref="T:NetTopologySuite.Geometries.Utilities.GeometryExtracter"/>
- <seealso cref="T:NetTopologySuite.Geometries.Utilities.Extracter"/>
- <seealso cref="T:NetTopologySuite.Geometries.Utilities.Extracter`1"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.LineStringExtracter.GetLines``1(NetTopologySuite.Geometries.Geometry,``0)">
- <summary>
- Extracts the <see cref="T:NetTopologySuite.Geometries.LineString"/> elements from a single <see cref="T:NetTopologySuite.Geometries.Geometry"/>
- and adds them to the<see cref="T:System.Collections.Generic.ICollection`1"/>.
- </summary>
- <param name="geom">The geometry from which to extract</param>
- <param name="lines">The list to add the extracted elements to</param>
- <returns>The <paramref name="lines"/> list argument</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.LineStringExtracter.GetLines(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Extracts the <see cref="T:NetTopologySuite.Geometries.LineString"/> elements from a single <see cref="T:NetTopologySuite.Geometries.Geometry"/>
- and returns them in a <see cref="T:System.Collections.Generic.List`1"/>.
- </summary>
- <param name="geom">The geometry from which to extract</param>
- <returns>A list containing the linear elements</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.LineStringExtracter.GetGeometry(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Extracts the <see cref="T:NetTopologySuite.Geometries.LineString"/> elements from a single <see cref="T:NetTopologySuite.Geometries.Geometry"/>
- and returns them as either a <see cref="T:NetTopologySuite.Geometries.LineString"/> or <see cref="T:NetTopologySuite.Geometries.MultiLineString"/>.
- </summary>
- <param name="geom">The geometry from which to extract</param>
- <returns>A linear geometry</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.LineStringExtracter.#ctor(System.Collections.Generic.ICollection{NetTopologySuite.Geometries.Geometry})">
- <summary>
- Constructs a filter with a list in which to store the elements found.
- </summary>
- </member>
- <member name="T:NetTopologySuite.Geometries.Utilities.Matrix">
- <summary>
- Implements some 2D matrix operations (in particular, solving systems of linear equations).
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.Matrix.Solve(System.Double[][],System.Double[])">
- <summary>
- Solves a system of equations using Gaussian Elimination.<br/>
- In order to avoid overhead the algorithm runs in-place
- on A - if A should not be modified the client must supply a copy.
- </summary>
- <param name="a">A an nxn matrix in row/column order )modified by this method)</param>
- <param name="b">A vector of length n</param>
- <exception cref="T:System.ArgumentException">if the matrix is the wrong size</exception>
- <returns>
- <list type="bullet">
- <item><description>A vector containing the solution (if any)</description></item>
- <item><description><c>null</c> if the system has no or no unique solution</description></item>
- </list>
- </returns>
- </member>
- <member name="T:NetTopologySuite.Geometries.Utilities.NoninvertibleTransformationException">
- <summary>
- Indicates that an <see cref="T:NetTopologySuite.Geometries.Utilities.AffineTransformation"/> is non-invertible.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="T:NetTopologySuite.Geometries.Utilities.PointExtracter">
- <summary>
- Extracts all the 0-dimensional (<c>Point</c>) components from a <c>Geometry</c>.
- </summary>
- <seealso cref="T:NetTopologySuite.Geometries.Utilities.GeometryExtracter"/>
- <seealso cref="T:NetTopologySuite.Geometries.Utilities.Extracter"/>
- <seealso cref="T:NetTopologySuite.Geometries.Utilities.Extracter`1"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.PointExtracter.GetPoints``1(NetTopologySuite.Geometries.Geometry,``0)">
- <summary>
- 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"/>.
- </summary>
- <param name="geom">The geometry from which to extract</param>
- <param name="list">The list to add the extracted elements to</param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.PointExtracter.GetPoints(NetTopologySuite.Geometries.Geometry)">
- <summary>
- 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"/>.
- </summary>
- <param name="geom">the geometry from which to extract</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.PointExtracter.#ctor(System.Collections.Generic.ICollection{NetTopologySuite.Geometries.Geometry})">
- <summary>
- Constructs a PointExtracterFilter with a list in which to store Points found.
- </summary>
- <param name="pts"></param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.PointExtracter.Filter(NetTopologySuite.Geometries.Geometry)">
- <summary>
-
- </summary>
- <param name="geom"></param>
- </member>
- <member name="T:NetTopologySuite.Geometries.Utilities.PolygonalExtracter">
- <summary>
- .
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.PolygonalExtracter.GetPolygonals``1(NetTopologySuite.Geometries.Geometry,``0)">
- <summary>
- Extracts the <see cref="T:NetTopologySuite.Geometries.Polygon"/> and <see cref="T:NetTopologySuite.Geometries.MultiPolygon"/> elements from a <see cref="T:NetTopologySuite.Geometries.Geometry"/>
- and adds them to the provided list.
- </summary>
- <param name="geom">The geometry from which to extract</param>
- <param name="list">The list to add the extracted elements to</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.PolygonalExtracter.GetPolygonals``1(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Extracts the <see cref="T:NetTopologySuite.Geometries.Polygon"/> and <see cref="T:NetTopologySuite.Geometries.MultiPolygon"/> elements from a <see cref="T:NetTopologySuite.Geometries.Geometry"/>
- and returns them in a list.
- </summary>
- <param name="geom">The geometry from which to extract</param>
- </member>
- <member name="T:NetTopologySuite.Geometries.Utilities.PolygonExtracter">
- <summary>
- Extracts all the <see cref="T:NetTopologySuite.Geometries.Polygon"/> elements from a <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
- </summary>
- <seealso cref="T:NetTopologySuite.Geometries.Utilities.GeometryExtracter"/>
- <seealso cref="T:NetTopologySuite.Geometries.Utilities.Extracter"/>
- <seealso cref="T:NetTopologySuite.Geometries.Utilities.Extracter`1"/>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.PolygonExtracter.GetPolygons(NetTopologySuite.Geometries.Geometry,System.Collections.Generic.IList{NetTopologySuite.Geometries.Geometry})">
- <summary>
- 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"/>.
- </summary>
- <param name="geom">The geometry from which to extract</param>
- <param name="list">The list to add the extracted elements to</param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.PolygonExtracter.GetPolygons(NetTopologySuite.Geometries.Geometry)">
- <summary>
- 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"/>.
- </summary>
- <param name="geom">The geometry from which to extract</param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.PolygonExtracter.#ctor(System.Collections.Generic.IList{NetTopologySuite.Geometries.Geometry})">
- <summary>
- Constructs a PolygonExtracterFilter with a list in which to store Polygons found.
- </summary>
- <param name="comps"></param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.PolygonExtracter.Filter(NetTopologySuite.Geometries.Geometry)">
- <summary>
-
- </summary>
- <param name="geom"></param>
- </member>
- <member name="T:NetTopologySuite.Geometries.Utilities.ShortCircuitedGeometryVisitor">
- <summary>
- A visitor to <see cref="T:NetTopologySuite.Geometries.Geometry"/> elements which components, which
- allows short-circuiting when a defined condition holds.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.ShortCircuitedGeometryVisitor.ApplyTo(NetTopologySuite.Geometries.Geometry)">
- <summary>
-
- </summary>
- <param name="geom"></param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.ShortCircuitedGeometryVisitor.Visit(NetTopologySuite.Geometries.Geometry)">
- <summary>
-
- </summary>
- <param name="element"></param>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.ShortCircuitedGeometryVisitor.IsDone">
- <summary>
- Reports whether visiting components can be terminated.
- Once this method returns <see langword="true"/>, it must
- continue to return <see langword="true"/> on every subsequent call.
- </summary>
- <returns>
- <see langword="true"/> if visiting can be terminated.
- </returns>
- </member>
- <member name="T:NetTopologySuite.Geometries.Utilities.SineStarFactory">
- <summary>
- Creates geometries which are shaped like multi-armed stars with each arm shaped like a sine wave.
- These kinds of geometries are useful as a more complex geometry for testing algorithms.
- </summary>
- <author>
- Martin Davis
- </author>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.SineStarFactory.Create(NetTopologySuite.Geometries.Coordinate,System.Double,System.Int32,System.Int32,System.Double)">
- <summary>
- Creates a sine star with the given parameters.
- </summary>
- <param name="origin">The origin point.</param>
- <param name="size">The size of the star.</param>
- <param name="nPts">The number of points in the star.</param>
- <param name="nArms">The number of arms to generate.</param>
- <param name="armLengthRatio">The arm length ratio.</param>
- <returns>A sine star shape.</returns>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.SineStarFactory.#ctor">
- <summary>
- Creates a factory which will create sine stars using the default <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>
- </summary>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.SineStarFactory.#ctor(NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
- Creates a factory which will create sine stars using the given <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>
- </summary>
- <param name="geomFact">The factory to use</param>
- </member>
- <member name="P:NetTopologySuite.Geometries.Utilities.SineStarFactory.NumArms">
- <summary>Gets/Sets the number of arms in the star</summary>
- </member>
- <member name="P:NetTopologySuite.Geometries.Utilities.SineStarFactory.ArmLengthRatio">
- <summary>
- Gets or sets the ratio of the length of each arm to the radius of the star.
- A smaller number makes the arms shorter.
- </summary>
- <remarks>Value should be between 0.0 and 1.0</remarks>
- </member>
- <member name="M:NetTopologySuite.Geometries.Utilities.SineStarFactory.CreateSineStar">
- <summary>
- Generates the geometry for the sine star
- </summary>
- <returns>The geometry representing the sine star</returns>
- </member>
- <member name="T:NetTopologySuite.GeometriesGraph.Depth">
- <summary>
- A Depth object records the topological depth of the sides
- of an Edge for up to two Geometries.
- </summary>
- </member>
- <member name="F:NetTopologySuite.GeometriesGraph.Depth.null">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Depth.DepthAtLocation(NetTopologySuite.Geometries.Location)">
- <summary>
-
- </summary>
- <param name="_location"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Depth.#ctor">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Depth.GetDepth(System.Int32,NetTopologySuite.GeometriesGraph.Positions)">
- <summary>
-
- </summary>
- <param name="geomIndex"></param>
- <param name="posIndex"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Depth.GetDepth(System.Int32,NetTopologySuite.Geometries.Position)">
- <summary>
-
- </summary>
- <param name="geomIndex"></param>
- <param name="posIndex"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Depth.SetDepth(System.Int32,NetTopologySuite.GeometriesGraph.Positions,System.Int32)">
- <summary>
-
- </summary>
- <param name="geomIndex"></param>
- <param name="posIndex"></param>
- <param name="depthValue"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Depth.SetDepth(System.Int32,NetTopologySuite.Geometries.Position,System.Int32)">
- <summary>
-
- </summary>
- <param name="geomIndex"></param>
- <param name="posIndex"></param>
- <param name="depthValue"></param>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.Depth.Item(System.Int32,NetTopologySuite.GeometriesGraph.Positions)">
- <summary>
- Calls GetDepth and SetDepth.
- </summary>
- <param name="geomIndex"></param>
- <param name="posIndex"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Depth.GetLocation(System.Int32,NetTopologySuite.GeometriesGraph.Positions)">
- <summary>
-
- </summary>
- <param name="geomIndex"></param>
- <param name="posIndex"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Depth.GetLocation(System.Int32,NetTopologySuite.Geometries.Position)">
- <summary>
-
- </summary>
- <param name="geomIndex"></param>
- <param name="posIndex"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Depth.Add(System.Int32,NetTopologySuite.GeometriesGraph.Positions,NetTopologySuite.Geometries.Location)">
- <summary>
-
- </summary>
- <param name="geomIndex"></param>
- <param name="posIndex"></param>
- <param name="_location"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Depth.IsNull">
- <summary>
- A Depth object is null (has never been initialized) if all depths are null.
- </summary>
- <returns><c>true</c> if depth is null (has never been initialized)</returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Depth.IsNull(System.Int32)">
- <summary>
-
- </summary>
- <param name="geomIndex"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Depth.IsNull(System.Int32,NetTopologySuite.GeometriesGraph.Positions)">
- <summary>
-
- </summary>
- <param name="geomIndex"></param>
- <param name="posIndex"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Depth.IsNull(System.Int32,NetTopologySuite.Geometries.Position)">
- <summary>
-
- </summary>
- <param name="geomIndex"></param>
- <param name="posIndex"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Depth.Add(NetTopologySuite.GeometriesGraph.Label)">
- <summary>
-
- </summary>
- <param name="lbl"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Depth.GetDelta(System.Int32)">
- <summary>
-
- </summary>
- <param name="geomIndex"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Depth.Normalize">
- <summary>
- Normalize the depths for each point, if they are non-null.
- A normalized depth
- has depth values in the set { 0, 1 }.
- Normalizing the depths
- involves reducing the depths by the same amount so that at least
- one of them is 0. If the remaining value is > 0, it is set to 1.
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Depth.ToString">
- <summary>
-
- </summary>
- <returns></returns>
- </member>
- <member name="T:NetTopologySuite.GeometriesGraph.DirectedEdge">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.DirectedEdge.DepthFactor(NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Location)">
- <summary>
- Computes the factor for the change in depth when moving from one location to another.
- E.g. if crossing from the <see cref="F:NetTopologySuite.Geometries.Location.Interior"/> to the <see cref="F:NetTopologySuite.Geometries.Location.Exterior"/>
- the depth decreases, so the factor is -1.
- </summary>
- <param name="currLocation">The current location</param>
- <param name="nextLocation">The next location</param>
- <returns>Change of depth moving from <paramref name="currLocation"/> to <paramref name="nextLocation"/></returns>
- </member>
- <member name="F:NetTopologySuite.GeometriesGraph.DirectedEdge._depth">
- <summary>
- The depth of each side (position) of this edge.
- The 0 element of the array is never used.
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.DirectedEdge.#ctor(NetTopologySuite.GeometriesGraph.Edge,System.Boolean)">
- <summary>
-
- </summary>
- <param name="edge"></param>
- <param name="isForward"></param>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.DirectedEdge.InResult">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.DirectedEdge.IsInResult">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.DirectedEdge.Visited">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.DirectedEdge.IsVisited">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.DirectedEdge.EdgeRing">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.DirectedEdge.MinEdgeRing">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.DirectedEdge.GetDepth(NetTopologySuite.GeometriesGraph.Positions)">
- <summary>
-
- </summary>
- <param name="position"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.DirectedEdge.GetDepth(NetTopologySuite.Geometries.Position)">
- <summary>
-
- </summary>
- <param name="position"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.DirectedEdge.SetDepth(NetTopologySuite.GeometriesGraph.Positions,System.Int32)">
- <summary>
-
- </summary>
- <param name="position"></param>
- <param name="depthVal"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.DirectedEdge.SetDepth(NetTopologySuite.Geometries.Position,System.Int32)">
- <summary>
- Set depth for a position
- </summary>
- <param name="position">The position to update</param>
- <param name="depthVal">The depth at the provided position</param>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.DirectedEdge.DepthDelta">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.DirectedEdge.VisitedEdge">
- <summary>
- Gets or sets a value indicating if both Visited
- and Sym.Visited are <c>true</c>.
- <para/>
- Setting the property marks both DirectedEdges attached to a given Edge.
- <para/>
- This is used for edges corresponding to lines, which will only
- appear oriented in a single direction in the result.
- </summary>
- <returns></returns>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.DirectedEdge.IsForward">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.DirectedEdge.Sym">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.DirectedEdge.Next">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.DirectedEdge.NextMin">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.DirectedEdge.IsLineEdge">
- <summary>
- Gets a value indicating if this edge is a line edge.
- <para/>It is if
- <list type="bullet">
- <item><description>at least one of the labels is a line label</description></item>
- <item><description>any labels which are not line labels have all Location = Exterior.</description></item>
- </list>
- </summary>
- <returns><c>true</c> if edge is a line edge</returns>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.DirectedEdge.IsInteriorAreaEdge">
- <summary>
- This is an interior Area edge if
- its label is an Area label for both Geometries
- and for each Geometry both sides are in the interior.
- </summary>
- <returns><c>true</c> if this is an interior Area edge.</returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.DirectedEdge.ComputeDirectedLabel">
- <summary>
- Compute the label in the appropriate orientation for this DirEdge.
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.DirectedEdge.SetEdgeDepths(NetTopologySuite.GeometriesGraph.Positions,System.Int32)">
- <summary>
- Set both edge depths.
- One depth for a given side is provided.
- The other is computed depending on the Location
- transition and the depthDelta of the edge.
- </summary>
- <param name="position">The position to update</param>
- <param name="depth">The depth at the provided position</param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.DirectedEdge.SetEdgeDepths(NetTopologySuite.Geometries.Position,System.Int32)">
- <summary>
- Set both edge depths.
- One depth for a given side is provided.
- The other is computed depending on the Location
- transition and the depthDelta of the edge.
- </summary>
- <param name="position">The position to update</param>
- <param name="depth">The depth at the provided position</param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.DirectedEdge.Write(System.IO.StreamWriter)">
- <summary>
-
- </summary>
- <param name="outstream"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.DirectedEdge.WriteEdge(System.IO.StreamWriter)">
- <summary>
-
- </summary>
- <param name="outstream"></param>
- </member>
- <member name="T:NetTopologySuite.GeometriesGraph.DirectedEdgeStar">
- <summary>
- A DirectedEdgeStar is an ordered list of outgoing DirectedEdges around a node.
- It supports labelling the edges as well as linking the edges to form both
- MaximalEdgeRings and MinimalEdgeRings.
- </summary>
- </member>
- <member name="F:NetTopologySuite.GeometriesGraph.DirectedEdgeStar._resultAreaEdgeList">
- <summary>
- A list of all outgoing edges in the result, in CCW order.
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.DirectedEdgeStar.Insert(NetTopologySuite.GeometriesGraph.EdgeEnd)">
- <summary>
- Insert a directed edge in the list.
- </summary>
- <param name="ee"></param>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.DirectedEdgeStar.Label">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.DirectedEdgeStar.GetOutgoingDegree">
- <summary>
-
- </summary>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.DirectedEdgeStar.GetOutgoingDegree(NetTopologySuite.GeometriesGraph.EdgeRing)">
- <summary>
-
- </summary>
- <param name="er"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.DirectedEdgeStar.GetRightmostEdge">
- <summary>
-
- </summary>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.DirectedEdgeStar.ComputeLabelling(NetTopologySuite.GeometriesGraph.GeometryGraph[])">
- <summary>
- Compute the labelling for all dirEdges in this star, as well
- as the overall labelling.
- </summary>
- <param name="geom"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.DirectedEdgeStar.MergeSymLabels">
- <summary>
- For each dirEdge in the star, merge the label .
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.DirectedEdgeStar.UpdateLabelling(NetTopologySuite.GeometriesGraph.Label)">
- <summary>
- Update incomplete dirEdge labels from the labeling for the node.
- </summary>
- <param name="nodeLabel">The label to apply</param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.DirectedEdgeStar.GetResultAreaEdges">
- <summary>
-
- </summary>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.DirectedEdgeStar.LinkResultDirectedEdges">
- <summary>
- Traverse the star of DirectedEdges, linking the included edges together.
- To link two dirEdges, the next pointer for an incoming dirEdge
- is set to the next outgoing edge.
- DirEdges are only linked if:
- they belong to an area (i.e. they have sides)
- they are marked as being in the result
- Edges are linked in CCW order (the order they are stored).
- This means that rings have their face on the Right
- (in other words, the topological location of the face is given by the RHS label of the DirectedEdge).
- PRECONDITION: No pair of dirEdges are both marked as being in the result.
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.DirectedEdgeStar.LinkMinimalDirectedEdges(NetTopologySuite.GeometriesGraph.EdgeRing)">
- <summary>
-
- </summary>
- <param name="er"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.DirectedEdgeStar.LinkAllDirectedEdges">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.DirectedEdgeStar.FindCoveredLineEdges">
- <summary>
- Traverse the star of edges, maintaining the current location in the result
- area at this node (if any).
- If any L edges are found in the interior of the result, mark them as covered.
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.DirectedEdgeStar.ComputeDepths(NetTopologySuite.GeometriesGraph.DirectedEdge)">
- <summary>
-
- </summary>
- <param name="de"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.DirectedEdgeStar.ComputeDepths(System.Int32,System.Int32,System.Int32)">
- <summary>
- Compute the DirectedEdge depths for a subsequence of the edge array.
- </summary>
- <returns>The last depth assigned (from the R side of the last edge visited).</returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.DirectedEdgeStar.Write(System.IO.StreamWriter)">
- <summary>
-
- </summary>
- <param name="outstream"></param>
- </member>
- <member name="T:NetTopologySuite.GeometriesGraph.Edge">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Edge.UpdateIM(NetTopologySuite.GeometriesGraph.Label,NetTopologySuite.Geometries.IntersectionMatrix)">
- <summary>
- Updates an IM from the label for an edge.
- Handles edges from both L and A geometries.
- </summary>
- <param name="im">An intersection matrix</param>
- <param name="label">A label</param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Edge.#ctor(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.GeometriesGraph.Label)">
- <summary>
-
- </summary>
- <param name="pts"></param>
- <param name="label"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Edge.#ctor(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
-
- </summary>
- <param name="pts"></param>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.Edge.Points">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.Edge.NumPoints">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.Edge.Name">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.Edge.Coordinates">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Edge.GetCoordinate(System.Int32)">
- <summary>
-
- </summary>
- <param name="i"></param>
- <returns></returns>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.Edge.Coordinate">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.Edge.Envelope">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.Edge.Depth">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.Edge.DepthDelta">
- <summary>
- The depthDelta is the change in depth as an edge is crossed from R to L.
- </summary>
- <returns>The change in depth as the edge is crossed from R to L.</returns>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.Edge.MaximumSegmentIndex">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.Edge.EdgeIntersectionList">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.Edge.MonotoneChainEdge">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.Edge.IsClosed">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.Edge.IsCollapsed">
- <summary>
- An Edge is collapsed if it is an Area edge and it consists of
- two segments which are equal and opposite (eg a zero-width V).
- </summary>
- <returns><c>true</c> if edge is consisting of two segments
- which are equal and of oppose orientation (Zero-width V area edge)
- </returns>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.Edge.CollapsedEdge">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.Edge.Isolated">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.Edge.IsIsolated">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Edge.AddIntersections(NetTopologySuite.Algorithm.LineIntersector,System.Int32,System.Int32)">
- <summary>
- Adds EdgeIntersections for one or both
- intersections found for a segment of an edge to the edge intersection list.
- </summary>
- <param name="li">A line intersector</param>
- <param name="segmentIndex">A segment index</param>
- <param name="geomIndex">A geometry index</param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Edge.AddIntersection(NetTopologySuite.Algorithm.LineIntersector,System.Int32,System.Int32,System.Int32)">
- <summary>
- Add an EdgeIntersection for intersection intIndex.
- An intersection that falls exactly on a vertex of the edge is normalized
- to use the higher of the two possible segmentIndexes.
- </summary>
- <param name="li">A line intersector</param>
- <param name="segmentIndex">A segment index</param>
- <param name="geomIndex">A geometry index</param>
- <param name="intIndex">The intersection index (0 or 1)</param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Edge.ComputeIM(NetTopologySuite.Geometries.IntersectionMatrix)">
- <summary>
- Update the IM with the contribution for this component.
- A component only contributes if it has a labelling for both parent geometries.
- </summary>
- <param name="im"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Edge.Equals(System.Object)">
- <summary>
- Equals is defined to be:
- e1 equals e2
- if
- the coordinates of e1 are the same or the reverse of the coordinates in e2.
- </summary>
- <param name="o"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Edge.GetHashCode">
- <inheritdoc cref="M:System.Object.GetHashCode"/>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Edge.Equals(NetTopologySuite.GeometriesGraph.Edge)">
- <summary>
- Equals is defined to be:
- e1 equals e2
- if
- the coordinates of e1 are the same or the reverse of the coordinates in e2.
- </summary>
- <param name="e"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Edge.op_Equality(NetTopologySuite.GeometriesGraph.Edge,NetTopologySuite.GeometriesGraph.Edge)">
- <summary>
-
- </summary>
- <param name="obj1"></param>
- <param name="obj2"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Edge.op_Inequality(NetTopologySuite.GeometriesGraph.Edge,NetTopologySuite.GeometriesGraph.Edge)">
- <summary>
-
- </summary>
- <param name="obj1"></param>
- <param name="obj2"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Edge.IsPointwiseEqual(NetTopologySuite.GeometriesGraph.Edge)">
- <summary>
- Check if coordinate sequences of the Edges are identical.
- </summary>
- <param name="e">The edge to test</param>
- <returns>
- <c>true</c> if the coordinate sequences of the Edges are identical.
- </returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Edge.ToString">
- <inheritdoc cref="M:System.Object.ToString"/>>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Edge.Write(System.IO.TextWriter)">
- <summary>
-
- </summary>
- <param name="outstream"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Edge.WriteReverse(System.IO.TextWriter)">
- <summary>
-
- </summary>
- <param name="outstream"></param>
- </member>
- <member name="T:NetTopologySuite.GeometriesGraph.EdgeEnd">
- <summary>
- Models the end of an edge incident on a node.
- </summary>
- <remarks>
- <para>
- EdgeEnds have a direction determined by the direction of the ray from the initial
- point to the next point.
- </para>
- <para>
- EdgeEnds are IComparable under the ordering "a has a greater angle with the x-axis than b".
- This ordering is used to sort EdgeEnds around a node.
- </para>
- </remarks>
- </member>
- <member name="F:NetTopologySuite.GeometriesGraph.EdgeEnd._label">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeEnd.#ctor(NetTopologySuite.GeometriesGraph.Edge)">
- <summary>
-
- </summary>
- <param name="edge"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeEnd.#ctor(NetTopologySuite.GeometriesGraph.Edge,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
-
- </summary>
- <param name="edge"></param>
- <param name="p0"></param>
- <param name="p1"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeEnd.#ctor(NetTopologySuite.GeometriesGraph.Edge,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.GeometriesGraph.Label)">
- <summary>
-
- </summary>
- <param name="edge"></param>
- <param name="p0"></param>
- <param name="p1"></param>
- <param name="label"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeEnd.Init(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
-
- </summary>
- <param name="p0"></param>
- <param name="p1"></param>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.EdgeEnd.Edge">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.EdgeEnd.Label">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.EdgeEnd.Coordinate">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.EdgeEnd.DirectedCoordinate">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.EdgeEnd.Quadrant">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.EdgeEnd.QuadrantEx">
- <summary>
- Gets a value indicating the <c>Quadrant</c> this <c>EdgeEnd</c> lies in.
- </summary>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.EdgeEnd.Dx">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.EdgeEnd.Dy">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.EdgeEnd.Node">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeEnd.CompareTo(NetTopologySuite.GeometriesGraph.EdgeEnd)">
- <summary>
-
- </summary>
- <param name="e"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeEnd.CompareDirection(NetTopologySuite.GeometriesGraph.EdgeEnd)">
- <summary>
- Implements the total order relation:
- a has a greater angle with the positive x-axis than b.
- <para/>
- Using the obvious algorithm of simply computing the angle is not robust,
- since the angle calculation is obviously susceptible to round off.
- <para/>
- A robust algorithm is:
- <list type="bullet">
- <item><description>first compare the quadrant. If the quadrants
- are different, it it trivial to determine which vector is "greater".</description></item>
- <item><description>if the vectors lie in the same quadrant, the computeOrientation function
- can be used to decide the relative orientation of the vectors.</description></item>
- </list>
- </summary>
- <param name="e">An EdgeEnd</param>
- <returns>The <see cref="T:NetTopologySuite.Algorithm.OrientationIndex"/> of <paramref name="e"/> compared to <c>this</c> <see cref="T:NetTopologySuite.GeometriesGraph.EdgeEnd"/>.</returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeEnd.ComputeLabel(NetTopologySuite.Algorithm.IBoundaryNodeRule)">
- <summary>
- Subclasses should override this if they are using labels
- </summary>
- <param name="boundaryNodeRule"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeEnd.Write(System.IO.StreamWriter)">
- <summary>
-
- </summary>
- <param name="outstream"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeEnd.ToString">
- <inheritdoc cref="M:System.Object.ToString"/>
- </member>
- <member name="T:NetTopologySuite.GeometriesGraph.EdgeEndStar">
- <summary>
- A EdgeEndStar is an ordered list of EdgeEnds around a node.
- They are maintained in CCW order (starting with the positive x-axis) around the node
- for efficient lookup and topology building.
- </summary>
- </member>
- <member name="F:NetTopologySuite.GeometriesGraph.EdgeEndStar.edgeMap">
- <summary>
- A map which maintains the edges in sorted order around the node.
- </summary>
- </member>
- <member name="F:NetTopologySuite.GeometriesGraph.EdgeEndStar.edgeList">
- <summary>
- A list of all outgoing edges in the result, in CCW order.
- </summary>
- </member>
- <member name="F:NetTopologySuite.GeometriesGraph.EdgeEndStar._ptInAreaLocation">
- <summary>
- The location of the point for this star in Geometry i Areas.
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeEndStar.Insert(NetTopologySuite.GeometriesGraph.EdgeEnd)">
- <summary>
- Insert a EdgeEnd into this EdgeEndStar.
- </summary>
- <param name="e">An <c>EdgeEnd</c></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeEndStar.InsertEdgeEnd(NetTopologySuite.GeometriesGraph.EdgeEnd,NetTopologySuite.GeometriesGraph.EdgeEnd)">
- <summary>
- Insert an EdgeEnd into the map, and clear the edgeList cache,
- since the list of edges has now changed.
- </summary>
- <param name="e">An EdgeEnd</param>
- <param name="obj">An EdgeEnd</param>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.EdgeEndStar.Coordinate">
- <returns>
- The coordinate for the node this star is based at.
- </returns>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.EdgeEndStar.Degree">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeEndStar.GetEnumerator">
- <summary>
- Iterator access to the ordered list of edges is optimized by
- copying the map collection to a list. (This assumes that
- once an iterator is requested, it is likely that insertion into
- the map is complete).
- </summary>
- <returns>Access to ordered list of edges.</returns>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.EdgeEndStar.Edges">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeEndStar.GetNextCW(NetTopologySuite.GeometriesGraph.EdgeEnd)">
- <summary>
-
- </summary>
- <param name="ee"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeEndStar.ComputeLabelling(NetTopologySuite.GeometriesGraph.GeometryGraph[])">
- <summary>
-
- </summary>
- <param name="geomGraph"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeEndStar.ComputeEdgeEndLabels(NetTopologySuite.Algorithm.IBoundaryNodeRule)">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeEndStar.GetLocation(System.Int32,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.GeometriesGraph.GeometryGraph[])">
- <summary>
-
- </summary>
- <param name="geomIndex"></param>
- <param name="p"></param>
- <param name="geom"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeEndStar.IsAreaLabelsConsistent(NetTopologySuite.GeometriesGraph.GeometryGraph)">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeEndStar.CheckAreaLabelsConsistent(System.Int32)">
- <summary>
-
- </summary>
- <param name="geomIndex"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeEndStar.PropagateSideLabels(System.Int32)">
- <summary>
-
- </summary>
- <param name="geomIndex"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeEndStar.FindIndex(NetTopologySuite.GeometriesGraph.EdgeEnd)">
- <summary>
-
- </summary>
- <param name="eSearch"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeEndStar.Write(System.IO.StreamWriter)">
- <summary>
-
- </summary>
- <param name="outstream"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeEndStar.ToString">
- <inheritdoc cref="M:System.Object.ToString"/>>
- </member>
- <member name="T:NetTopologySuite.GeometriesGraph.EdgeIntersection">
- <summary>
- An EdgeIntersection represents a point on an
- edge which intersects with another edge.
- The intersection may either be a single point, or a line segment
- (in which case this point is the start of the line segment)
- The label attached to this intersection point applies to
- the edge from this point forwards, until the next
- intersection or the end of the edge.
- The intersection point must be precise.
- </summary>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.EdgeIntersection.Coordinate">
- <summary>
- The point of intersection.
- </summary>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.EdgeIntersection.SegmentIndex">
- <summary>
- The index of the containing line segment in the parent edge.
- </summary>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.EdgeIntersection.Distance">
- <summary>
- The edge distance of this point along the containing line segment.
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeIntersection.#ctor(NetTopologySuite.Geometries.Coordinate,System.Int32,System.Double)">
- <summary>
- Creates an instance of this class
- </summary>
- <param name="coord">The point of intersection</param>
- <param name="segmentIndex">The index of the containing line segment in the parent edge</param>
- <param name="dist">The edge distance or this point along the containing line segment</param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeIntersection.CompareTo(System.Object)">
- <inheritdoc cref="M:System.IComparable.CompareTo(System.Object)"/>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeIntersection.Compare(System.Int32,System.Double)">
- <summary>
- Comparison with segment and distance.
- </summary>
- <param name="segmentIndex">The index of the containing line segment</param>
- <param name="dist">The distance of this point along the containing line segment</param>
- <returns>
- <c>-1</c> this EdgeIntersection is located before the argument location,
- <c>0</c> this EdgeIntersection is at the argument location,
- <c>1</c> this EdgeIntersection is located after the argument location.
- </returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeIntersection.IsEndPoint(System.Int32)">
- <summary>
-
- </summary>
- <param name="maxSegmentIndex"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeIntersection.Write(System.IO.StreamWriter)">
- <summary>
-
- </summary>
- <param name="outstream"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeIntersection.ToString">
- <inheritdoc cref="M:System.Object.ToString"/>
- </member>
- <member name="T:NetTopologySuite.GeometriesGraph.EdgeIntersectionList">
- <summary>
- A list of edge intersections along an Edge.
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeIntersectionList.#ctor(NetTopologySuite.GeometriesGraph.Edge)">
- <summary>
-
- </summary>
- <param name="edge"></param>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.EdgeIntersectionList.Count">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeIntersectionList.Add(NetTopologySuite.Geometries.Coordinate,System.Int32,System.Double)">
- <summary>
- Adds an intersection into the list, if it isn't already there.
- The input segmentIndex and dist are expected to be normalized.
- </summary>
- <param name="intPt">The point of intersection</param>
- <param name="segmentIndex">The index of the containing line segment in the parent edge</param>
- <param name="dist">The edge distance of this point along the containing line segment</param>
- <returns>The EdgeIntersection found or added.</returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeIntersectionList.GetEnumerator">
- <summary>
- Returns an iterator of EdgeIntersections.
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeIntersectionList.IsIntersection(NetTopologySuite.Geometries.Coordinate)">
- <summary>
-
- </summary>
- <param name="pt"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeIntersectionList.AddEndpoints">
- <summary>
- Adds entries for the first and last points of the edge to the list.
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeIntersectionList.AddSplitEdges(System.Collections.Generic.IList{NetTopologySuite.GeometriesGraph.Edge})">
- <summary>
- Creates new edges for all the edges that the intersections in this
- list split the parent edge into.
- Adds the edges to the input list (this is so a single list
- can be used to accumulate all split edges for a Geometry).
- </summary>
- <param name="edgeList"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeIntersectionList.CreateSplitEdge(NetTopologySuite.GeometriesGraph.EdgeIntersection,NetTopologySuite.GeometriesGraph.EdgeIntersection)">
- <summary>
- Create a new "split edge" with the section of points between
- (and including) the two intersections.
- The label for the new edge is the same as the label for the parent edge.
- </summary>
- <param name="ei0"></param>
- <param name="ei1"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeIntersectionList.Write(System.IO.StreamWriter)">
- <summary>
-
- </summary>
- <param name="outstream"></param>
- </member>
- <member name="T:NetTopologySuite.GeometriesGraph.EdgeList">
- <summary>
- A EdgeList is a list of Edges. It supports locating edges
- that are point-wise equals to a target edge.
- </summary>
- </member>
- <member name="F:NetTopologySuite.GeometriesGraph.EdgeList._ocaMap">
- <summary>
- An index of the edges, for fast lookup.
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeList.Remove(NetTopologySuite.GeometriesGraph.Edge)">
- <summary>
- Remove the selected Edge element from the list if present.
- </summary>
- <param name="e">Edge element to remove from list</param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeList.Add(NetTopologySuite.GeometriesGraph.Edge)">
- <summary>
- Insert an edge unless it is already in the list.
- </summary>
- <param name="e">An <c>Edge</c></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeList.AddAll(System.Collections.Generic.IEnumerable{NetTopologySuite.GeometriesGraph.Edge})">
- <summary>
-
- </summary>
- <param name="edgeColl"></param>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.EdgeList.Edges">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeList.FindEqualEdge(NetTopologySuite.GeometriesGraph.Edge)">
- <summary>
- If there is an edge equal to e already in the list, return it.
- Otherwise return null.
- </summary>
- <param name="e">An <c>Edge</c></param>
- <returns>
- The equal edge, if there is one already in the list,
- <c>null</c> otherwise.
- </returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeList.GetEnumerator">
- <summary>
-
- </summary>
- <returns></returns>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.EdgeList.Item(System.Int32)">
- <summary>
-
- </summary>
- <param name="index"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeList.Get(System.Int32)">
- <summary>
-
- </summary>
- <param name="i"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeList.FindEdgeIndex(NetTopologySuite.GeometriesGraph.Edge)">
- <summary>
- If the edge e is already in the list, return its index.
- </summary>
- <param name="e">An <c>Edge</c></param>
- <returns>
- The index, if e is already in the list,
- <c>-1</c> otherwise.
- </returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeList.Write(System.IO.StreamWriter)">
- <summary>
-
- </summary>
- <param name="outstream"></param>
- </member>
- <member name="T:NetTopologySuite.GeometriesGraph.EdgeNodingValidator">
- <summary>
- Validates that a collection of <see cref="T:NetTopologySuite.GeometriesGraph.Edge"/> is correctly noded.
- Throws an appropriate exception if an noding error is found.
- <remarks>
- Uses <see cref="T:NetTopologySuite.Noding.FastNodingValidator"/> to perform the validation.
- </remarks>
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeNodingValidator.CheckValid(System.Collections.Generic.IEnumerable{NetTopologySuite.GeometriesGraph.Edge})">
- <summary>
- Checks whether the supplied <see cref="T:NetTopologySuite.GeometriesGraph.Edge"/>s are correctly noded.
- </summary>
- <param name="edges">an enumeration of Edges.</param>
- <exception cref="T:NetTopologySuite.Geometries.TopologyException">If the SegmentStrings are not correctly noded</exception>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeNodingValidator.ToSegmentStrings(System.Collections.Generic.IEnumerable{NetTopologySuite.GeometriesGraph.Edge})">
- <summary>
- Builds an enumeration of segment strings from the provided <paramref name="edges"/>.
- </summary>
- <param name="edges">An enumeration of <c>Edge</c>s</param>
- <returns>An enumeration of <c>ISegmentString</c>s</returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeNodingValidator.#ctor(System.Collections.Generic.IEnumerable{NetTopologySuite.GeometriesGraph.Edge})">
- <summary>
- Creates a new validator for the given collection of <see cref="T:NetTopologySuite.GeometriesGraph.Edge"/>s.
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeNodingValidator.CheckValid">
- <summary>
- Checks whether the supplied edges are correctly noded.
- </summary>
- <exception cref="T:NetTopologySuite.Geometries.TopologyException">If the SegmentStrings are not correctly noded</exception>
- </member>
- <member name="T:NetTopologySuite.GeometriesGraph.EdgeRing">
- <summary>
-
- </summary>
- </member>
- <member name="F:NetTopologySuite.GeometriesGraph.EdgeRing.startDe">
- <summary>
- The directed edge which starts the list of edges for this EdgeRing.
- </summary>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.EdgeRing.GeometryFactory">
- <summary>
- A <c>GeometryFactory</c> to use.
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeRing.#ctor(NetTopologySuite.GeometriesGraph.DirectedEdge,NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
- Creates an instance of this class using the provided <paramref name="start"/> and <paramref name="geometryFactory"/>.
- </summary>
- <param name="start">The start <c>DirectedEdge</c> for the <c>EdgeRing</c> </param>
- <param name="geometryFactory">A <c>GeometryFactory</c></param>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.EdgeRing.IsIsolated">
- <summary>
- Gets a value indicating if this <c>EdgeRing</c> is isolated
- </summary>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.EdgeRing.IsHole">
- <summary>
- Gets a value indicating if this <c>EdgeRing</c> is a hole of a <c>Polygon</c>
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeRing.GetCoordinate(System.Int32)">
- <summary>
- Access a <c>Coordinate</c> of this <c>EdgeRing</c> by its index.
- </summary>
- <param name="i">The index of the <c>Coordinate</c></param>
- <returns>The <c>Coordinate</c> at index <paramref name="i"/></returns>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.EdgeRing.LinearRing">
- <summary>
- Gets the geometry representation of this <c>EdgeRing</c>
- </summary>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.EdgeRing.Label">
- <summary>
- Gets a value indicating the topological relationship of this <c>EdgeRing</c>
- </summary>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.EdgeRing.IsShell">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.EdgeRing.Shell">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeRing.AddHole(NetTopologySuite.GeometriesGraph.EdgeRing)">
- <summary>
- Add an <c>EdgeRing</c> representing a hole
- </summary>
- <param name="ring">The ring to add</param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeRing.ToPolygon(NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
- Create the <c>Polygon</c> described by this <c>EdgeRing</c>
- </summary>
- <param name="geometryFactory">The <c>GeometryFactory</c> to use.</param>
- <returns>A <c>Polygon</c></returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeRing.ComputeRing">
- <summary>
- Compute a LinearRing from the point list previously collected.
- Test if the ring is a hole (i.e. if it is CCW) and set the hole flag
- accordingly.
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeRing.GetNext(NetTopologySuite.GeometriesGraph.DirectedEdge)">
- <summary>
-
- </summary>
- <param name="de"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeRing.SetEdgeRing(NetTopologySuite.GeometriesGraph.DirectedEdge,NetTopologySuite.GeometriesGraph.EdgeRing)">
- <summary>
-
- </summary>
- <param name="de"></param>
- <param name="er"></param>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.EdgeRing.Edges">
- <summary>
- Returns the list of DirectedEdges that make up this EdgeRing.
- </summary>
- <returns>A list of <c>DirectedEdge</c>s</returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeRing.ComputePoints(NetTopologySuite.GeometriesGraph.DirectedEdge)">
- <summary>
- Collect all the points from the DirectedEdges of this ring into a contiguous list.
- </summary>
- <param name="start"></param>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.EdgeRing.MaxNodeDegree">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeRing.ComputeMaxNodeDegree">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeRing.SetInResult">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeRing.MergeLabel(NetTopologySuite.GeometriesGraph.Label)">
- <summary>
-
- </summary>
- <param name="deLabel"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeRing.MergeLabel(NetTopologySuite.GeometriesGraph.Label,System.Int32)">
- <summary>
- Merge the RHS label from a DirectedEdge into the label for this EdgeRing.
- The DirectedEdge label may be null. This is acceptable - it results
- from a node which is NOT an intersection node between the Geometries
- (e.g. the end node of a LinearRing). In this case the DirectedEdge label
- does not contribute any information to the overall labelling, and is simply skipped.
- </summary>
- <param name="deLabel"></param>
- <param name="geomIndex"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeRing.AddPoints(NetTopologySuite.GeometriesGraph.Edge,System.Boolean,System.Boolean)">
- <summary>
-
- </summary>
- <param name="edge"></param>
- <param name="isForward"></param>
- <param name="isFirstEdge"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.EdgeRing.ContainsPoint(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- This method will cause the ring to be computed.
- It will also check any holes, if they have been assigned.
- </summary>
- <param name="p">The point to test</param>
- <returns><c>true</c> if the ring contains point <paramref name="p"/></returns>
- </member>
- <member name="T:NetTopologySuite.GeometriesGraph.GeometryGraph">
- <summary>
- A GeometryGraph is a graph that models a given Geometry.
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.GeometryGraph.DetermineBoundary(NetTopologySuite.Algorithm.IBoundaryNodeRule,System.Int32)">
- <summary>
- Determine boundary
- </summary>
- <param name="boundaryNodeRule">The boundary node rule to apply for determination of the boundary</param>
- <param name="boundaryCount">The number of component boundaries that a point occurs in.</param>
- <returns><see cref="F:NetTopologySuite.Geometries.Location.Boundary"/> or <see cref="F:NetTopologySuite.Geometries.Location.Interior"/></returns>
- </member>
- <member name="F:NetTopologySuite.GeometriesGraph.GeometryGraph._lineEdgeMap">
- <summary>
- The lineEdgeMap is a map of the linestring components of the
- parentGeometry to the edges which are derived from them.
- This is used to efficiently perform findEdge queries
- </summary>
- </member>
- <member name="F:NetTopologySuite.GeometriesGraph.GeometryGraph._useBoundaryDeterminationRule">
- <summary>
- If this flag is true, the Boundary Determination Rule will used when deciding
- whether nodes are in the boundary or not
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.GeometryGraph.CreateEdgeSetIntersector">
- <summary>
-
- </summary>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.GeometryGraph.#ctor(System.Int32,NetTopologySuite.Geometries.Geometry)">
- <summary>
-
- </summary>
- <param name="argIndex"></param>
- <param name="parentGeom"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.GeometryGraph.#ctor(System.Int32,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Algorithm.IBoundaryNodeRule)">
- <summary>
-
- </summary>
- <param name="argIndex"></param>
- <param name="parentGeom"></param>
- <param name="boundaryNodeRule"></param>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.GeometryGraph.HasTooFewPoints">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.GeometryGraph.InvalidPoint">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.GeometryGraph.Geometry">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.GeometryGraph.BoundaryNodeRule">
- <summary>
- Gets the <see cref="T:NetTopologySuite.Algorithm.IBoundaryNodeRule"/> used with this geometry graph.
- </summary>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.GeometryGraph.BoundaryNodes">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.GeometryGraph.GetBoundaryPoints">
- <summary>
-
- </summary>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.GeometryGraph.FindEdge(NetTopologySuite.Geometries.LineString)">
- <summary>
-
- </summary>
- <param name="line"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.GeometryGraph.ComputeSplitEdges(System.Collections.Generic.IList{NetTopologySuite.GeometriesGraph.Edge})">
- <summary>
-
- </summary>
- <param name="edgelist"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.GeometryGraph.Add(NetTopologySuite.Geometries.Geometry)">
- <summary>
-
- </summary>
- <param name="g"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.GeometryGraph.AddPoint(NetTopologySuite.Geometries.Point)">
- <summary>
- Add a Point to the graph.
- </summary>
- <param name="p"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.GeometryGraph.AddPolygonRing(NetTopologySuite.Geometries.LinearRing,NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Location)">
- <summary>
- Adds a polygon ring to the graph. Empty rings are ignored.
- The left and right topological location arguments assume that the ring is oriented CW.
- If the ring is in the opposite orientation,
- the left and right locations must be interchanged.
- </summary>
- <param name="lr"></param>
- <param name="cwLeft"></param>
- <param name="cwRight"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.GeometryGraph.AddPolygon(NetTopologySuite.Geometries.Polygon)">
- <summary>
-
- </summary>
- <param name="p"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.GeometryGraph.AddLineString(NetTopologySuite.Geometries.LineString)">
- <summary>
-
- </summary>
- <param name="line"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.GeometryGraph.AddEdge(NetTopologySuite.GeometriesGraph.Edge)">
- <summary>
- Add an Edge computed externally. The label on the Edge is assumed
- to be correct.
- </summary>
- <param name="e">An <c>Edge</c></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.GeometryGraph.AddPoint(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Add a point computed externally. The point is assumed to be a
- Point Geometry part, which has a location of INTERIOR.
- </summary>
- <param name="pt">A <c>Coordinate</c></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.GeometryGraph.ComputeSelfNodes(NetTopologySuite.Algorithm.LineIntersector,System.Boolean)">
- <summary>
- Compute self-nodes, taking advantage of the Geometry type to
- minimize the number of intersection tests. (E.g. rings are
- not tested for self-intersection, since they are assumed to be valid).
- </summary>
- <param name="li">The <c>LineIntersector</c> to use.</param>
- <param name="computeRingSelfNodes">If <c>false</c>, intersection checks are optimized to not test rings for self-intersection.</param>
- <returns>The computed SegmentIntersector, containing information about the intersections found.</returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.GeometryGraph.ComputeSelfNodes(NetTopologySuite.Algorithm.LineIntersector,System.Boolean,System.Boolean)">
- <summary>
- Compute self-nodes, taking advantage of the Geometry type to
- minimize the number of intersection tests. (E.g.rings are
- not tested for self-intersection, since they are assumed to be valid).
- </summary >
- <param name="li">The <c>LineIntersector</c> to use</param>
- <param name="computeRingSelfNodes">If <c>false</c>, intersection checks are optimized to not test rings for self-intersection</param>
- <param name="isDoneIfProperInt">Short-circuit the intersection computation if a proper intersection is found</param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.GeometryGraph.ComputeEdgeIntersections(NetTopologySuite.GeometriesGraph.GeometryGraph,NetTopologySuite.Algorithm.LineIntersector,System.Boolean)">
- <summary>
-
- </summary>
- <param name="g"></param>
- <param name="li"></param>
- <param name="includeProper"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.GeometryGraph.InsertPoint(System.Int32,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Location)">
- <summary>
-
- </summary>
- <param name="argIndex"></param>
- <param name="coord"></param>
- <param name="onLocation"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.GeometryGraph.InsertBoundaryPoint(System.Int32,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Adds candidate boundary points using the current <see cref="T:NetTopologySuite.Algorithm.IBoundaryNodeRule"/>.
- This is used to add the boundary
- points of dim-1 geometries (Curves/MultiCurves).
- </summary>
- <param name="argIndex"></param>
- <param name="coord"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.GeometryGraph.AddSelfIntersectionNodes(System.Int32)">
- <summary>
-
- </summary>
- <param name="argIndex"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.GeometryGraph.AddSelfIntersectionNode(System.Int32,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Location)">
- <summary>
- Add a node for a self-intersection.
- If the node is a potential boundary node (e.g. came from an edge which
- is a boundary) then insert it as a potential boundary node.
- Otherwise, just add it as a regular node.
- </summary>
- <param name="argIndex"></param>
- <param name="coord"></param>
- <param name="loc"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.GeometryGraph.Locate(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Determines the <see cref="T:NetTopologySuite.Geometries.Location"/> of the given <see cref="T:NetTopologySuite.Geometries.Coordinate"/> in this geometry.
- </summary>
- <param name="pt">The point to test</param>
- <returns>
- The location of the point in the geometry
- </returns>
- </member>
- <member name="T:NetTopologySuite.GeometriesGraph.GraphComponent">
- <summary>
- A GraphComponent is the parent class for the objects'
- that form a graph. Each GraphComponent can carry a
- Label.
- </summary>
- </member>
- <member name="F:NetTopologySuite.GeometriesGraph.GraphComponent._label">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.GraphComponent.#ctor">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.GraphComponent.#ctor(NetTopologySuite.GeometriesGraph.Label)">
- <summary>
-
- </summary>
- <param name="label"></param>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.GraphComponent.Label">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.GraphComponent.InResult">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.GraphComponent.IsInResult">
- <summary>
- IsInResult indicates if this component has already been included in the result.
- </summary>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.GraphComponent.Covered">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.GraphComponent.IsCovered">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.GraphComponent.IsCoveredSet">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.GraphComponent.Visited">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.GraphComponent.IsVisited">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.GraphComponent.Coordinate">
- <summary>
-
- </summary>
- <returns>
- A coordinate in this component (or null, if there are none).
- </returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.GraphComponent.ComputeIM(NetTopologySuite.Geometries.IntersectionMatrix)">
- <summary>
- Compute the contribution to an IM for this component.
- </summary>
- <param name="im">An <c>IntersectionMatrix</c></param>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.GraphComponent.IsIsolated">
- <summary>
- An isolated component is one that does not intersect or touch any other
- component. This is the case if the label has valid locations for
- only a single Geometry.
- </summary>
- <returns><c>true</c> if this component is isolated.</returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.GraphComponent.UpdateIM(NetTopologySuite.Geometries.IntersectionMatrix)">
- <summary>
- Update the IM with the contribution for this component.
- A component only contributes if it has a labelling for both parent geometries.
- </summary>
- <param name="im">An <c>IntersectionMatrix</c></param>
- </member>
- <member name="T:NetTopologySuite.GeometriesGraph.Index.EdgeSetIntersector">
- <summary>
- An <c>EdgeSetIntersector</c> computes all the intersections between the
- edges in the set. It adds the computed intersections to each edge
- they are found on. It may be used in two scenarios:
- determining the internal intersections between a single set of edges
- determining the mutual intersections between two different sets of edges
- It uses a <c>SegmentIntersector</c> to compute the intersections between
- segments and to record statistics about what kinds of intersections were found.
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Index.EdgeSetIntersector.ComputeIntersections(System.Collections.Generic.IList{NetTopologySuite.GeometriesGraph.Edge},NetTopologySuite.GeometriesGraph.Index.SegmentIntersector,System.Boolean)">
- <summary>
- Computes all self-intersections between edges in a set of edges,
- allowing client to choose whether self-intersections are computed.
- </summary>
- <param name="edges">A list of edges to test for intersections.</param>
- <param name="si">The <c>SegmentIntersector</c> to use</param>
- <param name="testAllSegments"><c>true</c> if self-intersections are to be tested as well.</param>
- </member>
- <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)">
- <summary>
- Computes all mutual intersections between two sets of edges.
- </summary>
- <param name="edges0">A set of edges</param>
- <param name="edges1">A set of edges</param>
- <param name="si">The <c>SegmentIntersector</c> to use</param>
- </member>
- <member name="T:NetTopologySuite.GeometriesGraph.Index.MonotoneChain">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Index.MonotoneChain.#ctor(NetTopologySuite.GeometriesGraph.Index.MonotoneChainEdge,System.Int32)">
- <summary>
-
- </summary>
- <param name="mce"></param>
- <param name="chainIndex"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Index.MonotoneChain.ComputeIntersections(NetTopologySuite.GeometriesGraph.Index.MonotoneChain,NetTopologySuite.GeometriesGraph.Index.SegmentIntersector)">
- <summary>
-
- </summary>
- <param name="mc"></param>
- <param name="si"></param>
- </member>
- <member name="T:NetTopologySuite.GeometriesGraph.Index.MonotoneChainEdge">
- <summary>
- MonotoneChains are a way of partitioning the segments of an edge to
- allow for fast searching of intersections.
- They have the following properties:
- the segments within a monotone chain will never intersect each other, and
- the envelope of any contiguous subset of the segments in a monotone chain
- is simply the envelope of the endpoints of the subset.
- Property 1 means that there is no need to test pairs of segments from within
- the same monotone chain for intersection.
- Property 2 allows
- binary search to be used to find the intersection points of two monotone chains.
- For many types of real-world data, these properties eliminate a large number of
- segment comparisons, producing substantial speed gains.
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Index.MonotoneChainEdge.#ctor(NetTopologySuite.GeometriesGraph.Edge)">
- <summary>
-
- </summary>
- <param name="e"></param>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.Index.MonotoneChainEdge.Coordinates">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.Index.MonotoneChainEdge.StartIndexes">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Index.MonotoneChainEdge.GetMinX(System.Int32)">
- <summary>
-
- </summary>
- <param name="chainIndex"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Index.MonotoneChainEdge.GetMaxX(System.Int32)">
- <summary>
-
- </summary>
- <param name="chainIndex"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Index.MonotoneChainEdge.ComputeIntersects(NetTopologySuite.GeometriesGraph.Index.MonotoneChainEdge,NetTopologySuite.GeometriesGraph.Index.SegmentIntersector)">
- <summary>
-
- </summary>
- <param name="mce"></param>
- <param name="si"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Index.MonotoneChainEdge.ComputeIntersectsForChain(System.Int32,NetTopologySuite.GeometriesGraph.Index.MonotoneChainEdge,System.Int32,NetTopologySuite.GeometriesGraph.Index.SegmentIntersector)">
- <summary>
-
- </summary>
- <param name="chainIndex0"></param>
- <param name="mce"></param>
- <param name="chainIndex1"></param>
- <param name="si"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Index.MonotoneChainEdge.ComputeIntersectsForChain(System.Int32,System.Int32,NetTopologySuite.GeometriesGraph.Index.MonotoneChainEdge,System.Int32,System.Int32,NetTopologySuite.GeometriesGraph.Index.SegmentIntersector)">
- <summary>
-
- </summary>
- <param name="start0"></param>
- <param name="end0"></param>
- <param name="mce"></param>
- <param name="start1"></param>
- <param name="end1"></param>
- <param name="ei"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Index.MonotoneChainEdge.Overlaps(System.Int32,System.Int32,NetTopologySuite.GeometriesGraph.Index.MonotoneChainEdge,System.Int32,System.Int32)">
- <summary>
- Tests whether the envelopes of two chain sections overlap (intersect).
- </summary>
- <returns><c>true</c> if the section envelopes overlap</returns>
- </member>
- <member name="T:NetTopologySuite.GeometriesGraph.Index.MonotoneChainIndexer">
- <summary>
- MonotoneChains are a way of partitioning the segments of an edge to
- allow for fast searching of intersections.
- <para>
- Specifically, a sequence of contiguous line segments
- is a monotone chain if all the vectors defined by the oriented segments
- lies in the same quadrant.
- </para><para>
- Monotone Chains have the following useful properties:
- the segments within a monotone chain will never intersect each other, and
- the envelope of any contiguous subset of the segments in a monotone chain
- is simply the envelope of the endpoints of the subset.
- Property 1 means that there is no need to test pairs of segments from within
- the same monotone chain for intersection.
- Property 2 allows
- binary search to be used to find the intersection points of two monotone chains.
- For many types of real-world data, these properties eliminate a large number of
- segment comparisons, producing substantial speed gains.
- </para>
- <para>
- Note that due to the efficient intersection test, there is no need to limit the size
- of chains to obtain fast performance.
- </para>
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Index.MonotoneChainIndexer.GetChainStartIndices(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Computes the startpoints (and endpoints) of all in monotone chains in this edge
- </summary>
- <param name="pts">An array of points</param>
- <returns>An array of startpoints (and endpoints) of monotone chains</returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Index.MonotoneChainIndexer.OLDGetChainStartIndices(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
-
- </summary>
- <param name="pts"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Index.MonotoneChainIndexer.FindChainEnd(NetTopologySuite.Geometries.Coordinate[],System.Int32)">
- <summary>
- Searches for the end of a <c>MonotoneChain</c>
- </summary>
- <param name="pts">An array of <c>Coordinate</c>s</param>
- <param name="start">The start index of the chain to find the end for</param>
- <returns>
- The index of the last point in the monotone chain.
- </returns>
- </member>
- <member name="T:NetTopologySuite.GeometriesGraph.Index.SegmentIntersector">
- <summary>
- Computes the intersection of line segments,
- and adds the intersection to the edges containing the segments.
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Index.SegmentIntersector.IsAdjacentSegments(System.Int32,System.Int32)">
- <summary>
-
- </summary>
- <param name="i1"></param>
- <param name="i2"></param>
- <returns></returns>
- </member>
- <member name="F:NetTopologySuite.GeometriesGraph.Index.SegmentIntersector.NumTests">
- <summary>
- Testing only.
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Index.SegmentIntersector.#ctor(NetTopologySuite.Algorithm.LineIntersector,System.Boolean,System.Boolean)">
- <summary>
-
- </summary>
- <param name="li"></param>
- <param name="includeProper"></param>
- <param name="recordIsolated"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Index.SegmentIntersector.SetBoundaryNodes(System.Collections.Generic.IList{NetTopologySuite.GeometriesGraph.Node},System.Collections.Generic.IList{NetTopologySuite.GeometriesGraph.Node})">
- <summary>
-
- </summary>
- <param name="bdyNodes0"></param>
- <param name="bdyNodes1"></param>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.Index.SegmentIntersector.IsDoneIfProperInt">
- <summary>
- Sets a flag if the segment intersector is done when a proper intersection has been found.
- </summary>
- <remarks>Has no effect anymore.</remarks>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.Index.SegmentIntersector.IsDone">
- <summary>
- Gets a value indicating that the segment intersector is finished.
- </summary>
- <remarks>Always returns <c>false</c></remarks>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.Index.SegmentIntersector.ProperIntersectionPoint">
- <returns>
- The proper intersection point, or <c>null</c> if none was found.
- </returns>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.Index.SegmentIntersector.HasIntersection">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.Index.SegmentIntersector.HasProperIntersection">
- <summary>
- A proper intersection is an intersection which is interior to at least two
- line segments. Note that a proper intersection is not necessarily
- in the interior of the entire Geometry, since another edge may have
- an endpoint equal to the intersection, which according to SFS semantics
- can result in the point being on the Boundary of the Geometry.
- </summary>
- <returns>Indicates a proper intersection with an interior to at least two line segments</returns>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.Index.SegmentIntersector.HasProperInteriorIntersection">
- <summary>
- A proper interior intersection is a proper intersection which is not
- contained in the set of boundary nodes set for this SegmentIntersector.
- </summary>
- <returns>Indicates a proper interior intersection</returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Index.SegmentIntersector.IsTrivialIntersection(NetTopologySuite.GeometriesGraph.Edge,System.Int32,NetTopologySuite.GeometriesGraph.Edge,System.Int32)">
- <summary>
- A trivial intersection is an apparent self-intersection which in fact
- is simply the point shared by adjacent line segments.
- Note that closed edges require a special check for the point shared by the beginning
- and end segments.
- </summary>
- <param name="e0">An Edge</param>
- <param name="segIndex0">The segment index of <paramref name="e0"/></param>
- <param name="e1">Another Edge</param>
- <param name="segIndex1">The segment index of <paramref name="e1"/></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Index.SegmentIntersector.AddIntersections(NetTopologySuite.GeometriesGraph.Edge,System.Int32,NetTopologySuite.GeometriesGraph.Edge,System.Int32)">
- <summary>
- This method is called by clients of the EdgeIntersector class to test for and add
- intersections for two segments of the edges being intersected.
- Note that clients (such as MonotoneChainEdges) may choose not to intersect
- certain pairs of segments for efficiency reasons.
- </summary>
- <param name="e0"></param>
- <param name="segIndex0"></param>
- <param name="e1"></param>
- <param name="segIndex1"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Index.SegmentIntersector.IsBoundaryPoint(NetTopologySuite.Algorithm.LineIntersector,System.Collections.Generic.IList{NetTopologySuite.GeometriesGraph.Node}[])">
- <summary>
-
- </summary>
- <param name="li"></param>
- <param name="bdyNodes"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Index.SegmentIntersector.IsBoundaryPointInternal(NetTopologySuite.Algorithm.LineIntersector,System.Collections.Generic.IEnumerable{NetTopologySuite.GeometriesGraph.Node})">
- <summary>
-
- </summary>
- <param name="li"></param>
- <param name="bdyNodes"></param>
- <returns></returns>
- </member>
- <member name="T:NetTopologySuite.GeometriesGraph.Index.SimpleEdgeSetIntersector">
- <summary>
- Finds all intersections in one or two sets of edges,
- using the straightforward method of
- comparing all segments.
- This algorithm is too slow for production use, but is useful for testing purposes.
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Index.SimpleEdgeSetIntersector.ComputeIntersections(System.Collections.Generic.IList{NetTopologySuite.GeometriesGraph.Edge},NetTopologySuite.GeometriesGraph.Index.SegmentIntersector,System.Boolean)">
- <summary>
-
- </summary>
- <param name="edges"></param>
- <param name="si"></param>
- <param name="testAllSegments"></param>
- </member>
- <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)">
- <summary>
-
- </summary>
- <param name="edges0"></param>
- <param name="edges1"></param>
- <param name="si"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Index.SimpleEdgeSetIntersector.ComputeIntersects(NetTopologySuite.GeometriesGraph.Edge,NetTopologySuite.GeometriesGraph.Edge,NetTopologySuite.GeometriesGraph.Index.SegmentIntersector)">
- <summary>
- Performs a brute-force comparison of every segment in each Edge.
- This has n^2 performance, and is about 100 times slower than using
- monotone chains.
- </summary>
- <param name="e0"></param>
- <param name="e1"></param>
- <param name="si"></param>
- </member>
- <member name="T:NetTopologySuite.GeometriesGraph.Index.SimpleMCSweepLineIntersector">
- <summary>
- Finds all intersections in one or two sets of edges,
- using an x-axis sweepline algorithm in conjunction with Monotone Chains.
- While still O(n^2) in the worst case, this algorithm
- drastically improves the average-case time.
- The use of MonotoneChains as the items in the index
- seems to offer an improvement in performance over a sweep-line alone.
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Index.SimpleMCSweepLineIntersector.ComputeIntersections(System.Collections.Generic.IList{NetTopologySuite.GeometriesGraph.Edge},NetTopologySuite.GeometriesGraph.Index.SegmentIntersector,System.Boolean)">
- <summary>
-
- </summary>
- <param name="edges"></param>
- <param name="si"></param>
- <param name="testAllSegments"></param>
- </member>
- <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)">
- <summary>
-
- </summary>
- <param name="edges0"></param>
- <param name="edges1"></param>
- <param name="si"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Index.SimpleMCSweepLineIntersector.AddEdges(System.Collections.Generic.IEnumerable{NetTopologySuite.GeometriesGraph.Edge})">
- <summary>
-
- </summary>
- <param name="edges"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Index.SimpleMCSweepLineIntersector.AddEdges(System.Collections.Generic.IEnumerable{NetTopologySuite.GeometriesGraph.Edge},System.Object)">
- <summary>
-
- </summary>
- <param name="edges"></param>
- <param name="edgeSet"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Index.SimpleMCSweepLineIntersector.AddEdge(NetTopologySuite.GeometriesGraph.Edge,System.Object)">
- <summary>
-
- </summary>
- <param name="edge"></param>
- <param name="edgeSet"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Index.SimpleMCSweepLineIntersector.PrepareEvents">
- <summary>
- Because Delete Events have a link to their corresponding Insert event,
- it is possible to compute exactly the range of events which must be
- compared to a given Insert event object.
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Index.SimpleMCSweepLineIntersector.ComputeIntersections(NetTopologySuite.GeometriesGraph.Index.SegmentIntersector)">
- <summary>
-
- </summary>
- <param name="si"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Index.SimpleMCSweepLineIntersector.ProcessOverlaps(System.Int32,System.Int32,NetTopologySuite.GeometriesGraph.Index.SweepLineEvent,NetTopologySuite.GeometriesGraph.Index.SegmentIntersector)">
- <summary>
-
- </summary>
- <param name="start"></param>
- <param name="end"></param>
- <param name="ev0"></param>
- <param name="si"></param>
- </member>
- <member name="T:NetTopologySuite.GeometriesGraph.Index.SimpleSweepLineIntersector">
- <summary>
- Finds all intersections in one or two sets of edges,
- using a simple x-axis sweepline algorithm.
- While still O(n^2) in the worst case, this algorithm
- drastically improves the average-case time.
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Index.SimpleSweepLineIntersector.ComputeIntersections(System.Collections.Generic.IList{NetTopologySuite.GeometriesGraph.Edge},NetTopologySuite.GeometriesGraph.Index.SegmentIntersector,System.Boolean)">
- <summary>
-
- </summary>
- <param name="edges"></param>
- <param name="si"></param>
- <param name="testAllSegments"></param>
- </member>
- <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)">
- <summary>
-
- </summary>
- <param name="edges0"></param>
- <param name="edges1"></param>
- <param name="si"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Index.SimpleSweepLineIntersector.Add(System.Collections.Generic.IEnumerable{NetTopologySuite.GeometriesGraph.Edge})">
- <summary>
-
- </summary>
- <param name="edges"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Index.SimpleSweepLineIntersector.Add(System.Collections.Generic.IEnumerable{NetTopologySuite.GeometriesGraph.Edge},System.Object)">
- <summary>
-
- </summary>
- <param name="edges"></param>
- <param name="edgeSet"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Index.SimpleSweepLineIntersector.Add(NetTopologySuite.GeometriesGraph.Edge,System.Object)">
- <summary>
-
- </summary>
- <param name="edge"></param>
- <param name="edgeSet"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Index.SimpleSweepLineIntersector.PrepareEvents">
- <summary>
- Because DELETE events have a link to their corresponding INSERT event,
- it is possible to compute exactly the range of events which must be
- compared to a given INSERT event object.
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Index.SimpleSweepLineIntersector.ComputeIntersections(NetTopologySuite.GeometriesGraph.Index.SegmentIntersector)">
- <summary>
-
- </summary>
- <param name="si"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Index.SimpleSweepLineIntersector.ProcessOverlaps(System.Int32,System.Int32,NetTopologySuite.GeometriesGraph.Index.SweepLineEvent,NetTopologySuite.GeometriesGraph.Index.SegmentIntersector)">
- <summary>
-
- </summary>
- <param name="start"></param>
- <param name="end"></param>
- <param name="ev0"></param>
- <param name="si"></param>
- </member>
- <member name="T:NetTopologySuite.GeometriesGraph.Index.SweepLineEvent">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Index.SweepLineEvent.#ctor(System.Object,System.Double,System.Object)">
- <summary>
- Creates an INSERT event.
- </summary>
- <param name="label">The edge set label for this object.</param>
- <param name="x">The event location</param>
- <param name="obj">the object being inserted</param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Index.SweepLineEvent.#ctor(System.Double,NetTopologySuite.GeometriesGraph.Index.SweepLineEvent)">
- <summary>
- Creates a DELETE event.
- </summary>
- <param name="x">The event location</param>
- <param name="insertEvent">The corresponding INSERT event</param>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.Index.SweepLineEvent.IsInsert">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.Index.SweepLineEvent.IsDelete">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.Index.SweepLineEvent.InsertEvent">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.Index.SweepLineEvent.DeleteEventIndex">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.Index.SweepLineEvent.Object">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Index.SweepLineEvent.CompareTo(System.Object)">
- <summary>
- Events are ordered first by their x-value, and then by their eventType.
- Insert events are sorted before Delete events, so that
- items whose Insert and Delete events occur at the same x-value will be
- correctly handled.
- </summary>
- <param name="o"></param>
- </member>
- <member name="T:NetTopologySuite.GeometriesGraph.Index.SweepLineSegment">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Index.SweepLineSegment.#ctor(NetTopologySuite.GeometriesGraph.Edge,System.Int32)">
- <summary>
-
- </summary>
- <param name="edge"></param>
- <param name="ptIndex"></param>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.Index.SweepLineSegment.MinX">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.Index.SweepLineSegment.MaxX">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Index.SweepLineSegment.ComputeIntersections(NetTopologySuite.GeometriesGraph.Index.SweepLineSegment,NetTopologySuite.GeometriesGraph.Index.SegmentIntersector)">
- <summary>
-
- </summary>
- <param name="ss"></param>
- <param name="si"></param>
- </member>
- <member name="T:NetTopologySuite.GeometriesGraph.Label">
- <summary>
- A <c>Label</c> indicates the topological relationship of a component
- of a topology graph to a given <c>Geometry</c>.
- This class supports labels for relationships to two <c>Geometry</c>s,
- which is sufficient for algorithms for binary operations.
- Topology graphs support the concept of labeling nodes and edges in the graph.
- The label of a node or edge specifies its topological relationship to one or
- more geometries. (In fact, since NTS operations have only two arguments labels
- are required for only two geometries). A label for a node or edge has one or
- two elements, depending on whether the node or edge occurs in one or both of the
- input <c>Geometry</c>s. Elements contain attributes which categorize the
- topological location of the node or edge relative to the parent
- <c>Geometry</c>; that is, whether the node or edge is in the interior,
- boundary or exterior of the <c>Geometry</c>. Attributes have a value
- from the set <c>{Interior, Boundary, Exterior}</c>. In a node each
- element has a single attribute <c>On</c>. For an edge each element has a
- triplet of attributes <c>Left, On, Right</c>.
- It is up to the client code to associate the 0 and 1 <c>TopologyLocation</c>s
- with specific geometries.
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Label.ToLineLabel(NetTopologySuite.GeometriesGraph.Label)">
- <summary>
- Converts a Label to a Line label (that is, one with no side Location).
- </summary>
- <param name="label">Label to convert.</param>
- <returns>Label as Line label.</returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Label.#ctor(NetTopologySuite.Geometries.Location)">
- <summary>
- Construct a Label with a single location for both Geometries.
- Initialize the locations to Null.
- </summary>
- <param name="onLoc">A location value</param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Label.#ctor(System.Int32,NetTopologySuite.Geometries.Location)">
- <summary>
- Construct a Label with a single location for both Geometries.
- Initialize the location for the Geometry index.
- </summary>
- <param name="geomIndex">A geometry index, <c>0</c>, or <c>1</c>.</param>
- <param name="onLoc">A location value for <b>On</b></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Label.#ctor(NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Location)">
- <summary>
- Construct a Label with On, Left and Right locations for both Geometries.
- Initialize the locations for both Geometries to the given values.
- </summary>
- <param name="onLoc">A location value for <b>On</b></param>
- <param name="leftLoc">A location value for <b>Left</b></param>
- <param name="rightLoc">A location value for <b>Right</b></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Label.#ctor(System.Int32,NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Location)">
- <summary>
- Construct a Label with On, Left and Right locations for both Geometries.
- Initialize the locations for the given Geometry index.
- </summary>
- <param name="geomIndex">A geometry index, <c>0</c>, or <c>1</c>.</param>
- <param name="onLoc">A location value for <b>On</b></param>
- <param name="leftLoc">A location value for <b>Left</b></param>
- <param name="rightLoc">A location value for <b>Right</b></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Label.#ctor(NetTopologySuite.GeometriesGraph.Label)">
- <summary>
- Construct a Label with the same values as the argument Label.
- </summary>
- <param name="lbl">A <c>Label</c></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Label.Flip">
- <summary>
- Performs <see cref="M:NetTopologySuite.GeometriesGraph.TopologyLocation.Flip"/> on both
- <see cref="T:NetTopologySuite.GeometriesGraph.TopologyLocation"/>s of this <c>Label</c>
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Label.GetLocation(System.Int32,NetTopologySuite.GeometriesGraph.Positions)">
- <summary>
-
- </summary>
- <param name="geomIndex"></param>
- <param name="posIndex"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Label.GetLocation(System.Int32,NetTopologySuite.Geometries.Position)">
- <summary>
-
- </summary>
- <param name="geomIndex"></param>
- <param name="posIndex"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Label.GetLocation(System.Int32)">
- <summary>
-
- </summary>
- <param name="geomIndex"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Label.SetLocation(System.Int32,NetTopologySuite.GeometriesGraph.Positions,NetTopologySuite.Geometries.Location)">
- <summary>
-
- </summary>
- <param name="geomIndex"></param>
- <param name="posIndex"></param>
- <param name="_location"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Label.SetLocation(System.Int32,NetTopologySuite.Geometries.Position,NetTopologySuite.Geometries.Location)">
- <summary>
-
- </summary>
- <param name="geomIndex"></param>
- <param name="posIndex"></param>
- <param name="_location"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Label.SetLocation(System.Int32,NetTopologySuite.Geometries.Location)">
- <summary>
-
- </summary>
- <param name="geomIndex"></param>
- <param name="_location"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Label.SetAllLocations(System.Int32,NetTopologySuite.Geometries.Location)">
- <summary>
-
- </summary>
- <param name="geomIndex"></param>
- <param name="_location"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Label.SetAllLocationsIfNull(System.Int32,NetTopologySuite.Geometries.Location)">
- <summary>
-
- </summary>
- <param name="geomIndex"></param>
- <param name="_location"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Label.SetAllLocationsIfNull(NetTopologySuite.Geometries.Location)">
- <summary>
-
- </summary>
- <param name="_location"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Label.Merge(NetTopologySuite.GeometriesGraph.Label)">
- <summary>
- Merge this label with another one.
- Merging updates any null attributes of this label with the attributes from <paramref name="lbl"/>.
- </summary>
- <param name="lbl">The <c>Label</c> to merge</param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Label.SetGeometryLocation(System.Int32,NetTopologySuite.GeometriesGraph.TopologyLocation)">
- <summary>
-
- </summary>
- <param name="geomIndex"></param>
- <param name="tl"></param>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.Label.GeometryCount">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Label.IsNull(System.Int32)">
- <summary>
-
- </summary>
- <param name="geomIndex"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Label.IsAnyNull(System.Int32)">
- <summary>
-
- </summary>
- <param name="geomIndex"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Label.IsArea">
- <summary>
-
- </summary>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Label.IsArea(System.Int32)">
- <summary>
-
- </summary>
- <param name="geomIndex"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Label.IsLine(System.Int32)">
- <summary>
-
- </summary>
- <param name="geomIndex"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Label.IsEqualOnSide(NetTopologySuite.GeometriesGraph.Label,System.Int32)">
- <summary>
-
- </summary>
- <param name="lbl"></param>
- <param name="side"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Label.AllPositionsEqual(System.Int32,NetTopologySuite.Geometries.Location)">
- <summary>
-
- </summary>
- <param name="geomIndex"></param>
- <param name="loc"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Label.ToLine(System.Int32)">
- <summary>
- Converts one GeometryLocation to a Line location.
- </summary>
- <param name="geomIndex">The index of the <c>TopologyLocation</c> to convert (<c>0</c> or <c>1</c>)</param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Label.ToString">
- <summary>
-
- </summary>
- <returns></returns>
- </member>
- <member name="T:NetTopologySuite.GeometriesGraph.Node">
- <summary>
-
- </summary>
- </member>
- <member name="F:NetTopologySuite.GeometriesGraph.Node._coord">
- <summary>
- Only non-null if this node is precise.
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Node.#ctor(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.GeometriesGraph.EdgeEndStar)">
- <summary>
-
- </summary>
- <param name="coord"></param>
- <param name="edges"></param>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.Node.Coordinate">
- <summary>
- Gets a value indicating the position of this
- </summary>
- <returns>The position of this <c>Node</c></returns>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.Node.Edges">
- <summary>
- Gets a value indicating the <c>EdgeEndStar</c> of this <c>Node</c>
- </summary>
- <returns>The <c>EdgeEndStar</c> of this <c>Node</c></returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Node.IsIncidentEdgeInResult">
- <summary>
- Tests whether any incident edge is flagged as
- being in the result.
- This test can be used to determine if the node is in the result,
- since if any incident edge is in the result, the node must be in the result as well.
- </summary>
- <returns><c>true</c> if any incident edge in the in the result
- </returns>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.Node.IsIsolated">
- <inheritdoc cref="P:NetTopologySuite.GeometriesGraph.GraphComponent.IsIsolated"/>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Node.ComputeIM(NetTopologySuite.Geometries.IntersectionMatrix)">
- <inheritdoc cref="M:NetTopologySuite.GeometriesGraph.GraphComponent.ComputeIM(NetTopologySuite.Geometries.IntersectionMatrix)"/>
- <remarks>
- Basic nodes do not compute IMs.
- </remarks>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Node.Add(NetTopologySuite.GeometriesGraph.EdgeEnd)">
- <summary>
- Add the edge to the list of edges at this node.
- </summary>
- <param name="e">An <c>EdgeEnd</c></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Node.MergeLabel(NetTopologySuite.GeometriesGraph.Node)">
- <summary>
- Merges <paramref name="n"/>'s <see cref="P:NetTopologySuite.GeometriesGraph.GraphComponent.Label"/> with this <c>Node</c>'s <c>Label</c>.
- </summary>
- <param name="n">A <c>Node</c></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Node.MergeLabel(NetTopologySuite.GeometriesGraph.Label)">
- <summary>
- To merge labels for two nodes,
- the merged location for each LabelElement is computed.
- The location for the corresponding node LabelElement is set to the result,
- as long as the location is non-null.
- </summary>
- <param name="label">The <c>Label</c> to merge</param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Node.SetLabel(System.Int32,NetTopologySuite.Geometries.Location)">
- <summary>
-
- </summary>
- <param name="argIndex"></param>
- <param name="onLocation"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Node.SetLabelBoundary(System.Int32)">
- <summary>
- Updates the label of a node to BOUNDARY,
- obeying the mod-2 boundaryDetermination rule.
- </summary>
- <param name="argIndex">An index for a <see cref="T:NetTopologySuite.GeometriesGraph.TopologyLocation"/> (<c>0</c> or <c>1</c>)</param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Node.ComputeMergedLocation(NetTopologySuite.GeometriesGraph.Label,System.Int32)">
- <summary>
- The location for a given eltIndex for a node will be one
- of { Null, Interior, Boundary }.
- A node may be on both the boundary and the interior of a point;
- in this case, the rule is that the node is considered to be in the boundary.
- The merged location is the maximum of the two input values.
- </summary>
- <param name="label2"></param>
- <param name="eltIndex"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Node.Write(System.IO.TextWriter)">
- <summary>
-
- </summary>
- <param name="outstream"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Node.ToString">
- <summary>
-
- </summary>
- <returns></returns>
- </member>
- <member name="T:NetTopologySuite.GeometriesGraph.NodeFactory">
- <summary>
- A Factory to create <see cref="T:NetTopologySuite.GeometriesGraph.Node"/>s.
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.NodeFactory.CreateNode(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- The basic node constructor does not allow for incident edges.
- </summary>
- <param name="coord">A <c>Coordinate</c></param>
- <returns>The created <c>Node</c></returns>
- </member>
- <member name="T:NetTopologySuite.GeometriesGraph.NodeMap">
- <summary>
- A map of nodes, indexed by the coordinate of the node.
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.NodeMap.#ctor(NetTopologySuite.GeometriesGraph.NodeFactory)">
- <summary>
- Creates an instance of this class using the provided <see cref="T:NetTopologySuite.GeometriesGraph.NodeFactory"/>.
- </summary>
- <param name="nodeFact">A factory to create <c>Node</c>s</param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.NodeMap.AddNode(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- This method expects that a node has a coordinate value.
- </summary>
- <param name="coord">A <c>Coordinate</c></param>
- <returns>The <c>Node</c> for the provided <c>Coordinate</c> <paramref name="coord"/></returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.NodeMap.AddNode(NetTopologySuite.GeometriesGraph.Node)">
- <summary>
- Adds a <c>Node</c> to this <c>NodeMap</c>.
- If a <c>Node</c> with the same <see cref="P:NetTopologySuite.GeometriesGraph.Node.Coordinate"/>
- is already present in this <c>NodeMap</c>,
- their <see cref="P:NetTopologySuite.GeometriesGraph.GraphComponent.Label"/>s are merged.
- </summary>
- <param name="n">The <c>Node</c> to add</param>
- <returns>Either <paramref name="n"/> or a <c>Node</c> with merged <c>Label</c>s</returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.NodeMap.Add(NetTopologySuite.GeometriesGraph.EdgeEnd)">
- <summary>
- Adds a node for the start point of this EdgeEnd
- (if one does not already exist in this map).
- Adds the EdgeEnd to the (possibly new) node.
- </summary>
- <param name="e">An <c>EdgeEnd</c></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.NodeMap.Find(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Searches for a <c>Node</c> at <paramref name="coord"/> position.
- </summary>
- <param name="coord">A <c>Coordinate</c></param>
- <returns>
- The node if found; <c>null</c> otherwise.
- </returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.NodeMap.GetEnumerator">
- <summary>
-
- </summary>
- <returns></returns>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.NodeMap.Values">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.NodeMap.GetBoundaryNodes(System.Int32)">
- <summary>
-
- </summary>
- <param name="geomIndex"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.NodeMap.Write(System.IO.StreamWriter)">
- <summary>
-
- </summary>
- <param name="outstream"></param>
- </member>
- <member name="T:NetTopologySuite.GeometriesGraph.PlanarGraph">
- <summary>
- The computation of the <c>IntersectionMatrix</c> relies on the use of a structure
- called a "topology graph". The topology graph contains nodes and edges
- corresponding to the nodes and line segments of a <c>Geometry</c>. Each
- node and edge in the graph is labeled with its topological location relative to
- the source point.
- Note that there is no requirement that points of self-intersection be a vertex.
- Thus to obtain a correct topology graph, <c>Geometry</c>s must be
- self-noded before constructing their graphs.
- Two fundamental operations are supported by topology graphs:
- Computing the intersections between all the edges and nodes of a single graph
- Computing the intersections between the edges and nodes of two different graphs
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.PlanarGraph.LinkResultDirectedEdges(System.Collections.Generic.IList{NetTopologySuite.GeometriesGraph.Node})">
- <summary>
- For nodes in the Collection, link the DirectedEdges at the node that are in the result.
- This allows clients to link only a subset of nodes in the graph, for
- efficiency (because they know that only a subset is of interest).
- </summary>
- <param name="nodes">A collection of <c>Node</c>s</param>
- </member>
- <member name="F:NetTopologySuite.GeometriesGraph.PlanarGraph._edges">
- <summary>
-
- </summary>
- </member>
- <member name="F:NetTopologySuite.GeometriesGraph.PlanarGraph._nodes">
- <summary>
-
- </summary>
- </member>
- <member name="F:NetTopologySuite.GeometriesGraph.PlanarGraph.edgeEndList">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.PlanarGraph.#ctor(NetTopologySuite.GeometriesGraph.NodeFactory)">
- <summary>
- Creates an instance of this class using the provided <see cref="T:NetTopologySuite.GeometriesGraph.NodeFactory"/>
- </summary>
- <param name="nodeFact">A factory to create <c>Node</c>s</param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.PlanarGraph.#ctor">
- <summary>
- Creates an instance of this class using the default <see cref="T:NetTopologySuite.GeometriesGraph.NodeFactory"/>.
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.PlanarGraph.GetEdgeEnumerator">
- <summary>
-
- </summary>
- <returns></returns>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.PlanarGraph.EdgeEnds">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.PlanarGraph.IsBoundaryNode(System.Int32,NetTopologySuite.Geometries.Coordinate)">
- <summary>
-
- </summary>
- <param name="geomIndex"></param>
- <param name="coord"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.PlanarGraph.InsertEdge(NetTopologySuite.GeometriesGraph.Edge)">
- <summary>
-
- </summary>
- <param name="e"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.PlanarGraph.Add(NetTopologySuite.GeometriesGraph.EdgeEnd)">
- <summary>
-
- </summary>
- <param name="e"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.PlanarGraph.GetNodeEnumerator">
- <summary>
-
- </summary>
- <returns></returns>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.PlanarGraph.Nodes">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.PlanarGraph.AddNode(NetTopologySuite.GeometriesGraph.Node)">
- <summary>
-
- </summary>
- <param name="node"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.PlanarGraph.AddNode(NetTopologySuite.Geometries.Coordinate)">
- <summary>
-
- </summary>
- <param name="coord"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.PlanarGraph.Find(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Searches for a <c>Node</c> at <c>Coordinate</c> position <paramref name="coord"/>
- </summary>
- <param name="coord">A <c>Coordinate</c> position</param>
- <returns>
- The node if found; <c>null</c> otherwise
- </returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.PlanarGraph.AddEdges(System.Collections.Generic.IList{NetTopologySuite.GeometriesGraph.Edge})">
- <summary>
- Add a set of edges to the graph. For each edge two DirectedEdges
- will be created. DirectedEdges are NOT linked by this method.
- </summary>
- <param name="edgesToAdd">A set of <c>Edge</c>s to add.</param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.PlanarGraph.LinkResultDirectedEdges">
- <summary>
- Link the DirectedEdges at the nodes of the graph.
- This allows clients to link only a subset of nodes in the graph, for
- efficiency (because they know that only a subset is of interest).
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.PlanarGraph.LinkAllDirectedEdges">
- <summary>
- Link the DirectedEdges at the nodes of the graph.
- This allows clients to link only a subset of nodes in the graph, for
- efficiency (because they know that only a subset is of interest).
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.PlanarGraph.FindEdgeEnd(NetTopologySuite.GeometriesGraph.Edge)">
- <summary>
- Returns the EdgeEnd which has edge e as its base edge
- (MD 18 Feb 2002 - this should return a pair of edges).
- </summary>
- <param name="e">An <c>Edge</c></param>
- <returns> The edge, if found <c>null</c> if the edge was not found.</returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.PlanarGraph.FindEdge(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Returns the edge whose first two coordinates are p0 and p1.
- </summary>
- <param name="p0">The 1st <c>Coordinate</c></param>
- <param name="p1">The 2nd <c>Coordinate</c></param>
- <returns> The edge, if found <c>null</c> if the edge was not found.</returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.PlanarGraph.FindEdgeInSameDirection(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Returns the edge which starts at p0 and whose first segment is
- parallel to p1.
- </summary>
- <param name="p0">Starting <c>Coordinate</c></param>
- <param name="p1"><c>Coordinate</c> used to establish direction</param>
- <returns>The matching edge, if found <c>null</c> if the edge was not found.</returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.PlanarGraph.MatchInSameDirection(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- The coordinate pairs match if they define line segments lying in the same direction.
- E.g. the segments are parallel and in the same quadrant
- (as opposed to parallel and opposite!).
- </summary>
- <param name="p0"></param>
- <param name="p1"></param>
- <param name="ep0"></param>
- <param name="ep1"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.PlanarGraph.WriteEdges(System.IO.StreamWriter)">
- <summary>
-
- </summary>
- <param name="outstream"></param>
- </member>
- <member name="T:NetTopologySuite.GeometriesGraph.Positions">
- <summary>
-
- </summary>
- </member>
- <member name="F:NetTopologySuite.GeometriesGraph.Positions.On">
- <summary>
- An indicator that a Location is <c>on</c> a GraphComponent (0)
- </summary>
- </member>
- <member name="F:NetTopologySuite.GeometriesGraph.Positions.Left">
- <summary>
- An indicator that a Location is to the <c>left</c> of a GraphComponent (1)
- </summary>
- </member>
- <member name="F:NetTopologySuite.GeometriesGraph.Positions.Right">
- <summary>
- An indicator that a Location is to the <c>right</c> of a GraphComponent (2)
- </summary>
- </member>
- <member name="F:NetTopologySuite.GeometriesGraph.Positions.Parallel">
- <summary>
- An indicator that a Location is <c>is parallel to x-axis</c> of a GraphComponent (-1)
- /// </summary>
- </member>
- <member name="T:NetTopologySuite.GeometriesGraph.Position">
- <summary>
- A Position indicates the position of a Location relative to a graph component
- (Node, Edge, or Area).
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.Position.Opposite(NetTopologySuite.GeometriesGraph.Positions)">
- <summary>
- Returns Positions.Left if the position is Positions.Right,
- Positions.Right if the position is Left, or the position
- otherwise.
- </summary>
- <param name="position"></param>
- </member>
- <member name="T:NetTopologySuite.GeometriesGraph.QuadrantOp">
- <summary>
- Utility functions for working with quadrants, which are numbered as follows:
- <para>
- 1 | 0
- --+--
- 2 | 3
- </para>
- </summary>
- </member>
- <member name="F:NetTopologySuite.GeometriesGraph.QuadrantOp.NE">
- <summary>
- North-East
- </summary>
- </member>
- <member name="F:NetTopologySuite.GeometriesGraph.QuadrantOp.NW">
- <summary>
- North-West
- </summary>
- </member>
- <member name="F:NetTopologySuite.GeometriesGraph.QuadrantOp.SW">
- <summary>
- South-West
- </summary>
- </member>
- <member name="F:NetTopologySuite.GeometriesGraph.QuadrantOp.SE">
- <summary>
- South-East
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.QuadrantOp.#ctor">
- <summary>
- Only static methods!
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.QuadrantOp.Quadrant(System.Double,System.Double)">
- <summary>
- Returns the quadrant of a directed line segment (specified as x and y
- displacements, which cannot both be 0).
- </summary>
- <param name="dx"></param>
- <param name="dy"></param>
- <exception cref="T:System.ArgumentException">If the displacements are both 0</exception>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.QuadrantOp.Quadrant(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Returns the quadrant of a directed line segment from p0 to p1.
- </summary>
- <param name="p0"></param>
- <param name="p1"></param>
- <exception cref="T:System.ArgumentException"> if the points are equal</exception>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.QuadrantOp.IsOpposite(System.Int32,System.Int32)">
- <summary>
- Returns true if the quadrants are 1 and 3, or 2 and 4.
- </summary>
- <param name="quad1"></param>
- <param name="quad2"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.QuadrantOp.CommonHalfPlane(System.Int32,System.Int32)">
- <summary>
- Returns the right-hand quadrant of the halfplane defined by the two quadrants,
- or -1 if the quadrants are opposite, or the quadrant if they are identical.
- </summary>
- <param name="quad1"></param>
- <param name="quad2"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.QuadrantOp.IsInHalfPlane(System.Int32,System.Int32)">
- <summary>
- Returns whether the given quadrant lies within the given halfplane (specified
- by its right-hand quadrant).
- </summary>
- <param name="quad"></param>
- <param name="halfPlane"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.QuadrantOp.IsNorthern(System.Int32)">
- <summary>
- Returns true if the given quadrant is 0 or 1.
- </summary>
- <param name="quad"></param>
- </member>
- <member name="T:NetTopologySuite.GeometriesGraph.TopologyLocation">
- <summary>
- A TopologyLocation is the labelling of a
- GraphComponent's topological relationship to a single Geometry.
- </summary>
- <remarks>
- If the parent component is an area edge, each side and the edge itself
- have a topological location. These locations are named:
- <list type="table">
- <item><term>On</term><description>on the edge</description></item>
- <item><term>Left</term><description>left-hand side of the edge</description></item>
- <item><term>Right</term><description>right-hand side</description></item>
- </list>
- <para>
- If the parent component is a line edge or node, there is a single
- topological relationship attribute, On.</para>
- <para>
- The possible values of a topological location are
- { <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>
- <para>
- The labelling is stored in an array _location[j] where
- where j has the values On, Left, Right.
- </para>
- </remarks>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.TopologyLocation.#ctor(NetTopologySuite.Geometries.Location[])">
- <summary>
-
- </summary>
- <param name="location"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.TopologyLocation.#ctor(NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Location)">
- <summary>
- Constructs a TopologyLocation specifying how points on, to the left of, and to the
- right of some GraphComponent relate to some Geometry. Possible values for the
- parameters are Location.Null, Location.Exterior, Location.Boundary,
- and Location.Interior.
- </summary>
- <param name="on"><c>Location</c> for <b>On</b> position</param>
- <param name="left"><c>Location</c> for <b>Left</b> position</param>
- <param name="right"><c>Location</c> for <b>Right</b> position</param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.TopologyLocation.#ctor(NetTopologySuite.Geometries.Location)">
- <summary>
-
- </summary>
- <param name="on"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.TopologyLocation.#ctor(NetTopologySuite.GeometriesGraph.TopologyLocation)">
- <summary>
-
- </summary>
- <param name="gl"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.TopologyLocation.Init(System.Int32)">
- <summary>
-
- </summary>
- <param name="size"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.TopologyLocation.Get(NetTopologySuite.GeometriesGraph.Positions)">
- <summary>
-
- </summary>
- <param name="posIndex"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.TopologyLocation.Get(NetTopologySuite.Geometries.Position)">
- <summary>
-
- </summary>
- <param name="posIndex"></param>
- <returns></returns>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.TopologyLocation.Item(NetTopologySuite.GeometriesGraph.Positions)">
- <summary>
- Get calls Get(Positions posIndex),
- Set calls SetLocation(Positions locIndex, Location locValue)
- </summary>
- <param name="posIndex"></param>
- <returns></returns>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.TopologyLocation.Item(NetTopologySuite.Geometries.Position)">
- <summary>
- Get calls Get(Positions posIndex),
- Set calls SetLocation(Positions locIndex, Location locValue)
- </summary>
- <param name="posIndex"></param>
- <returns></returns>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.TopologyLocation.IsNull">
- <returns>
- <c>true</c> if all locations are Null.
- </returns>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.TopologyLocation.IsAnyNull">
- <returns>
- <c>true</c> if any locations are Null.
- </returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.TopologyLocation.IsEqualOnSide(NetTopologySuite.GeometriesGraph.TopologyLocation,System.Int32)">
- <summary>
-
- </summary>
- <param name="le"></param>
- <param name="locIndex"></param>
- <returns></returns>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.TopologyLocation.IsArea">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.GeometriesGraph.TopologyLocation.IsLine">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.TopologyLocation.Flip">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.TopologyLocation.SetAllLocations(NetTopologySuite.Geometries.Location)">
- <summary>
-
- </summary>
- <param name="locValue"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.TopologyLocation.SetAllLocationsIfNull(NetTopologySuite.Geometries.Location)">
- <summary>
-
- </summary>
- <param name="locValue"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.TopologyLocation.SetLocation(NetTopologySuite.GeometriesGraph.Positions,NetTopologySuite.Geometries.Location)">
- <summary>
-
- </summary>
- <param name="locIndex"></param>
- <param name="locValue"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.TopologyLocation.SetLocation(NetTopologySuite.Geometries.Position,NetTopologySuite.Geometries.Location)">
- <summary>
-
- </summary>
- <param name="locIndex"></param>
- <param name="locValue"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.TopologyLocation.SetLocation(NetTopologySuite.Geometries.Location)">
- <summary>
-
- </summary>
- <param name="locValue"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.TopologyLocation.GetLocations">
- <summary>
-
- </summary>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.TopologyLocation.SetLocations(NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Location)">
- <summary>
-
- </summary>
- <param name="on"></param>
- <param name="left"></param>
- <param name="right"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.TopologyLocation.SetLocations(NetTopologySuite.GeometriesGraph.TopologyLocation)">
- <summary>
-
- </summary>
- <param name="gl"></param>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.TopologyLocation.AllPositionsEqual(NetTopologySuite.Geometries.Location)">
- <summary>
-
- </summary>
- <param name="loc"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.TopologyLocation.Merge(NetTopologySuite.GeometriesGraph.TopologyLocation)">
- <summary>
- Merge updates only the Null attributes of this object
- with the attributes of another.
- </summary>
- </member>
- <member name="M:NetTopologySuite.GeometriesGraph.TopologyLocation.ToString">
- <summary>
-
- </summary>
- <returns></returns>
- </member>
- <member name="T:NetTopologySuite.Index.ArrayListVisitor">
- <summary>
- Builds an array of all visited items.
- </summary>
- </member>
- <member name="T:NetTopologySuite.Index.ArrayListVisitor`1">
- <summary>
- Builds an array of all visited items.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.ArrayListVisitor`1.VisitItem(`0)">
- <summary>
- Visits an item.
- </summary>
- <param name="item">The item to visit.</param>
- </member>
- <member name="P:NetTopologySuite.Index.ArrayListVisitor`1.Items">
- <summary>
- Gets the array of visited items.
- </summary>
- </member>
- <member name="T:NetTopologySuite.Index.Bintree.Bintree`1">
- <summary>
- An <c>BinTree</c> (or "Binary Interval Tree")
- is a 1-dimensional version of a quadtree.
- It indexes 1-dimensional intervals (which may
- be the projection of 2-D objects on an axis).
- It supports range searching
- (where the range may be a single point).
- </summary>
- <remarks>
- <para>
- This structure is dynamic -
- new items can be added at any time,
- and it will support deletion of items
- (although this is not currently implemented).
- </para>
- <para>
- This implementation does not require specifying the extent of the inserted
- items beforehand. It will automatically expand to accommodate any extent
- of dataset.</para>
- <para>This index is different to the Interval Tree of Edelsbrunner
- or the Segment Tree of Bentley.</para>
- </remarks>
- </member>
- <member name="M:NetTopologySuite.Index.Bintree.Bintree`1.EnsureExtent(NetTopologySuite.Index.Bintree.Interval,System.Double)">
- <summary>
- Ensure that the Interval for the inserted item has non-zero extents.
- Use the current minExtent to pad it, if necessary.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.Bintree.Bintree`1.#ctor">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.Index.Bintree.Bintree`1.Depth">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.Index.Bintree.Bintree`1.Count">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.Index.Bintree.Bintree`1.NodeSize">
- <summary>
- Compute the total number of nodes in the tree.
- </summary>
- <returns>The number of nodes in the tree.</returns>
- </member>
- <member name="M:NetTopologySuite.Index.Bintree.Bintree`1.Insert(NetTopologySuite.Index.Bintree.Interval,`0)">
- <summary>
-
- </summary>
- <param name="itemInterval"></param>
- <param name="item"></param>
- </member>
- <member name="M:NetTopologySuite.Index.Bintree.Bintree`1.Remove(NetTopologySuite.Index.Bintree.Interval,`0)">
- <summary>
- Removes a single item from the tree.
- </summary>
- <param name="itemInterval">itemEnv the Envelope of the item to be removed</param>
- <param name="item">the item to remove</param>
- <returns><c>true</c> if the item was found (and thus removed)</returns>
- </member>
- <member name="M:NetTopologySuite.Index.Bintree.Bintree`1.GetEnumerator">
- <summary>
-
- </summary>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Index.Bintree.Bintree`1.Query(System.Double)">
- <summary>
-
- </summary>
- <param name="x"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Index.Bintree.Bintree`1.Query(NetTopologySuite.Index.Bintree.Interval)">
- <summary>
- Queries the tree to find all candidate items which
- may overlap the query interval.
- If the query interval is <tt>null</tt>, all items in the tree are found.
- <c>min</c> and <c>max</c> may be the same value.
- </summary>
- <param name="interval">The interval to query for or <c>null</c></param>
- </member>
- <member name="M:NetTopologySuite.Index.Bintree.Bintree`1.Query(NetTopologySuite.Index.Bintree.Interval,System.Collections.Generic.ICollection{`0})">
- <summary>
- Adds items in the tree which potentially overlap the query interval
- to the given collection.
- If the query interval is <c>null</c>, add all items in the tree.
- </summary>
- <param name="interval">A query interval, or <c>null</c></param>
- <param name="foundItems">The candidate items found</param>
- </member>
- <member name="M:NetTopologySuite.Index.Bintree.Bintree`1.CollectStats(NetTopologySuite.Index.Bintree.Interval)">
- <summary>
-
- </summary>
- <param name="interval"></param>
- </member>
- <member name="T:NetTopologySuite.Index.Bintree.Interval">
- <summary>
- Represents an (1-dimensional) closed interval on the Real number line.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Index.Bintree.Interval.Min">
- <summary>
- Gets or sets a value indicating the minimum value of the closed interval.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Index.Bintree.Interval.Max">
- <summary>
- Gets or sets a value indicating the maximum value of the closed interval.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Index.Bintree.Interval.Width">
- <summary>
- Gets the width of the interval (<see cref="P:NetTopologySuite.Index.Bintree.Interval.Max"/> - <see cref="P:NetTopologySuite.Index.Bintree.Interval.Min"/>)
- </summary>
- </member>
- <member name="P:NetTopologySuite.Index.Bintree.Interval.Centre">
- <summary>
- Gets the centre of the interval (<see cref="P:NetTopologySuite.Index.Bintree.Interval.Min"/> + <see cref="P:NetTopologySuite.Index.Bintree.Interval.Width"/> * 0.5d)
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.Bintree.Interval.#ctor">
- <summary>
- Creates a new interval instance, setting <see cref="P:NetTopologySuite.Index.Bintree.Interval.Min"/>=<see cref="P:NetTopologySuite.Index.Bintree.Interval.Max"/>=0d;
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.Bintree.Interval.#ctor(System.Double,System.Double)">
- <summary>
- 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"/>;
- </summary>
- <param name="min">The minimum value</param>
- <param name="max">The maximum value</param>
- </member>
- <member name="M:NetTopologySuite.Index.Bintree.Interval.#ctor(NetTopologySuite.Index.Bintree.Interval)">
- <summary>
- 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"/>.
- </summary>
- <param name="interval"></param>
- </member>
- <member name="M:NetTopologySuite.Index.Bintree.Interval.Init(System.Double,System.Double)">
- <summary>
- Method to initialize the interval with the given <paramref name="min"/> and <paramref name="max"/> values. <br/>
- If <paramref name="max"/> < <paramref name="min"/>, their values are exchanged.
- </summary>
- <param name="min">The minimum value</param>
- <param name="max">The maximum value</param>
- </member>
- <member name="M:NetTopologySuite.Index.Bintree.Interval.ExpandToInclude(NetTopologySuite.Index.Bintree.Interval)">
- <summary>
- Method to expand this interval to contain <paramref name="interval"/>.
- </summary>
- <param name="interval">The interval to contain.</param>
- </member>
- <member name="M:NetTopologySuite.Index.Bintree.Interval.Overlaps(NetTopologySuite.Index.Bintree.Interval)">
- <summary>
- Function to test if this <see cref="T:NetTopologySuite.Index.Bintree.Interval"/> overlaps <paramref name="interval"/>.
- </summary>
- <param name="interval">The interval to test</param>
- <returns><c>true</c> if this interval overlaps <paramref name="interval"/></returns>
- </member>
- <member name="M:NetTopologySuite.Index.Bintree.Interval.Overlaps(System.Double,System.Double)">
- <summary>
- Function to test if this <see cref="T:NetTopologySuite.Index.Bintree.Interval"/> overlaps the interval R[<paramref name="min"/>, <paramref name="max"/>].
- </summary>
- <param name="min">The mimimum value of the interval</param>
- <param name="max">The maximum value of the interval</param>
- <returns><c>true</c> if this interval overlaps the interval R[<paramref name="min"/>, <paramref name="max"/>]</returns>
- </member>
- <member name="M:NetTopologySuite.Index.Bintree.Interval.Contains(NetTopologySuite.Index.Bintree.Interval)">
- <summary>
- Function to test if this <see cref="T:NetTopologySuite.Index.Bintree.Interval"/> contains <paramref name="interval"/>.
- </summary>
- <remarks>This is more rigid than <see cref="M:NetTopologySuite.Index.Bintree.Interval.Overlaps(NetTopologySuite.Index.Bintree.Interval)"/></remarks>
- <param name="interval">The interval to test</param>
- <returns><c>true</c> if this interval contains <paramref name="interval"/></returns>
- </member>
- <member name="M:NetTopologySuite.Index.Bintree.Interval.Contains(System.Double,System.Double)">
- <summary>
- Function to test if this <see cref="T:NetTopologySuite.Index.Bintree.Interval"/> contains the interval R[<paramref name="min"/>, <paramref name="max"/>].
- </summary>
- <remarks>This is more rigid than <see cref="M:NetTopologySuite.Index.Bintree.Interval.Overlaps(System.Double,System.Double)"/></remarks>
- <param name="min">The mimimum value of the interval</param>
- <param name="max">The maximum value of the interval</param>
- <returns><c>true</c> if this interval contains the interval R[<paramref name="min"/>, <paramref name="max"/>]</returns>
- </member>
- <member name="M:NetTopologySuite.Index.Bintree.Interval.Contains(System.Double)">
- <summary>
- Function to test if this <see cref="T:NetTopologySuite.Index.Bintree.Interval"/> contains the value <paramref name="p"/>.
- </summary>
- <param name="p">The value to test</param>
- <returns><c>true</c> if this interval contains the value <paramref name="p"/></returns>
- </member>
- <member name="T:NetTopologySuite.Index.Bintree.Key">
- <summary>
- A Key is a unique identifier for a node in a tree.
- It contains a lower-left point and a level number. The level number
- is the power of two for the size of the node envelope.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.Bintree.Key.ComputeLevel(NetTopologySuite.Index.Bintree.Interval)">
- <summary>
-
- </summary>
- <param name="interval"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Index.Bintree.Key.#ctor(NetTopologySuite.Index.Bintree.Interval)">
- <summary>
-
- </summary>
- <param name="interval"></param>
- </member>
- <member name="P:NetTopologySuite.Index.Bintree.Key.Point">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.Index.Bintree.Key.Level">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.Index.Bintree.Key.Interval">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.Bintree.Key.ComputeKey(NetTopologySuite.Index.Bintree.Interval)">
- <summary>
- Return a square envelope containing the argument envelope,
- whose extent is a power of two and which is based at a power of 2.
- </summary>
- <param name="itemInterval"></param>
- </member>
- <member name="M:NetTopologySuite.Index.Bintree.Key.ComputeInterval(System.Int32,NetTopologySuite.Index.Bintree.Interval)">
- <summary>
-
- </summary>
- <param name="level"></param>
- <param name="itemInterval"></param>
- </member>
- <member name="T:NetTopologySuite.Index.Bintree.Node`1">
- <summary>
- A node of a <c>Bintree</c>.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.Bintree.Node`1.CreateNode(NetTopologySuite.Index.Bintree.Interval)">
- <summary>
- Creates a node
- </summary>
- <param name="itemInterval">The interval of the node item</param>
- <returns>A new node</returns>
- </member>
- <member name="M:NetTopologySuite.Index.Bintree.Node`1.CreateExpanded(NetTopologySuite.Index.Bintree.Node{`0},NetTopologySuite.Index.Bintree.Interval)">
- <summary>
- Creates a larger node, that contains both <paramref name="node.Interval.Interval"/> and <paramref name="addInterval"/>
- If <paramref name="node"/> is <c>null</c>, a node for <paramref name="addInterval"/> is created.
- </summary>
- <param name="node">The original node</param>
- <param name="addInterval">The additional interval</param>
- <returns>A new node</returns>
- </member>
- <member name="M:NetTopologySuite.Index.Bintree.Node`1.#ctor(NetTopologySuite.Index.Bintree.Interval,System.Int32)">
- <summary>
- Creates a new node instance
- </summary>
- <param name="interval">The node's interval</param>
- <param name="level">The node's level</param>
- </member>
- <member name="P:NetTopologySuite.Index.Bintree.Node`1.Interval">
- <summary>
- Gets the node's <see cref="P:NetTopologySuite.Index.Bintree.Node`1.Interval"/>
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.Bintree.Node`1.IsSearchMatch(NetTopologySuite.Index.Bintree.Interval)">
- <summary>
-
- </summary>
- <param name="itemInterval"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Index.Bintree.Node`1.GetNode(NetTopologySuite.Index.Bintree.Interval)">
- <summary>
- Returns the subnode containing the envelope.
- Creates the node if
- it does not already exist.
- </summary>
- <param name="searchInterval"></param>
- </member>
- <member name="M:NetTopologySuite.Index.Bintree.Node`1.Find(NetTopologySuite.Index.Bintree.Interval)">
- <summary>
- Returns the smallest existing
- node containing the envelope.
- </summary>
- <param name="searchInterval"></param>
- </member>
- <member name="M:NetTopologySuite.Index.Bintree.Node`1.Insert(NetTopologySuite.Index.Bintree.Node{`0})">
- <summary>
-
- </summary>
- <param name="node"></param>
- </member>
- <member name="M:NetTopologySuite.Index.Bintree.Node`1.GetSubnode(System.Int32)">
- <summary>
- Get the subnode for the index.
- If it doesn't exist, create it.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.Bintree.Node`1.CreateSubnode(System.Int32)">
- <summary>
-
- </summary>
- <param name="index"></param>
- <returns></returns>
- </member>
- <member name="T:NetTopologySuite.Index.Bintree.NodeBase`1">
- <summary>
- The base class for nodes in a <c>Bintree</c>.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.Bintree.NodeBase`1.GetSubnodeIndex(NetTopologySuite.Index.Bintree.Interval,System.Double)">
- <summary>
- Returns the index of the subnode that wholely contains the given interval.
- If none does, returns -1.
- </summary>
- <param name="interval"></param>
- <param name="centre"></param>
- </member>
- <member name="F:NetTopologySuite.Index.Bintree.NodeBase`1._items">
- <summary>
-
- </summary>
- </member>
- <member name="F:NetTopologySuite.Index.Bintree.NodeBase`1.Subnode">
- <summary>
- Subnodes are numbered as follows:
- 0 | 1
- .
- </summary>
- </member>
- <member name="P:NetTopologySuite.Index.Bintree.NodeBase`1.Items">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.Bintree.NodeBase`1.Add(`0)">
- <summary>
-
- </summary>
- <param name="item"></param>
- </member>
- <member name="M:NetTopologySuite.Index.Bintree.NodeBase`1.AddAllItems(System.Collections.Generic.IList{`0})">
- <summary>
-
- </summary>
- <param name="items"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Index.Bintree.NodeBase`1.IsSearchMatch(NetTopologySuite.Index.Bintree.Interval)">
- <summary>
-
- </summary>
- <param name="interval"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Index.Bintree.NodeBase`1.AddAllItemsFromOverlapping(NetTopologySuite.Index.Bintree.Interval,System.Collections.Generic.ICollection{`0})">
- <summary>
- Adds items in the tree which potentially overlap the query interval
- to the given collection.
- If the query interval is <tt>null</tt>, add all items in the tree.
- </summary>
- <param name="interval">A query interval, or <c>null</c></param>
- <param name="resultItems">The candidate items found</param>
- </member>
- <member name="M:NetTopologySuite.Index.Bintree.NodeBase`1.Remove(NetTopologySuite.Index.Bintree.Interval,`0)">
- <summary>
- Removes a single item from this subtree.
- </summary>
- <param name="itemInterval">The envelope containing the item</param>
- <param name="item">The item to remove</param>
- <returns><c>true</c> if the item was found and removed</returns>
- </member>
- <member name="P:NetTopologySuite.Index.Bintree.NodeBase`1.IsPrunable">
- <summary>
- Gets whether this node is prunable
- </summary>
- </member>
- <member name="P:NetTopologySuite.Index.Bintree.NodeBase`1.HasChildren">
- <summary>
- Gets whether this node has any children
- </summary>
- </member>
- <member name="P:NetTopologySuite.Index.Bintree.NodeBase`1.HasItems">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.Index.Bintree.NodeBase`1.Depth">
- <summary>
- Gets whether this node has any subnodes
- </summary>
- </member>
- <member name="P:NetTopologySuite.Index.Bintree.NodeBase`1.Count">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.Index.Bintree.NodeBase`1.NodeCount">
- <summary>
-
- </summary>
- </member>
- <member name="T:NetTopologySuite.Index.Bintree.Root`1">
- <summary>
- The root node of a single <c>Bintree</c>.
- It is centred at the origin,
- and does not have a defined extent.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.Bintree.Root`1.Insert(NetTopologySuite.Index.Bintree.Interval,`0)">
- <summary>
- Insert an item into the tree this is the root of.
- </summary>
- <param name="itemInterval"></param>
- <param name="item"></param>
- </member>
- <member name="M:NetTopologySuite.Index.Bintree.Root`1.InsertContained(NetTopologySuite.Index.Bintree.Node{`0},NetTopologySuite.Index.Bintree.Interval,`0)">
- <summary>
- Insert an item which is known to be contained in the tree rooted at
- the given Node. Lower levels of the tree will be created
- if necessary to hold the item.
- </summary>
- <param name="tree"></param>
- <param name="itemInterval"></param>
- <param name="item"></param>
- </member>
- <member name="M:NetTopologySuite.Index.Bintree.Root`1.IsSearchMatch(NetTopologySuite.Index.Bintree.Interval)">
- <summary>
- The root node matches all searches.
- </summary>
- <param name="interval"></param>
- </member>
- <member name="T:NetTopologySuite.Index.Chain.MonotoneChain">
- <summary>
- MonotoneChains are a way of partitioning the segments of a linestring to
- allow for fast searching of intersections.
- </summary>
- <remarks>
- <para>
- They have the following properties:
- <list type="bullet">
- <item><description>the segments within a monotone chain never intersect each other</description></item>
- <item><description>the envelope of any contiguous subset of the segments in a monotone chain
- is equal to the envelope of the endpoints of the subset.</description></item>
- </list>
- </para>
- <para>
- Property 1 means that there is no need to test pairs of segments from within
- the same monotone chain for intersection.</para>
- <para>Property 2 allows an efficient
- binary search to be used to find the intersection points of two monotone chains.
- For many types of real-world data, these properties eliminate a large number of
- segment comparisons, producing substantial speed gains.</para>
- <para>
- One of the goals of this implementation of MonotoneChains is to be
- as space and time efficient as possible. One design choice that aids this
- is that a MonotoneChain is based on a subarray of a list of points.
- This means that new arrays of points (potentially very large) do not
- have to be allocated.</para>
- <para>
- MonotoneChains support the following kinds of queries:
- <list type="table">
- <item>Envelope select</item><description>determine all the segments in the chain which
- intersect a given envelope.</description>
- <item>Overlap</item><description>determine all the pairs of segments in two chains whose
- envelopes overlap.</description>
- </list>
- </para>
- <para>
- This implementation of MonotoneChains uses the concept of internal iterators
- (<see cref="T:NetTopologySuite.Index.Chain.MonotoneChainSelectAction"/> and <see cref="T:NetTopologySuite.Index.Chain.MonotoneChainOverlapAction"/>)
- to return the resultsets for the above queries.
- This has time and space advantages, since it
- is not necessary to build lists of instantiated objects to represent the segments
- returned by the query.
- Queries made in this manner are thread-safe.
- </para>
- <para>
- MonotoneChains support being assigned an integer id value
- to provide a total ordering for a set of chains.
- This can be used during some kinds of processing to
- avoid redundant comparisons
- (i.e.by comparing only chains where the first id is less than the second).
- </para>
- <para>
- MonotoneChains support using an tolerance distance for overlap tests.
- This allows reporting overlap in situations where
- intersection snapping is being used.
- If this is used the chain envelope must be computed
- providing an expansion distance using <see cref="M:NetTopologySuite.Index.Chain.MonotoneChain.GetEnvelope(System.Double)"/>.
- </para>
- </remarks>
- </member>
- <member name="M:NetTopologySuite.Index.Chain.MonotoneChain.#ctor(NetTopologySuite.Geometries.Coordinate[],System.Int32,System.Int32,System.Object)">
- <summary>
- Creates a new MonotoneChain based on the given array of points.
- </summary>
- <param name="pts">The points containing the chain</param>
- <param name="start">The index of the first coordinate in the chain</param>
- <param name="end">The index of the last coordinate in the chain </param>
- <param name="context">A user-defined data object</param>
- </member>
- <member name="P:NetTopologySuite.Index.Chain.MonotoneChain.Id">
- <summary>
- Gets or sets the Id of this chain
- </summary>
- <remarks>
- Useful for assigning an ordering to a set of
- chains, which can be used to avoid redundant processing.
- </remarks>
- </member>
- <member name="P:NetTopologySuite.Index.Chain.MonotoneChain.OverlapDistance">
- <summary>
- Gets or sets the overlap distance used in overlap tests
- with other chains.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Index.Chain.MonotoneChain.Context">
- <summary>
- Gets the chain's user-defined context data value.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Index.Chain.MonotoneChain.Envelope">
- <summary>
- Gets the envelope of this chain
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.Chain.MonotoneChain.GetEnvelope(System.Double)">
- <summary>
- Gets the envelope for this chain,
- expanded by a given distance.
- </summary>
- <param name="expansionDistance">Distance to expand the envelope by</param>
- <returns>The expanded envelope of the chain</returns>
- </member>
- <member name="P:NetTopologySuite.Index.Chain.MonotoneChain.StartIndex">
- <summary>
- Gets the index of the start of the monotone chain
- in the underlying array of points.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Index.Chain.MonotoneChain.EndIndex">
- <summary>
- Gets the index of the end of the monotone chain
- in the underlying array of points.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.Chain.MonotoneChain.GetLineSegment(System.Int32,NetTopologySuite.Geometries.LineSegment@)">
- <summary>
- Gets the line segment starting at <paramref name="index"/>
- </summary>
- <param name="index">The index of the segment</param>
- <param name="ls">The line segment to extract to</param>
- </member>
- <member name="P:NetTopologySuite.Index.Chain.MonotoneChain.Coordinates">
- <summary>
- Return the subsequence of coordinates forming this chain.
- Allocates a new array to hold the Coordinates.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.Chain.MonotoneChain.Select(NetTopologySuite.Geometries.Envelope,NetTopologySuite.Index.Chain.MonotoneChainSelectAction)">
- <summary>
- Determine all the line segments in the chain whose envelopes overlap
- the searchEnvelope, and process them.
- </summary>
- <remarks>
- The monotone chain search algorithm attempts to optimize
- performance by not calling the select action on chain segments
- which it can determine are not in the search envelope.
- However, it *may* call the select action on segments
- which do not intersect the search envelope.
- This saves on the overhead of checking envelope intersection
- each time, since clients may be able to do this more efficiently.
- </remarks>
- <param name="searchEnv">The search envelope</param>
- <param name="mcs">The select action to execute on selected segments</param>
- </member>
- <member name="M:NetTopologySuite.Index.Chain.MonotoneChain.ComputeSelect(NetTopologySuite.Geometries.Envelope,System.Int32,System.Int32,NetTopologySuite.Index.Chain.MonotoneChainSelectAction)">
- <summary>
-
- </summary>
- <param name="searchEnv"></param>
- <param name="start0"></param>
- <param name="end0"></param>
- <param name="mcs"></param>
- </member>
- <member name="M:NetTopologySuite.Index.Chain.MonotoneChain.ComputeOverlaps(NetTopologySuite.Index.Chain.MonotoneChain,NetTopologySuite.Index.Chain.MonotoneChainOverlapAction)">
- <summary>
- Determines the line segments in two chains which may overlap,
- and passes them to an overlap action.
- </summary>
- <remarks>
- The monotone chain search algorithm attempts to optimize
- performance by not calling the overlap action on chain segments
- which it can determine do not overlap.
- However, it* may* call the overlap action on segments
- which do not actually interact.
- This saves on the overhead of checking intersection
- each time, since clients may be able to do this more efficiently.
- </remarks>
- <param name="mc">The chain to compare to</param>
- <param name="mco">The overlap action to execute on selected segments</param>
- </member>
- <member name="M:NetTopologySuite.Index.Chain.MonotoneChain.ComputeOverlaps(NetTopologySuite.Index.Chain.MonotoneChain,System.Double,NetTopologySuite.Index.Chain.MonotoneChainOverlapAction)">
- <summary>
- Determines the line segments in two chains which may overlap,
- using an overlap distance tolerance,
- and passes them to an overlap action.
- </summary>
- <param name="mc">The chain to compare to</param>
- <param name="overlapTolerance">The overlap tolerance distance (may be 0)</param>
- <param name="mco">The overlap action to execute on selected segments</param>
- </member>
- <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)">
- <summary>
- Uses an efficient mutual binary search strategy
- to determine which pairs of chain segments
- may overlap, and calls the given overlap action on them.
- </summary>
- <param name="start0">The start index of this chain section</param>
- <param name="end0">The end index of this chain section</param>
- <param name="mc">The target monotone chain</param>
- <param name="start1">The start index of the target chain section</param>
- <param name="end1">The end index of the target chain section</param>
- <param name="overlapTolerance">The overlap tolerance distance (may be 0)</param>
- <param name="mco">The overlap action to execute on selected segments</param>
- </member>
- <member name="M:NetTopologySuite.Index.Chain.MonotoneChain.Overlaps(System.Int32,System.Int32,NetTopologySuite.Index.Chain.MonotoneChain,System.Int32,System.Int32,System.Double)">
- <summary>
- Tests whether the envelope of a section of the chain
- overlaps(intersects) the envelope of a section of another target chain.
- This test is efficient due to the monotonicity property
- of the sections(i.e.the envelopes can be are determined
- from the section endpoints
- rather than a full scan).
- </summary>
- <param name="start0">The start index of this chain section</param>
- <param name="end0">The end index of this chain section</param>
- <param name="mc">The target monotone chain</param>
- <param name="start1">The start index of the target chain section</param>
- <param name="end1">The end index of the target chain section</param>
- <param name="overlapTolerance">The overlap tolerance distance (may be 0)</param>
- <returns><c>true</c> if the section envelopes overlap</returns>
- </member>
- <member name="M:NetTopologySuite.Index.Chain.MonotoneChain.Overlaps(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,System.Double)">
- <param name="p1">The 1st coordinate of the 1st segment</param>
- <param name="p2">The 2nd coordinate of the 1st segment</param>
- <param name="q1">The 1st coordinate of the 2nd segment</param>
- <param name="q2">The 2nd coordinate of the 2nd segment</param>
- <param name="overlapTolerance">The overlap tolerance distance (may be 0)</param>
- </member>
- <member name="T:NetTopologySuite.Index.Chain.MonotoneChainBuilder">
- <summary>
- Constructs <see cref="T:NetTopologySuite.Index.Chain.MonotoneChain"/>s
- for sequences of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.Chain.MonotoneChainBuilder.#ctor">
- <summary>
- Only static methods!
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.Chain.MonotoneChainBuilder.GetChains(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Computes a list of the <see cref="T:NetTopologySuite.Index.Chain.MonotoneChain"/>s
- for a list of coordinates.
- </summary>
- <param name="pts">The list of points to compute chains for</param>
- <returns>A list of the monotone chains for the points</returns>
- </member>
- <member name="M:NetTopologySuite.Index.Chain.MonotoneChainBuilder.GetChains(NetTopologySuite.Geometries.Coordinate[],System.Object)">
- <summary>
- Return a list of the <c>MonotoneChain</c>s
- for the given list of coordinates.
- </summary>
- <param name="pts">The list of points to compute chains for</param>
- <param name="context">A data object to attach to each chain</param>
- <returns>A list of the monotone chains for the points</returns>
- </member>
- <member name="M:NetTopologySuite.Index.Chain.MonotoneChainBuilder.GetChainStartIndices(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Return an array containing lists of start/end indexes of the monotone chains
- for the given list of coordinates.
- The last entry in the array points to the end point of the point array,
- for use as a sentinel.
- </summary>
- <param name="pts"></param>
- </member>
- <member name="M:NetTopologySuite.Index.Chain.MonotoneChainBuilder.FindChainEnd(NetTopologySuite.Geometries.Coordinate[],System.Int32)">
- <summary>
- Finds the index of the last point in a monotone chain
- starting at a given point.
- Any repeated points (0-length segments) will be included
- in the monotone chain returned.
- </summary>
- <param name="pts">The coordinates</param>
- <param name="start">The start index</param>
- <returns>
- The index of the last point in the monotone chain starting at <c>start</c>.
- </returns>
- </member>
- <member name="T:NetTopologySuite.Index.Chain.MonotoneChainOverlapAction">
- <summary>
- The action for the internal iterator for performing
- overlap queries on a MonotoneChain.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Index.Chain.MonotoneChainOverlapAction.overlapSeg1">
- <summary>
-
- </summary>
- </member>
- <member name="F:NetTopologySuite.Index.Chain.MonotoneChainOverlapAction.overlapSeg2">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.Chain.MonotoneChainOverlapAction.Overlap(NetTopologySuite.Index.Chain.MonotoneChain,System.Int32,NetTopologySuite.Index.Chain.MonotoneChain,System.Int32)">
- <summary>
- This function can be overridden if the original chains are needed.
- </summary>
- <param name="mc1"></param>
- <param name="start1">The index of the start of the overlapping segment from mc1.</param>
- <param name="mc2"></param>
- <param name="start2">The index of the start of the overlapping segment from mc2.</param>
- </member>
- <member name="M:NetTopologySuite.Index.Chain.MonotoneChainOverlapAction.Overlap(NetTopologySuite.Geometries.LineSegment,NetTopologySuite.Geometries.LineSegment)">
- <summary>
- This is a convenience function which can be overridden to obtain the actual
- line segments which overlap.
- </summary>
- <param name="seg1"></param>
- <param name="seg2"></param>
- </member>
- <member name="T:NetTopologySuite.Index.Chain.MonotoneChainSelectAction">
- <summary>
- The action for the internal iterator for performing
- envelope select queries on a MonotoneChain.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Index.Chain.MonotoneChainSelectAction.SelectedSegment">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.Chain.MonotoneChainSelectAction.Select(NetTopologySuite.Index.Chain.MonotoneChain,System.Int32)">
- <summary>
- This method is overridden to process a segment
- in the context of the parent chain.
- </summary>
- <param name="mc">The parent chain</param>
- <param name="startIndex">The index of the start vertex of the segment being processed</param>
- </member>
- <member name="M:NetTopologySuite.Index.Chain.MonotoneChainSelectAction.Select(NetTopologySuite.Geometries.LineSegment)">
- <summary>
- This is a convenience method which can be overridden to obtain the actual
- line segment which is selected.
- </summary>
- <param name="seg"></param>
- </member>
- <member name="T:NetTopologySuite.Index.HPRtree.HPRtree`1">
- <summary>
- A Hilbert-Packed R-tree. This is a static R-tree
- which is packed by using the Hilbert ordering
- of the tree items.
- <para/>
- The tree is constructed by sorting the items
- by the Hilbert code of the midpoint of their envelope.
- Then, a set of internal layers is created recursively
- as follows:
- <list type="bullet">
- <item><term>The items/nodes of the previous are partitioned into blocks of size <c>nodeCapacity</c></term></item>
- <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>
- </list>
- The internal layers are stored using an array to
- store the node bounds.
- The link between a node and its children is
- stored implicitly in the indexes of the array.
- For efficiency, the offsets to the layers
- within the node array are pre-computed and stored.
- <para/>
- NOTE: Based on performance testing,
- the HPRtree is somewhat faster than the STRtree.
- It should also be more memory-efficent,
- due to fewer object allocations.
- <para/>
- However, it is not clear whether this
- will produce a significant improvement
- for use in JTS operations.
- </summary>
- <seealso cref="T:NetTopologySuite.Index.Strtree.STRtree`1"/>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Index.HPRtree.HPRtree`1.#ctor">
- <summary>
- Creates a new index with the default node capacity.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.HPRtree.HPRtree`1.#ctor(System.Int32)">
- <summary>
- Creates a new index with the given node capacity.
- </summary>
- <param name="nodeCapacity">The node capacity to use</param>
- </member>
- <member name="P:NetTopologySuite.Index.HPRtree.HPRtree`1.Count">
- <summary>Gets the number of items in the index.</summary>
- <returns>The number of items</returns>
- </member>
- <member name="M:NetTopologySuite.Index.HPRtree.HPRtree`1.Insert(NetTopologySuite.Geometries.Envelope,`0)">
- <inheritdoc cref="M:NetTopologySuite.Index.ISpatialIndex`1.Insert(NetTopologySuite.Geometries.Envelope,`0)" />
- </member>
- <member name="M:NetTopologySuite.Index.HPRtree.HPRtree`1.Query(NetTopologySuite.Geometries.Envelope)">
- <inheritdoc cref="M:NetTopologySuite.Index.ISpatialIndex`1.Query(NetTopologySuite.Geometries.Envelope)" />
- </member>
- <member name="M:NetTopologySuite.Index.HPRtree.HPRtree`1.Query(NetTopologySuite.Geometries.Envelope,NetTopologySuite.Index.IItemVisitor{`0})">
- <inheritdoc cref="M:NetTopologySuite.Index.ISpatialIndex`1.Query(NetTopologySuite.Geometries.Envelope,NetTopologySuite.Index.IItemVisitor{`0})" />
- </member>
- <member name="M:NetTopologySuite.Index.HPRtree.HPRtree`1.Remove(NetTopologySuite.Geometries.Envelope,`0)">
- <inheritdoc cref="M:NetTopologySuite.Index.ISpatialIndex`1.Remove(NetTopologySuite.Geometries.Envelope,`0)" />
- <remarks>Not supported, will always return <c>false</c></remarks>
- </member>
- <member name="M:NetTopologySuite.Index.HPRtree.HPRtree`1.Build">
- <summary>
- Builds the index, if not already built.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.HPRtree.HPRtree`1.NumNodesToCover(System.Int32,System.Int32)">
- <summary>
- Computes the number of blocks (nodes) required to
- cover a given number of children.
- </summary>
- <param name="nChild"></param>
- <param name="nodeCapacity"></param>
- <returns>the number of nodes needed to cover the children</returns>
- </member>
- <member name="M:NetTopologySuite.Index.HPRtree.HPRtree`1.GetBounds">
- <summary>
- Gets the extents of the internal index nodes
- </summary>
- <returns>A list of the internal node extents</returns>
- </member>
- <member name="P:NetTopologySuite.Index.HPRtree.Item`1.Value">
- <remarks>
- This property is named Item in JTS
- </remarks>
- </member>
- <member name="M:NetTopologySuite.Index.HPRtree.Item`1.ToString">
- <inheritdoc cref="M:System.Object.ToString"/>
- </member>
- <member name="T:NetTopologySuite.Index.IIndexVisitor">
- <summary>
- A visitor for nodes and items in an index.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.IIndexVisitor.VisitItem(System.Object)">
- <summary>
-
- </summary>
- <param name="item"></param>
- </member>
- <member name="T:NetTopologySuite.Index.IItemVisitor`1">
- <summary>
- A visitor for items in a <see cref="T:NetTopologySuite.Index.ISpatialIndex`1"/>.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.IItemVisitor`1.VisitItem(`0)">
- <summary>
- Visits an item in the index.
- </summary>
- <param name="item">The index item to be visited.</param>
- </member>
- <member name="T:NetTopologySuite.Index.ILimitingItemVisitor`1">
- <summary>
- A visitor for items in a <see cref="T:NetTopologySuite.Index.ISpatialIndex`1"/>
- <para><b>Not used, commited by accident!</b></para>
- </summary>
- <typeparam name="T">The type of the items in the index</typeparam>
- [Obsolete]
- </member>
- <member name="P:NetTopologySuite.Index.ILimitingItemVisitor`1.IsDone">
- <summary>
- Gets a value indicating if no more items need to be visited
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.IntervalRTree.IntervalRTreeNode`1.ToString">
- <inheritdoc cref="M:System.Object.ToString"/>
- </member>
- <member name="T:NetTopologySuite.Index.IntervalRTree.SortedPackedIntervalRTree`1">
- <summary>
- A static index on a set of 1-dimensional intervals,
- using an R-Tree packed based on the order of the interval midpoints.
- </summary>
- <remarks>
- It supports range searching,
- where the range is an interval of the real line (which may be a single point).
- A common use is to index 1-dimensional intervals which
- are the projection of 2-D objects onto an axis of the coordinate system.
- <para>
- This index structure is <i>static</i>
- - items cannot be added or removed once the first query has been made.
- The advantage of this characteristic is that the index performance
- can be optimized based on a fixed set of items.
- </para>
- <author>Martin Davis</author>
- </remarks>
- </member>
- <member name="F:NetTopologySuite.Index.IntervalRTree.SortedPackedIntervalRTree`1._root">
- <summary>
- If root is null that indicates
- that the tree has not yet been built,
- OR nothing has been added to the tree.
- In both cases, the tree is still open for insertions.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.IntervalRTree.SortedPackedIntervalRTree`1.Insert(System.Double,System.Double,`0)">
- <summary>
- Adds an item to the index which is associated with the given interval
- </summary>
- <param name="min">The lower bound of the item interval</param>
- <param name="max">The upper bound of the item interval</param>
- <param name="item">The item to insert</param>
- <exception cref="T:System.InvalidOperationException">if the index has already been queried</exception>
- </member>
- <member name="M:NetTopologySuite.Index.IntervalRTree.SortedPackedIntervalRTree`1.Query(System.Double,System.Double,NetTopologySuite.Index.IItemVisitor{`0})">
- <summary>
- Search for intervals in the index which intersect the given closed interval
- and apply the visitor to them.
- </summary>
- <param name="min">The lower bound of the query interval</param>
- <param name="max">The upper bound of the query interval</param>
- <param name="visitor">The visitor to pass any matched items to</param>
- </member>
- <member name="T:NetTopologySuite.Index.ISpatialIndex`1">
- <summary>
- The basic insertion and query operations supported by classes
- implementing spatial index algorithms.
- A spatial index typically provides a primary filter for range rectangle queries. A
- secondary filter is required to test for exact intersection. Of course, this
- secondary filter may consist of other tests besides intersection, such as
- testing other kinds of spatial relationships.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.ISpatialIndex`1.Insert(NetTopologySuite.Geometries.Envelope,`0)">
- <summary>
- Adds a spatial item with an extent specified by the given <c>Envelope</c> to the index.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.ISpatialIndex`1.Query(NetTopologySuite.Geometries.Envelope)">
- <summary>
- Queries the index for all items whose extents intersect the given search <c>Envelope</c>
- Note that some kinds of indexes may also return objects which do not in fact
- intersect the query envelope.
- </summary>
- <param name="searchEnv">The envelope to query for.</param>
- <returns>A list of the items found by the query.</returns>
- </member>
- <member name="M:NetTopologySuite.Index.ISpatialIndex`1.Query(NetTopologySuite.Geometries.Envelope,NetTopologySuite.Index.IItemVisitor{`0})">
- <summary>
- Queries the index for all items whose extents intersect the given search <see cref="T:NetTopologySuite.Geometries.Envelope" />,
- and applies an <see cref="T:NetTopologySuite.Index.IItemVisitor`1" /> to them.
- Note that some kinds of indexes may also return objects which do not in fact
- intersect the query envelope.
- </summary>
- <param name="searchEnv">The envelope to query for.</param>
- <param name="visitor">A visitor object to apply to the items found.</param>
- </member>
- <member name="M:NetTopologySuite.Index.ISpatialIndex`1.Remove(NetTopologySuite.Geometries.Envelope,`0)">
- <summary>
- Removes a single item from the tree.
- </summary>
- <param name="itemEnv">The Envelope of the item to remove.</param>
- <param name="item">The item to remove.</param>
- <returns> <c>true</c> if the item was found.</returns>
- </member>
- <member name="T:NetTopologySuite.Index.KdTree.IKdNodeVisitor`1">
- <summary>
- A visitor for <see cref="T:NetTopologySuite.Index.KdTree.KdNode`1"/>s in a <see cref="T:NetTopologySuite.Index.KdTree.KdTree`1"/> index.
- </summary>
- <version>1.7</version>
- </member>
- <member name="M:NetTopologySuite.Index.KdTree.IKdNodeVisitor`1.Visit(NetTopologySuite.Index.KdTree.KdNode{`0})">
- <summary>
- Visits a node.
- </summary>
- <param name="node">The node to visit</param>
- </member>
- <member name="T:NetTopologySuite.Index.KdTree.KdNode`1">
- <summary>
- A node of a <see cref="T:NetTopologySuite.Index.KdTree.KdTree`1"/>, which represents one or more points in the same location.
- </summary>
- <typeparam name="T">The type of the object</typeparam>
- <author>dskea</author>
- </member>
- <member name="M:NetTopologySuite.Index.KdTree.KdNode`1.#ctor(System.Double,System.Double,`0)">
- <summary>
- Creates a new KdNode.
- </summary>
- <param name="x">coordinate of point</param>
- <param name="y">coordinate of point</param>
- <param name="data">A data objects to associate with this node</param>
- </member>
- <member name="M:NetTopologySuite.Index.KdTree.KdNode`1.#ctor(NetTopologySuite.Geometries.Coordinate,`0)">
- <summary>
- Creates a new KdNode.
- </summary>
- <param name="p">The point location of new node</param>
- <param name="data">A data objects to associate with this node</param>
- </member>
- <member name="P:NetTopologySuite.Index.KdTree.KdNode`1.X">
- <summary>
- Gets x-ordinate of this node
- </summary>
- <returns>The <c>x</c>-ordinate</returns>
- </member>
- <member name="P:NetTopologySuite.Index.KdTree.KdNode`1.Y">
- <summary>
- Gets y-ordinate of this node
- </summary>
- <returns>The <c>y</c>-ordinate</returns>
- </member>
- <member name="M:NetTopologySuite.Index.KdTree.KdNode`1.SplitValue(System.Boolean)">
- <summary>
- Gets the split value at a node, depending on
- whether the node splits on X or Y.
- The X (or Y) ordinates of all points in the left subtree
- are less than the split value, and those
- in the right subtree are greater than or equal to the split value.
- </summary>
- <param name="isSplitOnX">A flag whether the node splits a X or Y</param>
- <returns>The splitting value</returns>
- </member>
- <member name="P:NetTopologySuite.Index.KdTree.KdNode`1.Coordinate">
- <summary>
- Gets the location of this node
- </summary>
- <returns>The <c>Coordinate</c></returns>
- </member>
- <member name="P:NetTopologySuite.Index.KdTree.KdNode`1.Data">
- <summary>
- Gets the user data object associated with this node.
- </summary>
- <returns>The user data</returns>
- </member>
- <member name="P:NetTopologySuite.Index.KdTree.KdNode`1.Left">
- <summary>
- Gets or sets the left node of the tree
- </summary>
- <returns>The left node</returns>
- </member>
- <member name="P:NetTopologySuite.Index.KdTree.KdNode`1.Right">
- <summary>
- Gets or sets the right node of the tree
- </summary>
- <returns>The right node</returns>
- </member>
- <member name="P:NetTopologySuite.Index.KdTree.KdNode`1.Count">
- <summary>
- Gets the number of inserted points that are coincident at this location.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Index.KdTree.KdNode`1.IsRepeated">
- <summary>
- Gets whether more than one point with this value have been inserted (up to the tolerance)
- </summary>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Index.KdTree.KdNode`1.IsRangeOverLeft(System.Boolean,NetTopologySuite.Geometries.Envelope)">
- <summary>
- Tests whether the node's left subtree may contain values
- in a given range envelope.
- </summary>
- <param name="isSplitOnX">A flag whether the node splits on X or Y</param>
- <param name="env">The range envelope</param>
- <returns><c>true</c> if the left subtree is in range</returns>
- </member>
- <member name="M:NetTopologySuite.Index.KdTree.KdNode`1.IsRangeOverRight(System.Boolean,NetTopologySuite.Geometries.Envelope)">
- <summary>
- Tests whether the node's right subtree may contain values
- in a given range envelope.
- </summary>
- <param name="isSplitOnX">A flag whether the node splits on X or Y</param>
- <param name="env">The range envelope</param>
- <returns><c>true</c>if the right subtree is in range</returns>
- </member>
- <member name="M:NetTopologySuite.Index.KdTree.KdNode`1.IsPointOnLeft(System.Boolean,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Tests whether a point is strictly to the left
- of the splitting plane for this node.
- If so it may be in the left subtree of this node,
- Otherwise, the point may be in the right subtree.
- The point is to the left if its X (or Y) ordinate
- is less than the split value.
- </summary>
- <param name="isSplitOnX">A flag whether the node splits on X or Y</param>
- <param name="pt">The query point</param>
- <returns><c>true</c> if the point is strictly to the left.</returns>
- <seealso cref="M:NetTopologySuite.Index.KdTree.KdNode`1.SplitValue(System.Boolean)"/>
- </member>
- <member name="T:NetTopologySuite.Index.KdTree.KdTree`1">
- <summary>
- An implementation of a
- <a href='https://en.wikipedia.org/wiki/K-d_tree'> KD - Tree </a>
- over two dimensions(X and Y).
- KD-trees provide fast range searching and fast lookup for point data.
- The tree is built dynamically by inserting points.
- The tree supports queries by range and for point equality.
- For querying an internal stack is used instead of recursion to avoid overflow.
- </summary>
- <remarks>
- This implementation supports detecting and snapping points which are closer
- than a given distance tolerance.
- If the same point (up to tolerance) is inserted
- more than once , it is snapped to the existing node.
- In other words, if a point is inserted which lies
- within the tolerance of a node already in the index,
- it is snapped to that node.
- When an inserted point is snapped to a node then a new node is not created
- but the count of the existing node is incremented.
- If more than one node in the tree is within tolerance of an inserted point,
- the closest and then lowest node is snapped to.
- <para/>
- The structure of a KD-Tree depends on the order of insertion of the points.
- A tree may become umbalanced if the inserted points are coherent
- (e.g.monotonic in one or both dimensions).
- A perfectly balanced tree has depth of only log2(N),
- but an umbalanced tree may be much deeper.
- This has a serious impact on query efficiency.
- One solution to this is to randomize the order of points before insertion
- (e.g. by using <a href="https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle"> Fisher - Yates shuffling</a>).
- </remarks>
- <typeparam name="T">The type of the user data object</typeparam>
- <author>David Skea</author>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Index.KdTree.KdTree`1.ToCoordinates(System.Collections.Generic.IEnumerable{NetTopologySuite.Index.KdTree.KdNode{`0}})">
- <summary>
- Converts a collection of<see cref= "T:NetTopologySuite.Index.KdTree.KdNode`1" /> s to an array of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s.
- </summary>
- <param name="kdnodes">A collection of nodes</param>
- <returns>An array of the coordinates represented by the nodes</returns>
- </member>
- <member name="M:NetTopologySuite.Index.KdTree.KdTree`1.ToCoordinates(System.Collections.Generic.IEnumerable{NetTopologySuite.Index.KdTree.KdNode{`0}},System.Boolean)">
- <summary>
- Converts a collection of <see cref="T:NetTopologySuite.Index.KdTree.KdNode`1"/>{@link KdNode}s
- to an array of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s,
- specifying whether repeated nodes should be represented
- by multiple coordinates.
- </summary>
- <param name="kdnodes">a collection of nodes</param>
- <param name="includeRepeated">true if repeated nodes should
- be included multiple times</param>
- <returns>An array of the coordinates represented by the nodes</returns>
- </member>
- <member name="M:NetTopologySuite.Index.KdTree.KdTree`1.#ctor">
- <summary>
- Creates a new instance of a KdTree with a snapping tolerance of 0.0.
- (I.e. distinct points will <i>not</i> be snapped)
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.KdTree.KdTree`1.#ctor(System.Double)">
- <summary>
- Creates a new instance of a KdTree with a snapping distance
- tolerance. Points which lie closer than the tolerance to a point already
- in the tree will be treated as identical to the existing point.
- </summary>
- <param name="tolerance">The tolerance distance for considering two points equal</param>
- </member>
- <member name="P:NetTopologySuite.Index.KdTree.KdTree`1.IsEmpty">
- <summary>
- Tests whether the index contains any items.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Index.KdTree.KdTree`1.Root">
- <summary>
- Gets a value indicating the root node of the tree
- </summary>
- <returns>The root node of the tree</returns>
- </member>
- <member name="M:NetTopologySuite.Index.KdTree.KdTree`1.Insert(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Inserts a new point in the kd-tree, with no data.
- </summary>
- <param name="p">The point to insert</param>
- <returns>The kdnode containing the point</returns>
- </member>
- <member name="M:NetTopologySuite.Index.KdTree.KdTree`1.Insert(NetTopologySuite.Geometries.Coordinate,`0)">
- <summary>
- Inserts a new point into the kd-tree.
- </summary>
- <param name="p">The point to insert</param>
- <param name="data">A data item for the point</param>
- <returns>
- A new KdNode if a new point is inserted, else an existing
- node is returned with its counter incremented. This can be checked
- by testing returnedNode.getCount() > 1.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Index.KdTree.KdTree`1.FindBestMatchNode(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Finds the node in the tree which is the best match for a point
- being inserted.
- The match is made deterministic by returning the lowest of any nodes which
- lie the same distance from the point.
- There may be no match if the point is not within the distance tolerance of any
- existing node.
- </summary>
- <param name="p">The point being inserted</param>
- <returns>
- <list type="bullet">
- <item><description>the best matching node</description></item>
- <item><description>null if no match was found</description></item>
- </list>
- </returns>
- </member>
- <member name="M:NetTopologySuite.Index.KdTree.KdTree`1.InsertExact(NetTopologySuite.Geometries.Coordinate,`0)">
- <summary>
- Inserts a point known to be beyond the distance tolerance of any existing node.
- The point is inserted at the bottom of the exact splitting path,
- so that tree shape is deterministic.
- </summary>
- <param name="p">The point to insert</param>
- <param name="data">The data associated with <paramref name="p"/></param>
- <returns>
- <list type="bullet">
- <item><description>The data for the point</description></item>
- <item><description>The created node</description></item>
- </list>
- </returns>
- </member>
- <member name="M:NetTopologySuite.Index.KdTree.KdTree`1.Query(NetTopologySuite.Geometries.Envelope,NetTopologySuite.Index.KdTree.IKdNodeVisitor{`0})">
- <summary>
- Performs a range search of the points in the index and visits all nodes found.
- </summary>
- <param name="queryEnv">The range rectangle to query</param>
- <param name="visitor">A visitor to visit all nodes found by the search</param>
- </member>
- <member name="M:NetTopologySuite.Index.KdTree.KdTree`1.Query(NetTopologySuite.Geometries.Envelope)">
- <summary>
- Performs a range search of the points in the index.
- </summary>
- <param name="queryEnv">The range rectangle to query</param>
- <returns>A collection of the KdNodes found</returns>
- </member>
- <member name="M:NetTopologySuite.Index.KdTree.KdTree`1.Query(NetTopologySuite.Geometries.Envelope,System.Collections.Generic.IList{NetTopologySuite.Index.KdTree.KdNode{`0}})">
- <summary>
- Performs a range search of the points in the index.
- </summary>
- <param name="queryEnv">The range rectangle to query</param>
- <param name="result">A collection to accumulate the result nodes into</param>
- </member>
- <member name="M:NetTopologySuite.Index.KdTree.KdTree`1.Query(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Searches for a given point in the index and returns its node if found.
- </summary>
- <param name="queryPt">the point to query</param>
- <returns>the point node, if it is found in the index, or <see langword="null"/> if not</returns>
- </member>
- <member name="P:NetTopologySuite.Index.KdTree.KdTree`1.Depth">
- <summary>
- Gets a value indicating the depth of the tree
- </summary>
- <returns>The depth of the tree</returns>
- </member>
- <member name="P:NetTopologySuite.Index.KdTree.KdTree`1.Count">
- <summary>
- Gets a value indicating the number of items in the tree.
- </summary>
- <returns>The number of items in the tree.</returns>
- </member>
- <member name="T:NetTopologySuite.Index.KdTree.KdTreeExtensions">
- <summary>
- Extensions methods for the <see cref="T:NetTopologySuite.Index.KdTree.KdTree`1"/>.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.KdTree.KdTreeExtensions.NearestNeighbor``1(NetTopologySuite.Index.KdTree.KdTree{``0},NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Performs a nearest neighbor search of the points in the index.
- </summary>
- <param name="self">The KdTree to look for the nearest neighbor</param>
- <param name="coord">The point to search the nearset neighbor for</param>
- </member>
- <member name="T:NetTopologySuite.Index.Quadtree.DoubleBits">
- <summary>
- DoubleBits manipulates Double numbers
- by using bit manipulation and bit-field extraction.
- For some operations (such as determining the exponent)
- this is more accurate than using mathematical operations
- (which suffer from round-off error).
- The algorithms and constants in this class
- apply only to IEEE-754 double-precision floating point format.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Index.Quadtree.DoubleBits.ExponentBias">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.Quadtree.DoubleBits.PowerOf2(System.Int32)">
- <summary>
-
- </summary>
- <param name="exp"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Index.Quadtree.DoubleBits.GetExponent(System.Double)">
- <summary>
-
- </summary>
- <param name="d"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Index.Quadtree.DoubleBits.TruncateToPowerOfTwo(System.Double)">
- <summary>
-
- </summary>
- <param name="d"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Index.Quadtree.DoubleBits.ToBinaryString(System.Double)">
- <summary>
-
- </summary>
- <param name="d"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Index.Quadtree.DoubleBits.MaximumCommonMantissa(System.Double,System.Double)">
- <summary>
-
- </summary>
- <param name="d1"></param>
- <param name="d2"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Index.Quadtree.DoubleBits.#ctor(System.Double)">
- <summary>
-
- </summary>
- <param name="x"></param>
- </member>
- <member name="P:NetTopologySuite.Index.Quadtree.DoubleBits.Double">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.Index.Quadtree.DoubleBits.BiasedExponent">
- <summary>
- Determines the exponent for the number.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Index.Quadtree.DoubleBits.Exponent">
- <summary>
- Determines the exponent for the number.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.Quadtree.DoubleBits.ZeroLowerBits(System.Int32)">
- <summary>
-
- </summary>
- <param name="nBits"></param>
- </member>
- <member name="M:NetTopologySuite.Index.Quadtree.DoubleBits.GetBit(System.Int32)">
- <summary>
-
- </summary>
- <param name="i"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Index.Quadtree.DoubleBits.NumCommonMantissaBits(NetTopologySuite.Index.Quadtree.DoubleBits)">
- <summary>
- This computes the number of common most-significant bits in the mantissa.
- It does not count the hidden bit, which is always 1.
- It does not determine whether the numbers have the same exponent - if they do
- not, the value computed by this function is meaningless.
- </summary>
- <param name="db"></param>
- <returns> The number of common most-significant mantissa bits.</returns>
- </member>
- <member name="M:NetTopologySuite.Index.Quadtree.DoubleBits.ToString">
- <summary>
- A representation of the Double bits formatted for easy readability.
- </summary>
- </member>
- <member name="T:NetTopologySuite.Index.Quadtree.IntervalSize">
- <summary>
- Provides a test for whether an interval is
- so small it should be considered as zero for the purposes of
- inserting it into a binary tree.
- The reason this check is necessary is that round-off error can
- cause the algorithm used to subdivide an interval to fail, by
- computing a midpoint value which does not lie strictly between the
- endpoints.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.Quadtree.IntervalSize.#ctor">
- <summary>
- Only static methods!
- </summary>
- </member>
- <member name="F:NetTopologySuite.Index.Quadtree.IntervalSize.MinBinaryExponent">
- <summary>
- This value is chosen to be a few powers of 2 less than the
- number of bits available in the double representation (i.e. 53).
- This should allow enough extra precision for simple computations to be correct,
- at least for comparison purposes.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.Quadtree.IntervalSize.IsZeroWidth(System.Double,System.Double)">
- <summary>
- Computes whether the interval [min, max] is effectively zero width.
- I.e. the width of the interval is so much less than the
- location of the interval that the midpoint of the interval cannot be
- represented precisely.
- </summary>
- </member>
- <member name="T:NetTopologySuite.Index.Quadtree.Key">
- <summary>
- A Key is a unique identifier for a node in a quadtree.
- It contains a lower-left point and a level number. The level number
- is the power of two for the size of the node envelope.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.Quadtree.Key.ComputeQuadLevel(NetTopologySuite.Geometries.Envelope)">
- <summary>
-
- </summary>
- <param name="env"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Index.Quadtree.Key.#ctor(NetTopologySuite.Geometries.Envelope)">
- <summary>
-
- </summary>
- <param name="itemEnv"></param>
- </member>
- <member name="P:NetTopologySuite.Index.Quadtree.Key.Point">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.Index.Quadtree.Key.Level">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.Index.Quadtree.Key.Envelope">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.Index.Quadtree.Key.Centre">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.Quadtree.Key.ComputeKey(NetTopologySuite.Geometries.Envelope)">
- <summary>
- Return a square envelope containing the argument envelope,
- whose extent is a power of two and which is based at a power of 2.
- </summary>
- <param name="itemEnv"></param>
- </member>
- <member name="M:NetTopologySuite.Index.Quadtree.Key.ComputeKey(System.Int32,NetTopologySuite.Geometries.Envelope)">
- <summary>
-
- </summary>
- <param name="level"></param>
- <param name="itemEnv"></param>
- </member>
- <member name="T:NetTopologySuite.Index.Quadtree.Node`1">
- <summary>
- Represents a node of a <c>Quadtree</c>. Nodes contain
- items which have a spatial extent corresponding to the node's position
- in the quadtree.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.Quadtree.Node`1.CreateNode(NetTopologySuite.Geometries.Envelope)">
- <summary>
-
- </summary>
- <param name="env"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Index.Quadtree.Node`1.CreateExpanded(NetTopologySuite.Index.Quadtree.Node{`0},NetTopologySuite.Geometries.Envelope)">
- <summary>
-
- </summary>
- <param name="node"></param>
- <param name="addEnv"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Index.Quadtree.Node`1.#ctor(NetTopologySuite.Geometries.Envelope,System.Int32)">
- <summary>
-
- </summary>
- <param name="env"></param>
- <param name="level"></param>
- </member>
- <member name="P:NetTopologySuite.Index.Quadtree.Node`1.Envelope">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.Quadtree.Node`1.IsSearchMatch(NetTopologySuite.Geometries.Envelope)">
- <summary>
-
- </summary>
- <param name="searchEnv"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Index.Quadtree.Node`1.GetNode(NetTopologySuite.Geometries.Envelope)">
- <summary>
- Returns the subquad containing the envelope <paramref name="searchEnv"/>.
- Creates the subquad if
- it does not already exist.
- </summary>
- <param name="searchEnv">The envelope to search for</param>
- <returns>The subquad containing the search envelope.</returns>
- </member>
- <member name="M:NetTopologySuite.Index.Quadtree.Node`1.Find(NetTopologySuite.Geometries.Envelope)">
- <summary>
- Returns the smallest <i>existing</i>
- node containing the envelope.
- </summary>
- <param name="searchEnv"></param>
- </member>
- <member name="M:NetTopologySuite.Index.Quadtree.Node`1.InsertNode(NetTopologySuite.Index.Quadtree.Node{`0})">
- <summary>
-
- </summary>
- <param name="node"></param>
- </member>
- <member name="M:NetTopologySuite.Index.Quadtree.Node`1.GetSubnode(System.Int32)">
- <summary>
- Get the subquad for the index.
- If it doesn't exist, create it.
- </summary>
- <param name="index"></param>
- </member>
- <member name="M:NetTopologySuite.Index.Quadtree.Node`1.CreateSubnode(System.Int32)">
- <summary>
-
- </summary>
- <param name="index"></param>
- <returns></returns>
- </member>
- <member name="P:NetTopologySuite.Index.Quadtree.Node`1.Level">
- <summary>
- Gets a value indicating the level of this node
- </summary>
- <returns>The level of this node</returns>
- </member>
- <member name="T:NetTopologySuite.Index.Quadtree.NodeBase`1">
- <summary>
- The base class for nodes in a <c>Quadtree</c>.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.Quadtree.NodeBase`1.GetSubnodeIndex(NetTopologySuite.Geometries.Envelope,System.Double,System.Double)">
- <summary>
- Gets the index of the subquad that wholly contains the given envelope.
- If none does, returns -1.
- </summary>
- <returns>The index of the subquad that wholly contains the given envelope <br/>
- or -1 if no subquad wholly contains the envelope</returns>
- </member>
- <member name="F:NetTopologySuite.Index.Quadtree.NodeBase`1._items">
- <summary>
-
- </summary>
- </member>
- <member name="F:NetTopologySuite.Index.Quadtree.NodeBase`1.Subnode">
- <summary>
- subquads are numbered as follows:
- 2 | 3
- --+--
- 0 | 1
- </summary>
- </member>
- <member name="P:NetTopologySuite.Index.Quadtree.NodeBase`1.Items">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.Index.Quadtree.NodeBase`1.HasItems">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.Quadtree.NodeBase`1.Add(`0)">
- <summary>
-
- </summary>
- <param name="item"></param>
- </member>
- <member name="M:NetTopologySuite.Index.Quadtree.NodeBase`1.Remove(NetTopologySuite.Geometries.Envelope,`0)">
- <summary>
- Removes a single item from this subtree.
- </summary>
- <param name="itemEnv">The envelope containing the item.</param>
- <param name="item">The item to remove.</param>
- <returns><c>true</c> if the item was found and removed.</returns>
- </member>
- <member name="P:NetTopologySuite.Index.Quadtree.NodeBase`1.IsPrunable">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.Index.Quadtree.NodeBase`1.HasChildren">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.Index.Quadtree.NodeBase`1.IsEmpty">
- <summary>
- Gets a value indicating that this node is empty, i.e. it does not contain an items or sub-nodes.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.Quadtree.NodeBase`1.AddAllItems(System.Collections.Generic.IList{`0}@)">
- <summary>
- Insert items in <c>this</c> into the parameter!
- </summary>
- <param name="resultItems">IList for adding items.</param>
- <returns>Parameter IList with <c>this</c> items.</returns>
- </member>
- <member name="M:NetTopologySuite.Index.Quadtree.NodeBase`1.IsSearchMatch(NetTopologySuite.Geometries.Envelope)">
- <summary>
-
- </summary>
- <param name="searchEnv"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Index.Quadtree.NodeBase`1.AddAllItemsFromOverlapping(NetTopologySuite.Geometries.Envelope,System.Collections.Generic.IList{`0}@)">
- <summary>
-
- </summary>
- <param name="searchEnv"></param>
- <param name="resultItems"></param>
- </member>
- <member name="M:NetTopologySuite.Index.Quadtree.NodeBase`1.Visit(NetTopologySuite.Geometries.Envelope,NetTopologySuite.Index.IItemVisitor{`0})">
- <summary>
-
- </summary>
- <param name="searchEnv"></param>
- <param name="visitor"></param>
- </member>
- <member name="M:NetTopologySuite.Index.Quadtree.NodeBase`1.VisitItems(NetTopologySuite.Geometries.Envelope,NetTopologySuite.Index.IItemVisitor{`0})">
- <summary>
-
- </summary>
- <param name="searchEnv"></param>
- <param name="visitor"></param>
- </member>
- <member name="P:NetTopologySuite.Index.Quadtree.NodeBase`1.Depth">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.Index.Quadtree.NodeBase`1.Count">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.Index.Quadtree.NodeBase`1.NodeCount">
- <summary>
-
- </summary>
- </member>
- <member name="T:NetTopologySuite.Index.Quadtree.Quadtree`1">
- <summary>
- A Quadtree is a spatial index structure for efficient range querying
- of items bounded by 2D rectangles.<br/>
- <see cref="T:NetTopologySuite.Geometries.Geometry"/>s can be indexed by using their <see cref="T:NetTopologySuite.Geometries.Envelope"/>s.<br/>
- Any type of object can also be indexed, as long as it has an extent that can be
- represented by an <see cref="T:NetTopologySuite.Geometries.Envelope"/>.
- <para/>
- This Quadtree index provides a <b>primary filter</b>
- for range rectangle queries. The various query methods return a list of
- all items which <i>may</i> intersect the query rectangle. Note that
- it may thus return items which do <b>not</b> in fact intersect the query rectangle.
- A secondary filter is required to test for actual intersection
- between the query rectangle and the envelope of each candidate item.
- The secondary filter may be performed explicitly,
- or it may be provided implicitly by subsequent operations executed on the items
- (for instance, if the index query is followed by computing a spatial predicate
- between the query geometry and tree items,
- the envelope intersection check is performed automatically.
- <para/>
- This implementation does not require specifying the extent of the inserted
- items beforehand. It will automatically expand to accommodate any extent
- of dataset.
- <para/>
- This data structure is also known as an <c>MX-CIF quadtree</c>
- following the terminology usage of Samet and others.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.Quadtree.Quadtree`1.EnsureExtent(NetTopologySuite.Geometries.Envelope,System.Double)">
- <summary>
- Ensure that the envelope for the inserted item has non-zero extents.
- Use the current minExtent to pad the envelope, if necessary.
- </summary>
- <param name="itemEnv"></param>
- <param name="minExtent"></param>
- </member>
- <member name="F:NetTopologySuite.Index.Quadtree.Quadtree`1._minExtent">
- <summary>
- minExtent is the minimum envelope extent of all items
- inserted into the tree so far. It is used as a heuristic value
- to construct non-zero envelopes for features with zero X and/or Y extent.
- Start with a non-zero extent, in case the first feature inserted has
- a zero extent in both directions. This value may be non-optimal, but
- only one feature will be inserted with this value.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.Quadtree.Quadtree`1.#ctor">
- <summary>
- Constructs a Quadtree with zero items.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Index.Quadtree.Quadtree`1.Depth">
- <summary>
- Returns the number of levels in the tree.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Index.Quadtree.Quadtree`1.IsEmpty">
- <summary>
- Tests whether the index contains any items.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Index.Quadtree.Quadtree`1.Count">
- <summary>
- Returns the number of items in the tree.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.Quadtree.Quadtree`1.Insert(NetTopologySuite.Geometries.Envelope,`0)">
- <summary>
-
- </summary>
- <param name="itemEnv"></param>
- <param name="item"></param>
- </member>
- <member name="M:NetTopologySuite.Index.Quadtree.Quadtree`1.Remove(NetTopologySuite.Geometries.Envelope,`0)">
- <summary>
- Removes a single item from the tree.
- </summary>
- <param name="itemEnv">The Envelope of the item to be removed.</param>
- <param name="item">The item to remove.</param>
- <returns><c>true</c> if the item was found (and thus removed).</returns>
- </member>
- <member name="M:NetTopologySuite.Index.Quadtree.Quadtree`1.Query(NetTopologySuite.Geometries.Envelope)">
- <summary>
- Queries the tree and returns items which may lie in the given search envelope.
- </summary>
- <remarks>
- Precisely, the items that are returned are all items in the tree
- whose envelope <b>may</b> intersect the search Envelope.
- Note that some items with non-intersecting envelopes may be returned as well;
- the client is responsible for filtering these out.
- In most situations there will be many items in the tree which do not
- intersect the search envelope and which are not returned - thus
- providing improved performance over a simple linear scan.
- </remarks>
- <param name="searchEnv">The envelope of the desired query area.</param>
- <returns>A List of items which may intersect the search envelope</returns>
- </member>
- <member name="M:NetTopologySuite.Index.Quadtree.Quadtree`1.Query(NetTopologySuite.Geometries.Envelope,NetTopologySuite.Index.IItemVisitor{`0})">
- <summary>
- Queries the tree and visits items which may lie in the given search envelope.
- </summary>
- <remarks>
- Precisely, the items that are visited are all items in the tree
- whose envelope <b>may</b> intersect the search Envelope.
- Note that some items with non-intersecting envelopes may be visited as well;
- the client is responsible for filtering these out.
- In most situations there will be many items in the tree which do not
- intersect the search envelope and which are not visited - thus
- providing improved performance over a simple linear scan.
- </remarks>
- <param name="searchEnv">The envelope of the desired query area.</param>
- <param name="visitor">A visitor object which is passed the visited items</param>
- </member>
- <member name="M:NetTopologySuite.Index.Quadtree.Quadtree`1.QueryAll">
- <summary>
- Return a list of all items in the Quadtree.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.Quadtree.Quadtree`1.CollectStats(NetTopologySuite.Geometries.Envelope)">
- <summary>
-
- </summary>
- <param name="itemEnv"></param>
- </member>
- <member name="P:NetTopologySuite.Index.Quadtree.Quadtree`1.Root">
- <summary>
- Gets a value indicating the root node of this QuadTree
- </summary>
- <returns>The root node of this QuadTree</returns>
- </member>
- <member name="T:NetTopologySuite.Index.Quadtree.ExcludingItemVisitor`1">
- <summary>
- Item visitor that specifically excludes a predefined area.
- </summary>
- <typeparam name="T">The type of the items to visit</typeparam>
- </member>
- <member name="M:NetTopologySuite.Index.Quadtree.ExcludingItemVisitor`1.#ctor(NetTopologySuite.Geometries.Envelope)">
- <summary>
- Initialize with <paramref name="exclude"/>
- </summary>
- <param name="exclude"></param>
- </member>
- <member name="M:NetTopologySuite.Index.Quadtree.ExcludingItemVisitor`1.VisitItem(`0)">
- <inheritdoc cref="M:NetTopologySuite.Index.IItemVisitor`1.VisitItem(`0)"/>>
- </member>
- <member name="P:NetTopologySuite.Index.Quadtree.ExcludingItemVisitor`1.Items">
- <summary>
- Get a value indicating the gathered items
- </summary>
- </member>
- <member name="T:NetTopologySuite.Index.Quadtree.Root`1">
- <summary>
- QuadRoot is the root of a single Quadtree.
- It is centred at the origin,
- and does not have a defined extent.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.Quadtree.Root`1.Insert(NetTopologySuite.Geometries.Envelope,`0)">
- <summary>
- Insert an item into the quadtree this is the root of.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.Quadtree.Root`1.InsertContained(NetTopologySuite.Index.Quadtree.Node{`0},NetTopologySuite.Geometries.Envelope,`0)">
- <summary>
- Insert an item which is known to be contained in the tree rooted at
- the given QuadNode root. Lower levels of the tree will be created
- if necessary to hold the item.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.Quadtree.Root`1.IsSearchMatch(NetTopologySuite.Geometries.Envelope)">
- <summary>
-
- </summary>
- <param name="searchEnv"></param>
- <returns></returns>
- </member>
- <member name="T:NetTopologySuite.Index.Strtree.AbstractNode`2">
- <summary>
- A node of an <see cref="T:NetTopologySuite.Index.Strtree.AbstractSTRtree`2"/>. A node is one of:
- <list type="bullet">
- <item>empty</item>
- <item><description>an <i>interior node</i> containing child <see cref="T:NetTopologySuite.Index.Strtree.AbstractNode`2"/>s</description></item>
- <item><description>a <i>leaf node</i> containing data items (<see cref="T:NetTopologySuite.Index.Strtree.ItemBoundable`2"/>s).</description></item>
- </list>
- A node stores the bounds of its children, and its level within the index tree.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.AbstractNode`2.#ctor(System.Int32)">
- <summary>
- Constructs an AbstractNode at the given level in the tree
- </summary>
- <param name="level">
- 0 if this node is a leaf, 1 if a parent of a leaf, and so on; the
- root node will have the highest level.
- </param>
- </member>
- <member name="P:NetTopologySuite.Index.Strtree.AbstractNode`2.ChildBoundables">
- <summary>
- Returns either child <see cref="T:NetTopologySuite.Index.Strtree.AbstractNode`2"/>s, or if this is a leaf node, real data (wrapped
- in <see cref="T:NetTopologySuite.Index.Strtree.ItemBoundable`2"/>s).
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.AbstractNode`2.ComputeBounds">
- <summary>
- Returns a representation of space that encloses this Boundable,
- preferably not much bigger than this Boundable's boundary yet fast to
- test for intersection with the bounds of other Boundables. The class of
- object returned depends on the subclass of AbstractSTRtree.
- </summary>
- <returns>
- An Envelope (for STRtrees), an Interval (for SIRtrees), or other
- object (for other subclasses of AbstractSTRtree).
- </returns>
- </member>
- <member name="P:NetTopologySuite.Index.Strtree.AbstractNode`2.Bounds">
- <summary>
- Gets the bounds of this node
- </summary>
- </member>
- <member name="P:NetTopologySuite.Index.Strtree.AbstractNode`2.Level">
- <summary>
- Returns 0 if this node is a leaf, 1 if a parent of a leaf, and so on; the
- root node will have the highest level.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Index.Strtree.AbstractNode`2.Count">
- <summary>
- Gets the count of the <see cref="T:NetTopologySuite.Geometries.IBoundable`2"/>s at this node.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Index.Strtree.AbstractNode`2.IsEmpty">
- <summary>
- Tests whether there are any <see cref="T:NetTopologySuite.Geometries.IBoundable`2"/>s at this node.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.AbstractNode`2.AddChildBoundable(NetTopologySuite.Geometries.IBoundable{`0,`1})">
- <summary>
- Adds either an AbstractNode, or if this is a leaf node, a data object
- (wrapped in an ItemBoundable).
- </summary>
- <param name="childBoundable">The child to add.</param>
- </member>
- <member name="T:NetTopologySuite.Index.Strtree.AbstractSTRtree`2">
- <summary>
- Base class for STRtree and SIRtree. STR-packed R-trees are described in:
- P. Rigaux, Michel Scholl and Agnes Voisard. <i>Spatial Databases With
- Application To GIS</i>. Morgan Kaufmann, San Francisco, 2002.
- <para>
- 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,
- because the STR algorithm operates on both nodes and
- data, both of which are treated as <see cref="T:NetTopologySuite.Geometries.IBoundable`2"/>s.
- </para>
- </summary>
- </member>
- <member name="T:NetTopologySuite.Index.Strtree.AbstractSTRtree`2.IIntersectsOp">
- <returns>
- A test for intersection between two bounds, necessary because subclasses
- of AbstractSTRtree have different implementations of bounds.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.AbstractSTRtree`2.IIntersectsOp.Intersects(`0,`0)">
- <summary>
- For STRtrees, the bounds will be Envelopes;
- for SIRtrees, Intervals;
- for other subclasses of AbstractSTRtree, some other class.
- </summary>
- <param name="aBounds">The bounds of one spatial object.</param>
- <param name="bBounds">The bounds of another spatial object.</param>
- <returns>Whether the two bounds intersect.</returns>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.AbstractSTRtree`2.#ctor(System.Int32)">
- <summary>
- Constructs an AbstractSTRtree with the specified maximum number of child
- nodes that a node may have.
- </summary>
- <param name="nodeCapacity"></param>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.AbstractSTRtree`2.#ctor(System.Int32,NetTopologySuite.Index.Strtree.AbstractNode{`0,`1})">
- <summary>
- Constructs an AbstractSTRtree with the specified maximum number of child
- nodes that a node may have, and the root node
- </summary>
- <param name="nodeCapacity">The maximum number of child nodes in a node</param>
- <param name="root">The root node that links to all other nodes in the tree</param>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.AbstractSTRtree`2.#ctor(System.Int32,System.Collections.Generic.IList{NetTopologySuite.Geometries.IBoundable{`0,`1}})">
- <summary>
- Constructs an AbstractSTRtree with the specified maximum number of child
- nodes that a node may have, and all leaf nodes in the tree
- </summary>
- <param name="nodeCapacity">The maximum number of child nodes in a node</param>
- <param name="itemBoundables">The list of leaf nodes in the tree</param>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.AbstractSTRtree`2.Build">
- <summary>
- Creates parent nodes, grandparent nodes, and so forth up to the root
- node, for the data that has been inserted into the tree. Can only be
- called once, and thus can be called only after all of the data has been
- inserted into the tree.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.AbstractSTRtree`2.CreateNode(System.Int32)">
- <summary>
-
- </summary>
- <param name="level"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.AbstractSTRtree`2.CreateParentBoundables(System.Collections.Generic.IList{NetTopologySuite.Geometries.IBoundable{`0,`1}},System.Int32)">
- <summary>
- Sorts the childBoundables then divides them into groups of size M, where
- M is the node capacity.
- </summary>
- <param name="childBoundables"></param>
- <param name="newLevel"></param>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.AbstractSTRtree`2.CreateHigherLevels(System.Collections.Generic.IList{NetTopologySuite.Geometries.IBoundable{`0,`1}},System.Int32)">
- <summary>
- Creates the levels higher than the given level.
- </summary>
- <param name="boundablesOfALevel">The level to build on.</param>
- <param name="level">the level of the Boundables, or -1 if the boundables are item
- boundables (that is, below level 0).</param>
- <returns>The root, which may be a ParentNode or a LeafNode.</returns>
- </member>
- <member name="P:NetTopologySuite.Index.Strtree.AbstractSTRtree`2.Root">
- <summary>
- Gets the root node of the tree.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Index.Strtree.AbstractSTRtree`2.NodeCapacity">
- <summary>
- Gets the maximum number of child nodes that a node may have.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Index.Strtree.AbstractSTRtree`2.IsEmpty">
- <summary>
- Tests whether the index contains any items.
- This method does not build the index,
- so items can still be inserted after it has been called.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Index.Strtree.AbstractSTRtree`2.Count">
- <summary>
- Gets the number of elements in the tree
- </summary>
- </member>
- <member name="P:NetTopologySuite.Index.Strtree.AbstractSTRtree`2.Depth">
- <summary>
- Gets the number of levels in the tree.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.AbstractSTRtree`2.Query(`0)">
- <summary>
- Also builds the tree, if necessary.
- </summary>
- <param name="searchBounds"></param>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.AbstractSTRtree`2.ItemsTree">
- <summary>
- Gets a tree structure (as a nested list)
- corresponding to the structure of the items and nodes in this tree.
- The returned Lists contain either Object items,
- or Lists which correspond to subtrees of the tree
- Subtrees which do not contain any items are not included.
- Builds the tree if necessary.
- </summary>
- <returns>a List of items and/or Lists</returns>
- </member>
- <member name="P:NetTopologySuite.Index.Strtree.AbstractSTRtree`2.IntersectsOp">
- <returns>
- A test for intersection between two bounds, necessary because subclasses
- of AbstractSTRtree have different implementations of bounds.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.AbstractSTRtree`2.Remove(`0,`1)">
- <summary>
- Removes an item from the tree.
- (Builds the tree, if necessary.)
- </summary>
- </member>
- <member name="P:NetTopologySuite.Index.Strtree.AbstractSTRtree`2.ItemBoundables">
- <summary>
- Gets a value indicating the boundable items that have to be included in the index
- </summary>
- <returns>A list of boundable items</returns>
- </member>
- <member name="T:NetTopologySuite.Index.Strtree.BoundablePair`1">
- <summary>
- A pair of <see cref="T:NetTopologySuite.Geometries.IBoundable`2"/>s, whose leaf items
- support a distance metric between them.
- Used to compute the distance between the members,
- and to expand a member relative to the other
- in order to produce new branches of the
- Branch-and-Bound evaluation tree.
- Provides an ordering based on the distance between the members,
- which allows building a priority queue by minimum distance.
- </summary>
- <author>Martin Davis</author>
- </member>
- <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})">
- <summary>
- 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.
- </summary>
- <param name="boundable1">The first boundable</param>
- <param name="boundable2">The second boundable</param>
- <param name="itemDistance">The item distance function</param>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.BoundablePair`1.GetBoundable(System.Int32)">
- <summary>
- Gets one of the member <see cref="T:NetTopologySuite.Geometries.IBoundable`2"/>s in the pair
- (indexed by [0, 1]).
- </summary>
- <param name="i">The index of the member to return (0 or 1)</param>
- <returns>The chosen member</returns>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.BoundablePair`1.MaximumDistance">
- <summary>
- Computes the maximum distance between any
- two items in the pair of nodes.
- </summary>
- <returns>the maximum distance between items in the pair</returns>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.BoundablePair`1.GetDistance">
- <summary>
- Computes the distance between the <see cref="T:NetTopologySuite.Geometries.IBoundable`2"/>s in this pair.
- The boundables are either composites or leaves.
- If either is composite, the distance is computed as the minimum distance
- between the bounds.
- 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})"/>.
- </summary>
- <returns>The distance between the <see cref="T:NetTopologySuite.Geometries.IBoundable`2"/>s in this pair.</returns>
- </member>
- <member name="P:NetTopologySuite.Index.Strtree.BoundablePair`1.Distance">
- <summary>
- Gets the minimum possible distance between the Boundables in
- this pair.
- If the members are both items, this will be the
- exact distance between them.
- Otherwise, this distance will be a lower bound on
- the distances between the items in the members.
- </summary>
- <returns>The exact or lower bound distance for this pair</returns>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.BoundablePair`1.CompareTo(NetTopologySuite.Index.Strtree.BoundablePair{`0})">
- <summary>
- Compares two pairs based on their minimum distances
- </summary>
- </member>
- <member name="P:NetTopologySuite.Index.Strtree.BoundablePair`1.IsLeaves">
- <summary>
- Tests if both elements of the pair are leaf nodes
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.BoundablePair`1.ExpandToQueue(NetTopologySuite.Utilities.PriorityQueue{NetTopologySuite.Index.Strtree.BoundablePair{`0}},System.Double)">
- <summary>
- For a pair which is not a leaf
- (i.e. has at least one composite boundable)
- computes a list of new pairs
- from the expansion of the larger boundable
- with distance less than minDistance
- and adds them to a priority queue.
- <para/>
- Note that expanded pairs may contain
- the same item/node on both sides.
- This must be allowed to support distance
- functions which have non-zero distances
- between the item and itself (non-zero reflexive distance).
- </summary>
- <param name="priQ">The priority queue to add the new pairs to. </param>
- <param name="minDistance">The limit on the distance between added pairs. </param>
- </member>
- <member name="T:NetTopologySuite.Index.Strtree.BoundablePairDistanceComparer`1">
- <summary>
- The Class BoundablePairDistanceComparator. It implements .Net <see cref="T:System.Collections.Generic.IComparer`1"/> and is used
- as a parameter to sort the BoundablePair list.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Index.Strtree.BoundablePairDistanceComparer`1._normalOrder">
- <summary>The normal order</summary>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.BoundablePairDistanceComparer`1.#ctor(System.Boolean)">
- <summary>
- Instantiates a new boundable pair distance comparator.
- </summary>
- <param name="normalOrder">
- A value of <c>true</c> puts the lowest record at the head of this queue.
- This is the natural order. <see cref="M:NetTopologySuite.Utilities.PriorityQueue`1.Peek"/> will get the least element.
- </param>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.BoundablePairDistanceComparer`1.Compare(NetTopologySuite.Index.Strtree.BoundablePair{`0},NetTopologySuite.Index.Strtree.BoundablePair{`0})">
- <inheritdoc cref="M:System.Collections.Generic.IComparer`1.Compare(`0,`0)"/>
- </member>
- <member name="T:NetTopologySuite.Index.Strtree.EnvelopeDistance">
- <summary>
- Utility functions for working with <see cref="T:NetTopologySuite.Geometries.Envelope"/>s.
- </summary>
- <author>mdavis</author>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.EnvelopeDistance.MaximumDistance(NetTopologySuite.Geometries.Envelope,NetTopologySuite.Geometries.Envelope)">
- <summary>
- Computes the maximum distance between the points defining two envelopes.
- This is the distance between the two corners which are farthest apart.
- <para/>
- Note that this is NOT the MinMax distance, which is a tighter bound on
- the distance between the points in the envelopes.
- </summary>
- <param name="env1">An envelope</param>
- <param name="env2">An envelope</param>
- <returns>The maximum distance between the points defining the envelopes</returns>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.EnvelopeDistance.MinMaxDistance(NetTopologySuite.Geometries.Envelope,NetTopologySuite.Geometries.Envelope)">
- <summary>
- Computes the Min-Max Distance between two <see cref="T:NetTopologySuite.Geometries.Envelope"/>s.
- It is equal to the minimum of the maximum distances between all pairs of
- edge segments from the two envelopes.
- This is the tight upper bound on the distance between
- geometric items bounded by the envelopes.
- <para/>
- Theoretically this bound can be used in the R-tree nearest-neighbour branch-and-bound search
- instead of <see cref="M:NetTopologySuite.Index.Strtree.EnvelopeDistance.MaximumDistance(NetTopologySuite.Geometries.Envelope,NetTopologySuite.Geometries.Envelope)"/>.
- However, little performance improvement is observed in practice.
- </summary>
- <param name="a">An envelope</param>
- <param name="b">An envelope</param>
- <returns>The min-max-distance between the envelopes</returns>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.EnvelopeDistance.MaxDistance(System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)">
- <summary>
- Computes the maximum distance between two line segments.
- </summary>
- <param name="ax1">x-ordinate of first endpoint of segment 1</param>
- <param name="ay1">y-ordinate of first endpoint of segment 1</param>
- <param name="ax2">x-ordinate of second endpoint of segment 1</param>
- <param name="ay2">y-ordinate of second endpoint of segment 1</param>
- <param name="bx1">x-ordinate of first endpoint of segment 2</param>
- <param name="by1">y-ordinate of first endpoint of segment 2</param>
- <param name="bx2">x-ordinate of second endpoint of segment 2</param>
- <param name="by2">y-ordinate of second endpoint of segment 2</param>
- <returns>Maximum distance between the segments</returns>
- </member>
- <member name="T:NetTopologySuite.Index.Strtree.GeometryItemDistance">
- <summary>
- An <see cref="T:NetTopologySuite.Index.Strtree.IItemDistance`2"/> function for
- items which are <see cref="T:NetTopologySuite.Geometries.Geometry"/> using the <see cref="M:NetTopologySuite.Geometries.Geometry.Distance(NetTopologySuite.Geometries.Geometry)"/> method.
- <para/>
- To make this distance function suitable for
- using to query a single index tree,
- the distance metric is <i>anti-reflexive</i>.
- That is, if the two arguments are the same Geometry object,
- the distance returned is <see cref="F:System.Double.MaxValue"/>.
- </summary>
- <author>Martin Davis</author>
- </member>
- <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})">
- <summary>
- Computes the distance between two <see cref="T:NetTopologySuite.Geometries.Geometry"/> items,
- using the <see cref="M:NetTopologySuite.Geometries.Geometry.Distance(NetTopologySuite.Geometries.Geometry)"/> method.
- </summary>
- <param name="item1">An item which is a geometry.</param>
- <param name="item2">An item which is a geometry.</param>
- <exception cref="T:System.InvalidCastException">if either item is not a Geometry</exception>
- <returns>The distance between the two items.</returns>
- </member>
- <member name="T:NetTopologySuite.Index.Strtree.IItemDistance`2">
- <summary>
- A function method which computes the distance
- between two <see cref="T:NetTopologySuite.Geometries.IBoundable`2"/>s in an <see cref="T:NetTopologySuite.Index.Strtree.STRtree`1"/>.
- Used for Nearest Neighbour searches.
- <para/>
- To make a distance function suitable for
- querying a single index tree
- via <see cref="M:NetTopologySuite.Index.Strtree.STRtree`1.NearestNeighbour(NetTopologySuite.Index.Strtree.IItemDistance{NetTopologySuite.Geometries.Envelope,`0})"/>,
- the function should have a non-zero <i>reflexive distance</i>.
- That is, if the two arguments are the same object,
- the distance returned should be non-zero.
- If it is required that only pairs of <b>distinct</b> items be returned,
- the distance function must be <i>anti-reflexive</i>,
- and must return <see cref="F:System.Double.MaxValue"/> for identical arguments.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.IItemDistance`2.Distance(NetTopologySuite.Geometries.IBoundable{`0,`1},NetTopologySuite.Geometries.IBoundable{`0,`1})">
- <summary>
- Computes the distance between two items.
- </summary>
- <param name="item1">The first item.</param>
- <param name="item2">The second item.</param>
- <exception cref="T:System.ArgumentException">If the metric is not applicable to the arguments</exception>
- <returns>The distance between <paramref name="item1"/> and <paramref name="item2"/>.</returns>
- </member>
- <member name="T:NetTopologySuite.Index.Strtree.Interval">
- <summary>
- A contiguous portion of 1D-space. Used internally by SIRtree.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.Interval.#ctor(NetTopologySuite.Index.Strtree.Interval)">
- <summary>
-
- </summary>
- <param name="other"></param>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.Interval.#ctor(System.Double,System.Double)">
- <summary>
-
- </summary>
- <param name="min"></param>
- <param name="max"></param>
- </member>
- <member name="P:NetTopologySuite.Index.Strtree.Interval.Centre">
- <summary>
- Gets the centre of the interval.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.Interval.ExpandToInclude(NetTopologySuite.Index.Strtree.Interval)">
- <summary>
-
- </summary>
- <param name="other"></param>
- <returns><c>this</c></returns>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.Interval.ExpandedBy(NetTopologySuite.Index.Strtree.Interval)">
- <summary>
-
- </summary>
- <param name="other"></param>
- <returns><c>this</c></returns>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.Interval.Intersects(NetTopologySuite.Index.Strtree.Interval)">
- <summary>
-
- </summary>
- <param name="other"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.Interval.Equals(System.Object)">
- <summary>
-
- </summary>
- <param name="o"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.Interval.GetHashCode">
- <inheritdoc/>
- </member>
- <member name="T:NetTopologySuite.Index.Strtree.ItemBoundable`2">
- <summary>
- Boundable wrapper for a non-Boundable spatial object. Used internally by
- AbstractSTRtree.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.ItemBoundable`2.#ctor(`0,`1)">
- <summary>
-
- </summary>
- <param name="bounds"></param>
- <param name="item"></param>
- </member>
- <member name="P:NetTopologySuite.Index.Strtree.ItemBoundable`2.Bounds">
- <summary>
- The bounds
- </summary>
- </member>
- <member name="P:NetTopologySuite.Index.Strtree.ItemBoundable`2.Item">
- <summary>
- The item
- </summary>
- </member>
- <member name="T:NetTopologySuite.Index.Strtree.SIRtree`1">
- <summary>
- One-dimensional version of an STR-packed R-tree. SIR stands for
- "Sort-Interval-Recursive". STR-packed R-trees are described in:
- P. Rigaux, Michel Scholl and Agnes Voisard. Spatial Databases With
- Application To GIS. Morgan Kaufmann, San Francisco, 2002.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.SIRtree`1.AnonymousAbstractNodeImpl.#ctor(System.Int32)">
- <summary>
-
- </summary>
- <param name="nodeCapacity"></param>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.SIRtree`1.AnonymousAbstractNodeImpl.ComputeBounds">
- <summary>
-
- </summary>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.SIRtree`1.#ctor">
- <summary>
- Constructs an SIRtree with the default (10) node capacity.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.SIRtree`1.#ctor(System.Int32)">
- <summary>
- Constructs an SIRtree with the given maximum number of child nodes that
- a node may have.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.SIRtree`1.CreateNode(System.Int32)">
- <summary>
-
- </summary>
- <param name="level"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.SIRtree`1.Insert(System.Double,System.Double,`0)">
- <summary>
- Inserts an item having the given bounds into the tree.
- </summary>
- <param name="x1"></param>
- <param name="x2"></param>
- <param name="item"></param>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.SIRtree`1.Query(System.Double)">
- <summary>
- Returns items whose bounds intersect the given value.
- </summary>
- <param name="x"></param>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.SIRtree`1.Query(System.Double,System.Double)">
- <summary>
- Returns items whose bounds intersect the given bounds.
- </summary>
- <param name="x1">Possibly equal to x2.</param>
- <param name="x2">Possibly equal to x1.</param>
- </member>
- <member name="P:NetTopologySuite.Index.Strtree.SIRtree`1.IntersectsOp">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.SIRtree`1.GetComparer">
- <summary>
-
- </summary>
- <returns></returns>
- </member>
- <member name="T:NetTopologySuite.Index.Strtree.STRtree`1">
- <summary>
- A query-only R-tree created using the Sort-Tile-Recursive (STR) algorithm.
- For two-dimensional spatial data.
- <para/>
- The STR packed R-tree is simple to implement and maximizes space
- utilization; that is, as many leaves as possible are filled to capacity.
- Overlap between nodes is far less than in a basic R-tree.
- However, the index is semi-static; once the tree has been built
- (which happens automatically upon the first query), items may
- not be added.<br/>
- Items may be removed from the tree using <see cref="M:NetTopologySuite.Index.Strtree.STRtree`1.Remove(NetTopologySuite.Geometries.Envelope,`0)"/>.
- <para/>
- Described in: P. Rigaux, Michel Scholl and Agnes Voisard. Spatial Databases With
- Application To GIS. Morgan Kaufmann, San Francisco, 2002.
- <para/>
- <b>Note that inserting items into a tree is not thread-safe.</b>
- Inserting performed on more than one thread must be synchronized externally.
- <para/>
- Querying a tree is thread-safe. The building phase is done synchronously,
- and querying is stateless.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.STRtree`1.#ctor">
- <summary>
- Constructs an STRtree with the default (10) node capacity.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.STRtree`1.#ctor(System.Int32)">
- <summary>
- Constructs an STRtree with the given maximum number of child nodes that
- a node may have.
- </summary>
- <remarks>The minimum recommended capacity setting is 4.</remarks>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.STRtree`1.#ctor(System.Int32,NetTopologySuite.Index.Strtree.AbstractNode{NetTopologySuite.Geometries.Envelope,`0})">
- <summary>
- Constructs an AbstractSTRtree with the specified maximum number of child
- nodes that a node may have, and the root node
- </summary>
- <retmarks>The minimum recommended capacity setting is 4</retmarks>
- <param name="nodeCapacity">The maximum number of child nodes in a node</param>
- <param name="root">The root node that links to all other nodes in the tree</param>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.STRtree`1.#ctor(System.Int32,System.Collections.Generic.IList{NetTopologySuite.Geometries.IBoundable{NetTopologySuite.Geometries.Envelope,`0}})">
- <summary>
- Constructs an AbstractSTRtree with the specified maximum number of child
- nodes that a node may have, and all leaf nodes in the tree
- </summary>
- <retmarks>The minimum recommended capacity setting is 4</retmarks>
- <param name="nodeCapacity">The maximum number of child nodes in a node</param>
- <param name="itemBoundables">The list of leaf nodes in the tree</param>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.STRtree`1.Avg(System.Double,System.Double)">
- <summary>
-
- </summary>
- <param name="a"></param>
- <param name="b"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.STRtree`1.CentreX(NetTopologySuite.Geometries.Envelope)">
- <summary>
-
- </summary>
- <param name="e"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.STRtree`1.CentreY(NetTopologySuite.Geometries.Envelope)">
- <summary>
-
- </summary>
- <param name="e"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.STRtree`1.CreateParentBoundables(System.Collections.Generic.IList{NetTopologySuite.Geometries.IBoundable{NetTopologySuite.Geometries.Envelope,`0}},System.Int32)">
- <summary>
- Creates the parent level for the given child level. First, orders the items
- by the x-values of the midpoints, and groups them into vertical slices.
- For each slice, orders the items by the y-values of the midpoints, and
- group them into runs of size M (the node capacity). For each run, creates
- a new (parent) node.
- </summary>
- <param name="childBoundables"></param>
- <param name="newLevel"></param>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.STRtree`1.CreateParentBoundablesFromVerticalSlices(System.Collections.Generic.IList{NetTopologySuite.Geometries.IBoundable{NetTopologySuite.Geometries.Envelope,`0}}[],System.Int32)">
- <summary>
-
- </summary>
- <param name="verticalSlices"></param>
- <param name="newLevel"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.STRtree`1.CreateParentBoundablesFromVerticalSlice(System.Collections.Generic.IList{NetTopologySuite.Geometries.IBoundable{NetTopologySuite.Geometries.Envelope,`0}},System.Int32)">
- <summary>
-
- </summary>
- <param name="childBoundables"></param>
- <param name="newLevel"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.STRtree`1.VerticalSlices(System.Collections.Generic.IList{NetTopologySuite.Geometries.IBoundable{NetTopologySuite.Geometries.Envelope,`0}},System.Int32)">
- <summary>
-
- </summary>
- <param name="childBoundables">Must be sorted by the x-value of the envelope midpoints.</param>
- <param name="sliceCount"></param>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.STRtree`1.CreateNode(System.Int32)">
- <summary>
-
- </summary>
- <param name="level"></param>
- <returns></returns>
- </member>
- <member name="P:NetTopologySuite.Index.Strtree.STRtree`1.IntersectsOp">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.STRtree`1.Insert(NetTopologySuite.Geometries.Envelope,`0)">
- <summary>
- Inserts an item having the given bounds into the tree.
- </summary>
- <param name="itemEnv"></param>
- <param name="item"></param>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.STRtree`1.Query(NetTopologySuite.Geometries.Envelope)">
- <summary>
- Returns items whose bounds intersect the given envelope.
- </summary>
- <param name="searchEnv"></param>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.STRtree`1.Query(NetTopologySuite.Geometries.Envelope,NetTopologySuite.Index.IItemVisitor{`0})">
- <summary>
- Returns items whose bounds intersect the given envelope.
- </summary>
- <param name="searchEnv"></param>
- <param name="visitor"></param>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.STRtree`1.Remove(NetTopologySuite.Geometries.Envelope,`0)">
- <summary>
- Removes a single item from the tree.
- </summary>
- <param name="itemEnv">The Envelope of the item to remove.</param>
- <param name="item">The item to remove.</param>
- <returns><c>true</c> if the item was found.</returns>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.STRtree`1.GetComparer">
- <summary>
-
- </summary>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.STRtree`1.NearestNeighbour(NetTopologySuite.Index.Strtree.IItemDistance{NetTopologySuite.Geometries.Envelope,`0})">
- <summary>
- Finds the two nearest items in the tree,
- using <see cref="T:NetTopologySuite.Index.Strtree.IItemDistance`2"/> as the distance metric.
- A Branch-and-Bound tree traversal algorithm is used
- to provide an efficient search.
- <para/>
- If the tree is empty, the return value is <c>null</c>.
- If the tree contains only one item, the return value is a pair containing that item.
- If it is required to find only pairs of distinct items,
- the <see cref="T:NetTopologySuite.Index.Strtree.IItemDistance`2"/> function must be <b>anti-reflexive</b>.
- </summary>
- <param name="itemDist">A distance metric applicable to the items in this tree</param>
- <returns>The pair of the nearest items or <c>null</c> if the tree is empty</returns>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.STRtree`1.NearestNeighbour(NetTopologySuite.Geometries.Envelope,`0,NetTopologySuite.Index.Strtree.IItemDistance{NetTopologySuite.Geometries.Envelope,`0})">
- <summary>
- Finds the item in this tree which is nearest to the given <paramref name="item"/>,
- using <see cref="T:NetTopologySuite.Index.Strtree.IItemDistance`2"/> as the distance metric.
- A Branch-and-Bound tree traversal algorithm is used
- to provide an efficient search.
- <para/>
- The query <paramref name="item"/> does <b>not</b> have to be
- contained in the tree, but it does
- have to be compatible with the <paramref name="itemDist"/>
- distance metric.
- </summary>
- <param name="env">The envelope of the query item</param>
- <param name="item">The item to find the nearest neighbour of</param>
- <param name="itemDist">A distance metric applicable to the items in this tree and the query item</param>
- <returns>The nearest item in this tree or <c>null</c> if the tree is empty</returns>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.STRtree`1.NearestNeighbour(NetTopologySuite.Index.Strtree.STRtree{`0},NetTopologySuite.Index.Strtree.IItemDistance{NetTopologySuite.Geometries.Envelope,`0})">
- <summary>
- Finds the two nearest items from this tree
- and another tree,
- using <see cref="T:NetTopologySuite.Index.Strtree.IItemDistance`2"/> as the distance metric.
- A Branch-and-Bound tree traversal algorithm is used
- to provide an efficient search.
- The result value is a pair of items,
- the first from this tree and the second
- from the argument tree.
- </summary>
- <param name="tree">Another tree</param>
- <param name="itemDist">A distance metric applicable to the items in the trees</param>
- <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>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.STRtree`1.IsWithinDistance(NetTopologySuite.Index.Strtree.STRtree{`0},NetTopologySuite.Index.Strtree.IItemDistance{NetTopologySuite.Geometries.Envelope,`0},System.Double)">
- <summary>
- Tests whether some two items from this tree and another tree
- lie within a given distance.
- <see cref="T:NetTopologySuite.Index.Strtree.IItemDistance`2"/> is used as the distance metric.
- A Branch-and-Bound tree traversal algorithm is used
- to provide an efficient search.
- </summary>
- <param name="tree">Another tree</param>
- <param name="itemDist">A distance metric applicable to the items in the trees</param>
- <param name="maxDistance">The distance limit for the search</param>
- <returns><c>true</c> if there are items within the distance</returns>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.STRtree`1.IsWithinDistance(NetTopologySuite.Index.Strtree.BoundablePair{`0},System.Double)">
- <summary>
- Performs a withinDistance search on the tree node pairs.
- This is a different search algorithm to nearest neighbour.
- It can utilize the <see cref="M:NetTopologySuite.Index.Strtree.BoundablePair`1.MaximumDistance"/> between
- tree nodes to confirm if two internal nodes must
- have items closer than the maxDistance,
- and short-circuit the search.
- </summary>
- <param name="initBndPair">The initial pair containing the tree root nodes</param>
- <param name="maxDistance">The maximum distance to search for</param>
- <returns><c>true</c> if two items lie within the given distance</returns>
- </member>
- <member name="M:NetTopologySuite.Index.Strtree.STRtree`1.NearestNeighbour(NetTopologySuite.Geometries.Envelope,`0,NetTopologySuite.Index.Strtree.IItemDistance{NetTopologySuite.Geometries.Envelope,`0},System.Int32)">
- <summary>
- Finds up to <paramref name="k"/> items in this tree which are the top k nearest neighbors to the given <c>item</c>,
- using <c>itemDist</c> as the distance metric.
- A Branch-and-Bound tree traversal algorithm is used
- to provide an efficient search.
- This method implements the KNN algorithm described in the following paper:
- <para/>
- Roussopoulos, Nick, Stephen Kelley, and Fr�d�ric Vincent. "Nearest neighbor queries."
- ACM sigmod record. Vol. 24. No. 2. ACM, 1995.
- <para/>
- The query <c>item</c> does <b>not</b> have to be
- contained in the tree, but it does
- have to be compatible with the <c>itemDist</c>
- distance metric.<para/>
- If the tree size is smaller than k fewer items will be returned.
- If the tree is empty an array of size 0 is returned.
- </summary>
- <param name="env">The envelope of the query item</param>
- <param name="item">The item to find the nearest neighbours of</param>
- <param name="itemDist">A distance metric applicable to the items in this tree and the query item</param>
- <param name="k">The maximum number of nearest items to search for</param>
- <returns>An array of the nearest items found (with length between 0 and <paramref name="k"/>)</returns>
- </member>
- <member name="T:NetTopologySuite.Index.Sweepline.ISweepLineOverlapAction">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.Sweepline.ISweepLineOverlapAction.Overlap(NetTopologySuite.Index.Sweepline.SweepLineInterval,NetTopologySuite.Index.Sweepline.SweepLineInterval)">
- <summary>
-
- </summary>
- <param name="s0"></param>
- <param name="s1"></param>
- </member>
- <member name="T:NetTopologySuite.Index.Sweepline.SweepLineEvents">
- <summary>
-
- </summary>
- </member>
- <member name="F:NetTopologySuite.Index.Sweepline.SweepLineEvents.Insert">
- <summary>
-
- </summary>
- </member>
- <member name="F:NetTopologySuite.Index.Sweepline.SweepLineEvents.Delete">
- <summary>
-
- </summary>
- </member>
- <member name="T:NetTopologySuite.Index.Sweepline.SweepLineEvent">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.Sweepline.SweepLineEvent.#ctor(System.Double,NetTopologySuite.Index.Sweepline.SweepLineEvent,NetTopologySuite.Index.Sweepline.SweepLineInterval)">
- <summary>
-
- </summary>
- <param name="x"></param>
- <param name="insertEvent"></param>
- <param name="sweepInt"></param>
- </member>
- <member name="P:NetTopologySuite.Index.Sweepline.SweepLineEvent.IsInsert">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.Index.Sweepline.SweepLineEvent.IsDelete">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.Index.Sweepline.SweepLineEvent.InsertEvent">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.Index.Sweepline.SweepLineEvent.DeleteEventIndex">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.Index.Sweepline.SweepLineEvent.Interval">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.Sweepline.SweepLineEvent.CompareTo(System.Object)">
- <summary>
- ProjectionEvents are ordered first by their x-value, and then by their eventType.
- It is important that Insert events are sorted before Delete events, so that
- items whose Insert and Delete events occur at the same x-value will be
- correctly handled.
- </summary>
- <param name="o"></param>
- </member>
- <member name="T:NetTopologySuite.Index.Sweepline.SweepLineIndex">
- <summary>
- A sweepline implements a sorted index on a set of intervals.
- It is used to compute all overlaps between the interval in the index.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.Sweepline.SweepLineIndex.Add(NetTopologySuite.Index.Sweepline.SweepLineInterval)">
- <summary>
-
- </summary>
- <param name="sweepInt"></param>
- </member>
- <member name="M:NetTopologySuite.Index.Sweepline.SweepLineIndex.BuildIndex">
- <summary>
- Because Delete Events have a link to their corresponding Insert event,
- it is possible to compute exactly the range of events which must be
- compared to a given Insert event object.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.Sweepline.SweepLineIndex.ComputeOverlaps(NetTopologySuite.Index.Sweepline.ISweepLineOverlapAction)">
- <summary>
-
- </summary>
- <param name="action"></param>
- </member>
- <member name="M:NetTopologySuite.Index.Sweepline.SweepLineIndex.ProcessOverlaps(System.Int32,System.Int32,NetTopologySuite.Index.Sweepline.SweepLineInterval,NetTopologySuite.Index.Sweepline.ISweepLineOverlapAction)">
- <summary>
-
- </summary>
- <param name="start"></param>
- <param name="end"></param>
- <param name="s0"></param>
- <param name="action"></param>
- </member>
- <member name="T:NetTopologySuite.Index.Sweepline.SweepLineInterval">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.Sweepline.SweepLineInterval.#ctor(System.Double,System.Double)">
- <summary>
-
- </summary>
- <param name="min"></param>
- <param name="max"></param>
- </member>
- <member name="M:NetTopologySuite.Index.Sweepline.SweepLineInterval.#ctor(System.Double,System.Double,System.Object)">
- <summary>
-
- </summary>
- <param name="min"></param>
- <param name="max"></param>
- <param name="item"></param>
- </member>
- <member name="P:NetTopologySuite.Index.Sweepline.SweepLineInterval.Min">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.Index.Sweepline.SweepLineInterval.Max">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.Index.Sweepline.SweepLineInterval.Item">
- <summary>
-
- </summary>
- </member>
- <member name="T:NetTopologySuite.Index.VertexSequencePackedRtree">
- <summary>
- A semi-static spatial index for points which occur
- in a spatially-coherent sequence.
- In particular, this is suitable for indexing the vertices
- of a {@link LineString} or {@link Polygon} ring.
- <para/>
- The index is constructed in a batch fashion on a given sequence of coordinates.
- Coordinates can be removed via the {@link #remove(int)} method.
- <para/>
- Note that this index queries only the individual points
- of the input coordinate sequence,
- <b>not</b> any line segments which might be lie between them.
- <para/>
- The input coordinate array is read-only,
- and is not changed when vertices are removed.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="F:NetTopologySuite.Index.VertexSequencePackedRtree.NodeCapacity">
- <summary>
- Number of items/nodes in a parent node.
- Determined empirically. Performance is not too sensitive to this.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Index.VertexSequencePackedRtree.#ctor(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Creates a new tree over the given sequence of coordinates.
- The sequence should be spatially coherent to provide query performance.
- </summary>
- <param name="pts">A sequence of points</param>
- </member>
- <member name="M:NetTopologySuite.Index.VertexSequencePackedRtree.ComputeLevelOffsets">
- <summary>
- Computes the level offsets.
- This is the position in the <tt>bounds</tt> array of each level.
- The levelOffsets array includes a sentinel value of <c>offset[0] = 0</c>.
- The top level is always of size 1,
- and so also indicates the total number of bounds.
- </summary>
- <returns>The level offsets</returns>
- </member>
- <member name="M:NetTopologySuite.Index.VertexSequencePackedRtree.Query(NetTopologySuite.Geometries.Envelope)">
- <summary>
- Queries the index to find all items which intersect an extent.
- The query result is a list of the indices of input coordinates
- which intersect the extent.
- </summary>
- <param name="queryEnv">The query extent</param>
- <returns>An array of the indices of the input coordinates</returns>
- </member>
- <member name="M:NetTopologySuite.Index.VertexSequencePackedRtree.RemoveAt(System.Int32)">
- <summary>
- Removes the input item at the given index from the spatial index.
- </summary>
- <remarks>
- This does not change the underlying coordinate array.
- </remarks>
- <param name="index">Index the index of the item in the input</param>
- </member>
- <member name="T:NetTopologySuite.IO.BEBinaryWriter">
- <summary>
- Extends the <see cref="T:System.IO.BinaryWriter" /> class to allow writing values in the BigEndian format.
- </summary>
- <remarks>
- While <see cref="T:NetTopologySuite.IO.BEBinaryWriter" /> extends <see cref="T:System.IO.BinaryWriter" />
- adding methods for writing integer values (<see cref="M:NetTopologySuite.IO.BEBinaryWriter.Write(System.Int32)" />)
- and double values (<see cref="M:NetTopologySuite.IO.BEBinaryWriter.Write(System.Double)" />) in the BigEndian format,
- this implementation overrides methods, such <see cref="M:System.IO.BinaryWriter.Write(System.Int32)" />
- and <see cref="M:System.IO.BinaryWriter.Write(System.Double)" /> and more,
- for writing <see cref="F:NetTopologySuite.IO.ByteOrder.BigEndian" /> values in the BigEndian format.
- </remarks>
- </member>
- <member name="M:NetTopologySuite.IO.BEBinaryWriter.#ctor">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.IO.BEBinaryWriter"/> class.
- </summary>
- </member>
- <member name="M:NetTopologySuite.IO.BEBinaryWriter.#ctor(System.IO.Stream)">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.IO.BEBinaryWriter"/> class.
- </summary>
- <param name="output">The supplied stream.</param>
- <exception cref="T:System.ArgumentNullException">output is null. </exception>
- <exception cref="T:System.ArgumentException">
- The stream does not support writing, or the stream is already closed. </exception>
- </member>
- <member name="M:NetTopologySuite.IO.BEBinaryWriter.#ctor(System.IO.Stream,System.Text.Encoding)">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.IO.BEBinaryWriter"/> class.
- </summary>
- <param name="output">The supplied stream.</param>
- <param name="encoding">The character encoding.</param>
- <exception cref="T:System.ArgumentNullException">output or encoding is null. </exception>
- <exception cref="T:System.ArgumentException">
- The stream does not support writing, or the stream is already closed. </exception>
- </member>
- <member name="M:NetTopologySuite.IO.BEBinaryWriter.Write(System.Int16)">
- <summary>
- Writes a two-byte signed integer to the current stream using BigEndian encoding
- and advances the stream position by two bytes.
- </summary>
- <param name="value">The two-byte signed integer to write.</param>
- <exception cref="T:System.ObjectDisposedException">The stream is closed. </exception>
- <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
- </member>
- <member name="M:NetTopologySuite.IO.BEBinaryWriter.Write(System.UInt16)">
- <summary>
- Writes a two-byte unsigned integer to the current stream using BigEndian encoding
- and advances the stream position by two bytes.
- </summary>
- <param name="value">The two-byte unsigned integer to write.</param>
- <exception cref="T:System.ObjectDisposedException">The stream is closed. </exception>
- <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
- </member>
- <member name="M:NetTopologySuite.IO.BEBinaryWriter.Write(System.Int32)">
- <summary>
- Writes a four-byte signed integer to the current stream using BigEndian encoding
- and advances the stream position by four bytes.
- </summary>
- <param name="value">The four-byte signed integer to write.</param>
- <exception cref="T:System.ObjectDisposedException">The stream is closed. </exception>
- <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
- </member>
- <member name="M:NetTopologySuite.IO.BEBinaryWriter.Write(System.UInt32)">
- <summary>
- Writes a four-byte unsigned integer to the current stream using BigEndian encoding
- and advances the stream position by four bytes.
- </summary>
- <param name="value">The four-byte unsigned integer to write.</param>
- <exception cref="T:System.ObjectDisposedException">The stream is closed. </exception>
- <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
- </member>
- <member name="M:NetTopologySuite.IO.BEBinaryWriter.Write(System.Int64)">
- <summary>
- Writes an eight-byte signed integer to the current stream using BigEndian encoding
- and advances the stream position by eight bytes.
- </summary>
- <param name="value">The eight-byte signed integer to write.</param>
- <exception cref="T:System.ObjectDisposedException">The stream is closed. </exception>
- <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
- </member>
- <member name="M:NetTopologySuite.IO.BEBinaryWriter.Write(System.UInt64)">
- <summary>
- Writes an eight-byte unsigned integer to the current stream using BigEndian encoding
- and advances the stream position by eight bytes.
- </summary>
- <param name="value">The eight-byte unsigned integer to write.</param>
- <exception cref="T:System.ObjectDisposedException">The stream is closed. </exception>
- <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
- </member>
- <member name="M:NetTopologySuite.IO.BEBinaryWriter.Write(System.Single)">
- <summary>
- Writes a four-byte floating-point value to the current stream using BigEndian encoding
- and advances the stream position by four bytes.
- </summary>
- <param name="value">The four-byte floating-point value to write.</param>
- <exception cref="T:System.ObjectDisposedException">The stream is closed. </exception>
- <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
- </member>
- <member name="M:NetTopologySuite.IO.BEBinaryWriter.Write(System.Double)">
- <summary>
- Writes an eight-byte floating-point value to the current stream using BigEndian encoding
- and advances the stream position by eight bytes.
- </summary>
- <param name="value">The eight-byte floating-point value to write.</param>
- <exception cref="T:System.ObjectDisposedException">The stream is closed. </exception>
- <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
- </member>
- <member name="T:NetTopologySuite.IO.BiEndianBinaryReader">
- <summary>
- Extends the <see cref="T:System.IO.BinaryReader" /> class to allow reading values in the specified format.
- </summary>
- <remarks>
- While <see cref="T:NetTopologySuite.IO.BiEndianBinaryReader" /> extends <see cref="T:System.IO.BinaryReader" />
- adding methods for reading integer values (<see cref="M:NetTopologySuite.IO.BiEndianBinaryReader.ReadInt32" />)
- and double values (<see cref="M:NetTopologySuite.IO.BiEndianBinaryReader.ReadDouble" />) in the specified format,
- this implementation overrides methods, such <see cref="M:System.IO.BinaryReader.ReadInt32" />
- and <see cref="M:System.IO.BinaryReader.ReadDouble" /> and more,
- for reading values in the specified by <see cref="P:NetTopologySuite.IO.BiEndianBinaryReader.Endianess"/> format.
- </remarks>
- </member>
- <member name="M:NetTopologySuite.IO.BiEndianBinaryReader.#ctor(System.IO.Stream)">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.IO.BiEndianBinaryReader"/> class.
- </summary>
- <param name="stream">The stream.</param>
- </member>
- <member name="M:NetTopologySuite.IO.BiEndianBinaryReader.#ctor(System.IO.Stream,NetTopologySuite.IO.ByteOrder)">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.IO.BiEndianBinaryReader"/> class.
- </summary>
- <param name="input">The supplied stream.</param>
- <param name="endianess">The byte order.</param>
- <exception cref="T:System.ArgumentException">The stream does not support reading, the stream is null, or the stream is already closed. </exception>
- </member>
- <member name="P:NetTopologySuite.IO.BiEndianBinaryReader.Endianess">
- <summary>
- Encoding type
- </summary>
- </member>
- <member name="M:NetTopologySuite.IO.BiEndianBinaryReader.ReadInt16">
- <summary>
- Reads a 2-byte signed integer from the current stream using the specified encoding
- and advances the current position of the stream by two bytes.
- </summary>
- <returns>
- A 2-byte signed integer read from the current stream.
- </returns>
- <exception cref="T:System.ObjectDisposedException">The stream is closed. </exception>
- <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
- <exception cref="T:System.IO.EndOfStreamException">The end of the stream is reached. </exception>
- </member>
- <member name="M:NetTopologySuite.IO.BiEndianBinaryReader.ReadUInt16">
- <summary>
- Reads a 2-byte unsigned integer from the current stream using the specified encoding
- and advances the position of the stream by two bytes.
- </summary>
- <returns>
- A 2-byte unsigned integer read from this stream.
- </returns>
- <exception cref="T:System.ObjectDisposedException">The stream is closed. </exception>
- <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
- <exception cref="T:System.IO.EndOfStreamException">The end of the stream is reached. </exception>
- </member>
- <member name="M:NetTopologySuite.IO.BiEndianBinaryReader.ReadInt32">
- <summary>
- Reads a 4-byte signed integer from the current stream using the specified encoding
- and advances the current position of the stream by four bytes.
- </summary>
- <returns>
- A 4-byte signed integer read from the current stream.
- </returns>
- <exception cref="T:System.ObjectDisposedException">The stream is closed. </exception>
- <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
- <exception cref="T:System.IO.EndOfStreamException">The end of the stream is reached. </exception>
- </member>
- <member name="M:NetTopologySuite.IO.BiEndianBinaryReader.ReadUInt32">
- <summary>
- Reads a 4-byte unsigned integer from the current stream using the specified encoding
- and advances the position of the stream by four bytes.
- </summary>
- <returns>
- A 4-byte unsigned integer read from this stream.
- </returns>
- <exception cref="T:System.ObjectDisposedException">The stream is closed. </exception>
- <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
- <exception cref="T:System.IO.EndOfStreamException">The end of the stream is reached. </exception>
- </member>
- <member name="M:NetTopologySuite.IO.BiEndianBinaryReader.ReadInt64">
- <summary>
- Reads an 8-byte signed integer from the current stream using the specified encoding
- and advances the current position of the stream by eight bytes.
- </summary>
- <returns>
- An 8-byte signed integer read from the current stream.
- </returns>
- <exception cref="T:System.ObjectDisposedException">The stream is closed. </exception>
- <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
- <exception cref="T:System.IO.EndOfStreamException">The end of the stream is reached. </exception>
- </member>
- <member name="M:NetTopologySuite.IO.BiEndianBinaryReader.ReadUInt64">
- <summary>
- Reads an 8-byte unsigned integer from the current stream using the specified encoding
- and advances the position of the stream by eight bytes.
- </summary>
- <returns>
- An 8-byte unsigned integer read from this stream.
- </returns>
- <exception cref="T:System.ObjectDisposedException">The stream is closed. </exception>
- <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
- <exception cref="T:System.IO.EndOfStreamException">The end of the stream is reached. </exception>
- </member>
- <member name="M:NetTopologySuite.IO.BiEndianBinaryReader.ReadSingle">
- <summary>
- Reads a 4-byte floating point value from the current stream using the specified encoding
- and advances the current position of the stream by four bytes.
- </summary>
- <returns>
- A 4-byte floating point value read from the current stream.
- </returns>
- <exception cref="T:System.ObjectDisposedException">The stream is closed. </exception>
- <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
- <exception cref="T:System.IO.EndOfStreamException">The end of the stream is reached. </exception>
- </member>
- <member name="M:NetTopologySuite.IO.BiEndianBinaryReader.ReadDouble">
- <summary>
- Reads an 8-byte floating point value from the current stream using the specified encoding
- and advances the current position of the stream by eight bytes.
- </summary>
- <returns>
- An 8-byte floating point value read from the current stream.
- </returns>
- <exception cref="T:System.ObjectDisposedException">The stream is closed. </exception>
- <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
- <exception cref="T:System.IO.EndOfStreamException">The end of the stream is reached. </exception>
- </member>
- <member name="M:NetTopologySuite.IO.BiEndianBinaryReader.ReadString">
- <summary>
- Reads a string from the current stream.
- The string is prefixed with the length, encoded as an integer seven bits at a time.
- </summary>
- <returns>The string being read.</returns>
- <exception cref="T:System.ObjectDisposedException">The stream is closed. </exception>
- <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
- <exception cref="T:System.IO.EndOfStreamException">The end of the stream is reached. </exception>
- </member>
- <member name="M:NetTopologySuite.IO.BiEndianBinaryReader.ReadDecimal">
- <summary>
- Reads a decimal value from the current stream
- and advances the current position of the stream by sixteen bytes.
- </summary>
- <returns>
- A decimal value read from the current stream.
- </returns>
- <exception cref="T:System.ObjectDisposedException">The stream is closed. </exception>
- <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
- <exception cref="T:System.IO.EndOfStreamException">The end of the stream is reached. </exception>
- </member>
- <member name="T:NetTopologySuite.IO.ByteOrder">
- <summary>
- Byte order
- </summary>
- </member>
- <member name="F:NetTopologySuite.IO.ByteOrder.BigEndian">
- <summary>
- BigEndian
- </summary>
- </member>
- <member name="F:NetTopologySuite.IO.ByteOrder.LittleEndian">
- <summary>
- LittleEndian
- </summary>
- </member>
- <member name="T:NetTopologySuite.IO.GeometryType">
- <summary>
- Lightweight class that handles OGC Geometry type declaration
- </summary>
- </member>
- <member name="M:NetTopologySuite.IO.GeometryType.#ctor(System.UInt32)">
- <summary>
- Initializes this instance
- </summary>
- <param name="geometryType">The value describing the <see cref="T:NetTopologySuite.IO.GeometryType"/></param>
- </member>
- <member name="M:NetTopologySuite.IO.GeometryType.#ctor(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Ordinates)">
- <summary>
- Inititalizes this instance based on a geometry and an Ordinates flag.
- </summary>
- <param name="geometry">The geometry.</param>
- <param name="ordinates">The ordinates flag.</param>
- </member>
- <member name="M:NetTopologySuite.IO.GeometryType.#ctor(NetTopologySuite.Geometries.OgcGeometryType)">
- <summary>
- Inititalizes this instance based on an <see cref="T:NetTopologySuite.Geometries.OgcGeometryType"/>
- </summary>
- <param name="ogcGeometryType">The OGC geometry type</param>
- </member>
- <member name="M:NetTopologySuite.IO.GeometryType.#ctor(NetTopologySuite.Geometries.OgcGeometryType,System.Boolean)">
- <summary>
- Inititalizes this instance based on an <see cref="T:NetTopologySuite.Geometries.OgcGeometryType"/> and an SRID indicator
- </summary>
- <param name="ogcGeometryType">The OGC geometry type</param>
- <param name="hasSrid">Indicator if a SRID is supplied.</param>
- </member>
- <member name="M:NetTopologySuite.IO.GeometryType.#ctor(NetTopologySuite.Geometries.OgcGeometryType,NetTopologySuite.Geometries.Ordinates,System.Boolean)">
- <summary>
- Inititalizes this instance based on an <see cref="T:NetTopologySuite.Geometries.OgcGeometryType"/> and an SRID indicator
- </summary>
- <param name="ogcGeometryType">The OGC geometry type</param>
- <param name="ordinates">The ordinates flag.</param>
- <param name="hasSrid">Indicator if a SRID is supplied.</param>
- </member>
- <member name="P:NetTopologySuite.IO.GeometryType.BaseGeometryType">
- <summary>
- Gets or sets the base geometry type
- </summary>
- </member>
- <member name="P:NetTopologySuite.IO.GeometryType.WkbGeometryType">
- <summary>
- Gets the OGC Well-Known-Binary type code
- </summary>
- </member>
- <member name="P:NetTopologySuite.IO.GeometryType.EwkbWkbGeometryType">
- <summary>
- Gets the PostGIS Enhanced Well-Known-Binary type code
- </summary>
- </member>
- <member name="P:NetTopologySuite.IO.GeometryType.HasZ">
- <summary>
- Gets or sets whether z-ordinate values are stored along with the geometry.
- </summary>
- </member>
- <member name="P:NetTopologySuite.IO.GeometryType.HasM">
- <summary>
- Gets or sets whether m-ordinate values are stored along with the geometry.
- </summary>
- </member>
- <member name="P:NetTopologySuite.IO.GeometryType.HasSrid">
- <summary>
- Gets whether SRID value is stored along with the geometry.
- </summary>
- </member>
- <member name="P:NetTopologySuite.IO.GeometryType.HasWkbZ">
- <summary>
- Gets or sets whether z-ordinate values are stored along with the geometry.
- </summary>
- </member>
- <member name="P:NetTopologySuite.IO.GeometryType.HasWkbM">
- <summary>
- Gets or sets whether m-ordinate values are stored along with the geometry.
- </summary>
- </member>
- <member name="P:NetTopologySuite.IO.GeometryType.HasEwkbZ">
- <summary>
- Gets or sets whether z-ordinates are stored along with the geometry.
- <para>PostGis EWKB format.</para>
- </summary>
- </member>
- <member name="P:NetTopologySuite.IO.GeometryType.HasEwkbM">
- <summary>
- Gets or sets whether z-ordinates are stored along with the geometry.
- <para>PostGis EWKB format.</para>
- </summary>
- </member>
- <member name="P:NetTopologySuite.IO.GeometryType.HasEwkbSrid">
- <summary>
- Gets or sets whether z-ordinates are stored along with the geometry.
- <para>PostGis EWKB format.</para>
- </summary>
- </member>
- <member name="T:NetTopologySuite.IO.GML2.GMLReader">
- <summary>
- Reads a GML document and creates a representation of the features based on NetTopologySuite model.
- Uses GML 2.1.1 <c>Geometry.xsd</c> schema for base for features.
- </summary>
- </member>
- <member name="P:NetTopologySuite.IO.GML2.GMLReader.Factory">
- <summary>
- <see cref="T:NetTopologySuite.Geometries.Geometry"/> builder.
- </summary>
- </member>
- <member name="M:NetTopologySuite.IO.GML2.GMLReader.#ctor">
- <summary>
- Initialize reader with a standard <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>.
- </summary>
- </member>
- <member name="M:NetTopologySuite.IO.GML2.GMLReader.#ctor(NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
- Initialize reader with the given <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>.
- </summary>
- </member>
- <member name="M:NetTopologySuite.IO.GML2.GMLReader.Read(System.Xml.XmlDocument)">
- <summary>
- Read a GML document and returns relative <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
- </summary>
- <param name="document"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.IO.GML2.GMLReader.Read(System.Xml.Linq.XDocument)">
- <summary>
- Read a GML document and returns relative <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
- </summary>
- <param name="document"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.IO.GML2.GMLReader.ReadCoordinate(System.Xml.XmlReader)">
- <summary>
- Reads the coordinate.
- </summary>
- <param name="reader">The reader.</param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.IO.GML2.GMLReader.ReadCoordinates(System.String)">
- <summary>
- Extract a <see cref="T:NetTopologySuite.Geometries.Coordinate" /> from a x,y string value.
- </summary>
- <param name="value"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.IO.GML2.GMLReader.ReadPosAsCoordinate(System.String[])">
- <summary>
- Extract a <see cref="T:NetTopologySuite.Geometries.Coordinate" /> from a pos entity string value.
- </summary>
- <param name="value">An array of string ordinate values</param>
- <returns>A coordinate</returns>
- </member>
- <member name="M:NetTopologySuite.IO.GML2.GMLReader.ReadPosListAsCoordinates(System.Int32,System.String[])">
- <summary>
- Extract an enumeration of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s from a x-,y-[, z-]ordinate string values.
- </summary>
- <param name="numOrdinates">The number of ordinates</param>
- <param name="value">An array of string ordinate values</param>
- <returns>An enumeration of coordinates</returns>
- </member>
- <member name="M:NetTopologySuite.IO.GML2.GMLReader.ReadPosList(System.Xml.XmlReader,System.Int32,NetTopologySuite.Geometries.CoordinateSequenceFactory)">
- <summary>
- Extract a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence" /> from a series of x-, y-[, z-]ordinate string values.
- </summary>
- <param name="reader">A xml-reader</param>
- <param name="srsDimension">The number of ordinates to read per coordinate</param>
- <param name="csFactory">The factory to use in order to create the result</param>
- <returns>A coordinate sequence</returns>
- </member>
- <member name="T:NetTopologySuite.IO.GML2.GMLVersion">
- <summary>
- Identifies a version of the GML specification.
- </summary>
- </member>
- <member name="F:NetTopologySuite.IO.GML2.GMLVersion.Two">
- <summary>
- Version 2.1.1 (OGC 02-009).
- </summary>
- </member>
- <member name="F:NetTopologySuite.IO.GML2.GMLVersion.Three">
- <summary>
- Version 3.2.2 (OGC 07-036r1 / ISO 19136:2007).
- </summary>
- </member>
- <member name="T:NetTopologySuite.IO.GML2.GMLWriter">
- <summary>
- Writes the GML representation of the features of NetTopologySuite model.
- Uses GML 2.1.1 <c>Geometry.xsd</c> schema for base for features.
- <remarks>
- Thanks to <see href="http//www.codeplex.com/Wiki/View.aspx?ProjectName=MsSqlSpatial">rstuven</see> for improvements :)
- </remarks>
- </summary>
- </member>
- <member name="P:NetTopologySuite.IO.GML2.GMLWriter.NumberFormatter">
- <summary>
- Formatter for double values of coordinates
- </summary>
- </member>
- <member name="M:NetTopologySuite.IO.GML2.GMLWriter.#ctor">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.IO.GML2.GMLWriter"/> class.
- </summary>
- </member>
- <member name="M:NetTopologySuite.IO.GML2.GMLWriter.Write(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Returns an <c>XmlReader</c> with feature informations.
- Use <c>XmlDocument.Load(XmlReader)</c> for obtain a <c>XmlDocument</c> to work.
- </summary>
- <param name="geometry"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.IO.GML2.GMLWriter.Write(NetTopologySuite.Geometries.Geometry,System.IO.Stream)">
- <summary>
- Writes a GML feature into a generic <c>Stream</c>, such a <c>FileStream</c> or other streams.
- </summary>
- <param name="geometry"></param>
- <param name="stream"></param>
- </member>
- <member name="M:NetTopologySuite.IO.GML2.GMLWriter.Write(NetTopologySuite.Geometries.Coordinate,System.Xml.XmlWriter)">
- <summary>
-
- </summary>
- <param name="coordinate"></param>
- <param name="writer"></param>
- </member>
- <member name="M:NetTopologySuite.IO.GML2.GMLWriter.Write(NetTopologySuite.Geometries.Coordinate[],System.Xml.XmlWriter)">
- <summary>
-
- </summary>
- <param name="coordinates"></param>
- <param name="writer"></param>
- </member>
- <member name="M:NetTopologySuite.IO.GML2.GMLWriter.WriteCoordinates(NetTopologySuite.Geometries.Coordinate[],System.Xml.XmlWriter)">
- <summary>
-
- </summary>
- <param name="coordinates"></param>
- <param name="writer"></param>
- </member>
- <member name="M:NetTopologySuite.IO.GML2.GMLWriter.WriteCoordinates(NetTopologySuite.Geometries.CoordinateSequence,System.Xml.XmlWriter)">
- <summary>
-
- </summary>
- <param name="coordinates"></param>
- <param name="writer"></param>
- </member>
- <member name="M:NetTopologySuite.IO.GML2.GMLWriter.Write(NetTopologySuite.Geometries.Geometry,System.Xml.XmlWriter)">
- <summary>
-
- </summary>
- <param name="geometry"></param>
- <param name="writer"></param>
- </member>
- <member name="M:NetTopologySuite.IO.GML2.GMLWriter.Write(NetTopologySuite.Geometries.Point,System.Xml.XmlWriter)">
- <summary>
-
- </summary>
- <param name="point"></param>
- <param name="writer"></param>
- </member>
- <member name="M:NetTopologySuite.IO.GML2.GMLWriter.Write(NetTopologySuite.Geometries.LineString,System.Xml.XmlWriter)">
- <summary>
-
- </summary>
- <param name="lineString"></param>
- <param name="writer"></param>
- </member>
- <member name="M:NetTopologySuite.IO.GML2.GMLWriter.Write(NetTopologySuite.Geometries.LinearRing,System.Xml.XmlWriter)">
- <summary>
-
- </summary>
- <param name="linearRing"></param>
- <param name="writer"></param>
- </member>
- <member name="M:NetTopologySuite.IO.GML2.GMLWriter.Write(NetTopologySuite.Geometries.Polygon,System.Xml.XmlWriter)">
- <summary>
-
- </summary>
- <param name="polygon"></param>
- <param name="writer"></param>
- </member>
- <member name="M:NetTopologySuite.IO.GML2.GMLWriter.Write(NetTopologySuite.Geometries.MultiPoint,System.Xml.XmlWriter)">
- <summary>
-
- </summary>
- <param name="multiPoint"></param>
- <param name="writer"></param>
- </member>
- <member name="M:NetTopologySuite.IO.GML2.GMLWriter.Write(NetTopologySuite.Geometries.MultiLineString,System.Xml.XmlWriter)">
- <summary>
-
- </summary>
- <param name="multiLineString"></param>
- <param name="writer"></param>
- </member>
- <member name="M:NetTopologySuite.IO.GML2.GMLWriter.Write(NetTopologySuite.Geometries.MultiPolygon,System.Xml.XmlWriter)">
- <summary>
-
- </summary>
- <param name="multiPolygon"></param>
- <param name="writer"></param>
- </member>
- <member name="M:NetTopologySuite.IO.GML2.GMLWriter.Write(NetTopologySuite.Geometries.GeometryCollection,System.Xml.XmlWriter)">
- <summary>
-
- </summary>
- <param name="geometryCollection"></param>
- <param name="writer"></param>
- </member>
- <member name="M:NetTopologySuite.IO.GML2.GMLWriter.SetByteStreamLength(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Sets corrent length for Byte Stream.
- </summary>
- <param name="geometry"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.IO.GML2.GMLWriter.SetByteStreamLength(NetTopologySuite.Geometries.GeometryCollection)">
- <summary>
-
- </summary>
- <param name="geometryCollection"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.IO.GML2.GMLWriter.SetByteStreamLength(NetTopologySuite.Geometries.MultiPolygon)">
- <summary>
-
- </summary>
- <param name="multiPolygon"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.IO.GML2.GMLWriter.SetByteStreamLength(NetTopologySuite.Geometries.MultiLineString)">
- <summary>
-
- </summary>
- <param name="multiLineString"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.IO.GML2.GMLWriter.SetByteStreamLength(NetTopologySuite.Geometries.MultiPoint)">
- <summary>
-
- </summary>
- <param name="multiPoint"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.IO.GML2.GMLWriter.SetByteStreamLength(NetTopologySuite.Geometries.Polygon)">
- <summary>
-
- </summary>
- <param name="polygon"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.IO.GML2.GMLWriter.SetByteStreamLength(NetTopologySuite.Geometries.LineString)">
- <summary>
-
- </summary>
- <param name="lineString"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.IO.GML2.GMLWriter.SetByteStreamLength(NetTopologySuite.Geometries.Point)">
- <summary>
-
- </summary>
- <param name="point"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.IO.GML2.GMLWriter.GetEpsgCode(System.Int32)">
- <summary>
- Provides the EPSG code exposing the SRID of the geometry
- </summary>
- <param name="srid">The SRID of the geometry</param>
- <returns></returns>
- </member>
- <member name="T:NetTopologySuite.IO.GML3.GML3Writer">
- <summary>
- Writes the GML representation of the features of NetTopologySuite model.
- Uses GML 3.2.2 <c>gml.xsd</c> schema for base for features.
- </summary>
- </member>
- <member name="M:NetTopologySuite.IO.GML3.GML3Writer.#ctor">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.IO.GML3.GML3Writer"/> class.
- </summary>
- </member>
- <member name="T:NetTopologySuite.IO.KML.KMLReader">
- <summary>
- Constructs <see cref="T:NetTopologySuite.Geometries.Geometry"/> objects from the OGC KML representation.
- Works only with KML geometry elements and may also parse attributes within these elements
- </summary>
- </member>
- <member name="M:NetTopologySuite.IO.KML.KMLReader.#ctor">
- <summary>
- Creates a reader that creates objects using the default <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>.
- </summary>
- </member>
- <member name="M:NetTopologySuite.IO.KML.KMLReader.#ctor(NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
- Creates a reader that creates objects using the given <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>.
- </summary>
- <param name="geometryFactory">The factory used to create <c>Geometry</c>s.</param>
- </member>
- <member name="M:NetTopologySuite.IO.KML.KMLReader.#ctor(System.String[])">
- <summary>
- Creates a reader that creates objects using the default <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>.
- </summary>
- <param name="attributeNames">Names of attributes that should be parsed (i.e. extrude, altitudeMode, tesselate, etc).</param>
- </member>
- <member name="M:NetTopologySuite.IO.KML.KMLReader.#ctor(NetTopologySuite.Geometries.GeometryFactory,System.String[])">
- <summary>
- Creates a reader that creates objects using the given <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>.
- </summary>
- <param name="geometryFactory">The factory used to create <c>Geometry</c>s.</param>
- <param name="attributeNames">Names of attributes that should be parsed (i.e. extrude, altitudeMode, tesselate, etc).</param>
- </member>
- <member name="M:NetTopologySuite.IO.KML.KMLReader.Read(System.String)">
- <summary>
- Reads a KML representation of a <see cref="T:NetTopologySuite.Geometries.Geometry"/> from a <see cref="T:System.String"/>.
- <para/>
- If any attribute names were specified during {@link KMLReader} construction,
- they will be stored as <see cref="T:System.Collections.Generic.IDictionary`2"/> in <see cref="P:NetTopologySuite.Geometries.Geometry.UserData"/>.
- </summary>
- <param name="kmlGeometrystring">The string that specifies kml representation of geometry.</param>
- <returns>A <c>Geometry</c></returns>
- <exception cref="T:NetTopologySuite.IO.ParseException">Thrown if a parsing problem occurs.</exception>
- </member>
- <member name="M:NetTopologySuite.IO.KML.KMLReader.Read(System.IO.TextReader)">
- <summary>
- Reads a KML representation of a <see cref="T:NetTopologySuite.Geometries.Geometry"/> from a <see cref="T:System.IO.TextReader"/>.
- <para/>
- If any attribute names were specified during {@link KMLReader} construction,
- they will be stored as <see cref="T:System.Collections.Generic.IDictionary`2"/> in <see cref="P:NetTopologySuite.Geometries.Geometry.UserData"/>.
- </summary>
- <param name="kmlStreamReader">The text stream reader.</param>
- <returns>A <c>Geometry</c></returns>
- <exception cref="T:NetTopologySuite.IO.ParseException">Thrown if a parsing problem occurs.</exception>
- </member>
- <member name="T:NetTopologySuite.IO.KML.KMLWriter">
- <summary>
- Writes a formatted string containing the KML representation
- of a JTS <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
- The output is KML fragments which can be substituted
- wherever the KML <see cref="T:NetTopologySuite.Geometries.Geometry"/> abstract
- element can be used.
- </summary>
- <remarks>
- Output elements are indented to provide a
- nicely-formatted representation.
- An output line prefix and maximum
- number of coordinates per line can be specified.
- </remarks>
- <remarks>
- The Z ordinate value output can be forced to be a specific value.
- The <see cref="P:NetTopologySuite.IO.KML.KMLWriter.Extrude"/> and <see cref="P:NetTopologySuite.IO.KML.KMLWriter.AltitudeMode"/> modes can be set.
- If set, the corresponding sub-elements will be output.
- </remarks>
- </member>
- <member name="F:NetTopologySuite.IO.KML.KMLWriter.AltitudeModeClampToGround">
- <summary>
- The KML standard value <c>clampToGround</c> for use in <see cref="P:NetTopologySuite.IO.KML.KMLWriter.AltitudeMode"/>.
- </summary>
- </member>
- <member name="F:NetTopologySuite.IO.KML.KMLWriter.AltitudeModeRelativeToGround">
- <summary>
- The KML standard value <c>relativeToGround</c> for use in <see cref="P:NetTopologySuite.IO.KML.KMLWriter.AltitudeMode"/>.
- </summary>
- </member>
- <member name="F:NetTopologySuite.IO.KML.KMLWriter.AltitudeModeAbsolute">
- <summary>
- The KML standard value <c>absolute</c> for use in <see cref="P:NetTopologySuite.IO.KML.KMLWriter.AltitudeMode"/>.
- </summary>
- </member>
- <member name="M:NetTopologySuite.IO.KML.KMLWriter.WriteGeometry(NetTopologySuite.Geometries.Geometry,System.Double)">
- <summary>
- Writes a Geometry as KML to a string, using
- a specified Z value.
- </summary>
- <param name="geometry">the geometry to write</param>
- <param name="z">the Z value to use</param>
- <returns>a string containing the KML geometry representation</returns>
- </member>
- <member name="M:NetTopologySuite.IO.KML.KMLWriter.WriteGeometry(NetTopologySuite.Geometries.Geometry,System.Double,System.Int32,System.Boolean,System.String)">
- <summary>
- Writes a Geometry as KML to a string, using
- a specified Z value, precision, extrude flag,
- and altitude mode code.
- </summary>
- <param name="geometry">the geometry to write</param>
- <param name="z">the Z value to use</param>
- <param name="precision">the maximum number of decimal places to write</param>
- <param name="extrude">the extrude flag to write</param>
- <param name="altitudeMode">the altitude model code to write</param>
- <returns>a string containing the KML geometry representation</returns>
- </member>
- <member name="P:NetTopologySuite.IO.KML.KMLWriter.LinePrefix">
- <summary>
- A tag string which is prefixed to every emitted text line.
- This can be used to indent the geometry text in a containing document.
- </summary>
- </member>
- <member name="P:NetTopologySuite.IO.KML.KMLWriter.MaxCoordinatesPerLine">
- <summary>
- The maximum number of coordinates to output per line.
- </summary>
- </member>
- <member name="P:NetTopologySuite.IO.KML.KMLWriter.Z">
- <summary>
- The Z value to be output for all coordinates.
- This overrides any Z value present in the Geometry coordinates.
- </summary>
- </member>
- <member name="P:NetTopologySuite.IO.KML.KMLWriter.Extrude">
- <summary>
- The flag to be output in the <c>extrude</c> element.
- </summary>
- </member>
- <member name="P:NetTopologySuite.IO.KML.KMLWriter.Tesselate">
- <summary>
- The flag to be output in the <c>tesselate</c> element.
- </summary>
- </member>
- <member name="P:NetTopologySuite.IO.KML.KMLWriter.AltitudeMode">
- <summary>
- The value output in the <c>altitudeMode</c> element.
- </summary>
- </member>
- <member name="P:NetTopologySuite.IO.KML.KMLWriter.Precision">
- <summary>
- The maximum number of decimal places to output in ordinate values.
- Useful for limiting output size.
- </summary>
- <remarks>
- negative values set the precision to <see cref="F:NetTopologySuite.Geometries.PrecisionModels.Floating"/>,
- like standard behavior.
- </remarks>
- </member>
- <member name="M:NetTopologySuite.IO.KML.KMLWriter.Write(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Writes a <see cref="T:NetTopologySuite.Geometries.Geometry"/> in KML format as a string.
- </summary>
- <param name="geom">the geometry to write</param>
- <returns>a string containing the KML geometry representation</returns>
- </member>
- <member name="M:NetTopologySuite.IO.KML.KMLWriter.Write(NetTopologySuite.Geometries.Geometry,System.IO.TextWriter)">
- <summary>
- Writes the KML representation of a <see cref="T:NetTopologySuite.Geometries.Geometry"/> to a <see cref="T:System.IO.TextWriter"/>.
- </summary>
- <param name="geom">the geometry to write</param>
- <param name="writer">the writer to write to</param>
- </member>
- <member name="M:NetTopologySuite.IO.KML.KMLWriter.Write(NetTopologySuite.Geometries.Geometry,System.Text.StringBuilder)">
- <summary>
- Appends the KML representation of a <see cref="T:NetTopologySuite.Geometries.Geometry"/> to a <see cref="T:System.Text.StringBuilder"/>.
- </summary>
- <param name="geom">the geometry to write</param>
- <param name="sb">the buffer to write into</param>
- </member>
- <member name="M:NetTopologySuite.IO.KML.KMLWriter.Write(NetTopologySuite.Geometries.Coordinate[],System.Int32,System.Text.StringBuilder)">
- <summary>
- Takes a list of coordinates and converts it to KML.
- </summary>
- <remarks>
- 2D and 3D aware. Terminates the coordinate output with a newline.
- </remarks>
- </member>
- <member name="T:NetTopologySuite.IO.OrdinateFormat">
- <summary>
- Formats numeric values for ordinates
- in a consistent, accurate way.
- <para/>
- The format has the following characteristics:
- <list type="Bullet">
- <item>It is consistent in all locales (in particular, the decimal separator is always a period)</item>
- <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>
- <item><description>The maximum number of decimal places reflects the available precision</description></item>
- <item><description>NaN values are represented as "NaN"</description></item>
- <item><description>Inf values are represented as "Inf" or "-Inf"</description></item>
- </list>
- </summary>
- <author>mdavis</author>
- </member>
- <member name="F:NetTopologySuite.IO.OrdinateFormat.REP_POS_INF">
- <summary>
- The output representation of <see cref="F:System.Double.PositiveInfinity"/>
- </summary>
- </member>
- <member name="F:NetTopologySuite.IO.OrdinateFormat.REP_NEG_INF">
- <summary>
- The output representation of <see cref="F:System.Double.NegativeInfinity"/>
- </summary>
- </member>
- <member name="F:NetTopologySuite.IO.OrdinateFormat.REP_NAN">
- <summary>
- The output representation of <see cref="F:System.Double.NaN"/>
- </summary>
- </member>
- <member name="F:NetTopologySuite.IO.OrdinateFormat.MAX_FRACTION_DIGITS">
- <summary>
- The maximum number of fraction digits to support output of reasonable ordinate values.
- <para/>
- The default is chosen to allow representing the smallest possible IEEE-754 double-precision value,
- although this is not expected to occur (and is not supported by other areas of the JTS/NTS code).
- </summary>
- </member>
- <member name="F:NetTopologySuite.IO.OrdinateFormat.Default">
- <summary>
- The default formatter using the maximum number of digits in the fraction portion of a number.
- </summary>
- </member>
- <member name="M:NetTopologySuite.IO.OrdinateFormat.#ctor">
- <summary>
- Creates an OrdinateFormat using the default maximum number of fraction digits.
- </summary>
- </member>
- <member name="M:NetTopologySuite.IO.OrdinateFormat.#ctor(System.Int32)">
- <summary>
- Creates an OrdinateFormat using the given maximum number of fraction digits.
- </summary>
- <param name="maximumFractionDigits">The maximum number of fraction digits to output</param>
- </member>
- <member name="M:NetTopologySuite.IO.OrdinateFormat.Format(System.Double)">
- <summary>
- Returns a string representation of the given ordinate numeric value.
- </summary>
- <param name="ord">The ordinate value</param>
- <returns>The formatted number string</returns>
- </member>
- <member name="T:NetTopologySuite.IO.ParseException">
- <summary>
- Thrown by a <c>WKTReader</c> when a parsing problem occurs.
- </summary>
- </member>
- <member name="M:NetTopologySuite.IO.ParseException.#ctor(System.String)">
- <summary>
- Creates a <c>ParseException</c> with the given detail message.
- </summary>
- <param name="message">A description of this <c>ParseException</c>.</param>
- </member>
- <member name="M:NetTopologySuite.IO.ParseException.#ctor(System.Exception)">
- <summary>
- Creates a <c>ParseException</c> with <c>e</c>s detail message.
- </summary>
- <param name="e">An exception that occurred while a <c>WKTReader</c> was
- parsing a Well-known Text string.</param>
- </member>
- <member name="M:NetTopologySuite.IO.ParseException.#ctor(System.String,System.Exception)">
- <summary>
- Creates a <c>ParseException</c> with <paramref name="innerException"/>s detail message
- </summary>
- <param name="message"></param>
- <param name="innerException">The inner exception</param>
- </member>
- <member name="T:NetTopologySuite.IO.WKBGeometryTypes">
- <summary>
- WKB Geometry Types
- </summary>
- </member>
- <member name="F:NetTopologySuite.IO.WKBGeometryTypes.WKBPoint">
- <summary>
- Point.
- </summary>
- </member>
- <member name="F:NetTopologySuite.IO.WKBGeometryTypes.WKBLineString">
- <summary>
- LineString.
- </summary>
- </member>
- <member name="F:NetTopologySuite.IO.WKBGeometryTypes.WKBPolygon">
- <summary>
- Polygon.
- </summary>
- </member>
- <member name="F:NetTopologySuite.IO.WKBGeometryTypes.WKBMultiPoint">
- <summary>
- MultiPoint.
- </summary>
- </member>
- <member name="F:NetTopologySuite.IO.WKBGeometryTypes.WKBMultiLineString">
- <summary>
- MultiLineString.
- </summary>
- </member>
- <member name="F:NetTopologySuite.IO.WKBGeometryTypes.WKBMultiPolygon">
- <summary>
- MultiPolygon.
- </summary>
- </member>
- <member name="F:NetTopologySuite.IO.WKBGeometryTypes.WKBGeometryCollection">
- <summary>
- GeometryCollection.
- </summary>
- </member>
- <member name="F:NetTopologySuite.IO.WKBGeometryTypes.WKBPointZ">
- <summary>
- Point with Z coordinate.
- </summary>
- </member>
- <member name="F:NetTopologySuite.IO.WKBGeometryTypes.WKBLineStringZ">
- <summary>
- LineString with Z coordinate.
- </summary>
- </member>
- <member name="F:NetTopologySuite.IO.WKBGeometryTypes.WKBPolygonZ">
- <summary>
- Polygon with Z coordinate.
- </summary>
- </member>
- <member name="F:NetTopologySuite.IO.WKBGeometryTypes.WKBMultiPointZ">
- <summary>
- MultiPoint with Z coordinate.
- </summary>
- </member>
- <member name="F:NetTopologySuite.IO.WKBGeometryTypes.WKBMultiLineStringZ">
- <summary>
- MultiLineString with Z coordinate.
- </summary>
- </member>
- <member name="F:NetTopologySuite.IO.WKBGeometryTypes.WKBMultiPolygonZ">
- <summary>
- MultiPolygon with Z coordinate.
- </summary>
- </member>
- <member name="F:NetTopologySuite.IO.WKBGeometryTypes.WKBGeometryCollectionZ">
- <summary>
- GeometryCollection with Z coordinate.
- </summary>
- </member>
- <member name="F:NetTopologySuite.IO.WKBGeometryTypes.WKBPointM">
- <summary>
- Point with M ordinate value.
- </summary>
- </member>
- <member name="F:NetTopologySuite.IO.WKBGeometryTypes.WKBLineStringM">
- <summary>
- LineString with M ordinate value.
- </summary>
- </member>
- <member name="F:NetTopologySuite.IO.WKBGeometryTypes.WKBPolygonM">
- <summary>
- Polygon with M ordinate value.
- </summary>
- </member>
- <member name="F:NetTopologySuite.IO.WKBGeometryTypes.WKBMultiPointM">
- <summary>
- MultiPoint with M ordinate value.
- </summary>
- </member>
- <member name="F:NetTopologySuite.IO.WKBGeometryTypes.WKBMultiLineStringM">
- <summary>
- MultiLineString with M ordinate value.
- </summary>
- </member>
- <member name="F:NetTopologySuite.IO.WKBGeometryTypes.WKBMultiPolygonM">
- <summary>
- MultiPolygon with M ordinate value.
- </summary>
- </member>
- <member name="F:NetTopologySuite.IO.WKBGeometryTypes.WKBGeometryCollectionM">
- <summary>
- GeometryCollection with M ordinate value.
- </summary>
- </member>
- <member name="F:NetTopologySuite.IO.WKBGeometryTypes.WKBPointZM">
- <summary>
- Point with Z coordinate and M ordinate value.
- </summary>
- </member>
- <member name="F:NetTopologySuite.IO.WKBGeometryTypes.WKBLineStringZM">
- <summary>
- LineString with Z coordinate and M ordinate value.
- </summary>
- </member>
- <member name="F:NetTopologySuite.IO.WKBGeometryTypes.WKBPolygonZM">
- <summary>
- Polygon with Z coordinate and M ordinate value.
- </summary>
- </member>
- <member name="F:NetTopologySuite.IO.WKBGeometryTypes.WKBMultiPointZM">
- <summary>
- MultiPoint with Z coordinate and M ordinate value.
- </summary>
- </member>
- <member name="F:NetTopologySuite.IO.WKBGeometryTypes.WKBMultiLineStringZM">
- <summary>
- MultiLineString with Z coordinate and M ordinate value.
- </summary>
- </member>
- <member name="F:NetTopologySuite.IO.WKBGeometryTypes.WKBMultiPolygonZM">
- <summary>
- MultiPolygon with Z coordinate and M ordinate value.
- </summary>
- </member>
- <member name="F:NetTopologySuite.IO.WKBGeometryTypes.WKBGeometryCollectionZM">
- <summary>
- GeometryCollection with Z coordinate and M ordinate value.
- </summary>
- </member>
- <member name="T:NetTopologySuite.IO.WKBHexFileReader">
- <summary>
- Reads a sequence of {@link Geometry}s in WKBHex format
- from a text file.
- Each WKBHex geometry must be on a single line
- The geometries in the file may be separated by any amount
- of whitespace and newlines.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.IO.WKBHexFileReader.#ctor(NetTopologySuite.IO.WKBReader)">
- <summary>
- Creates a new <see cref="T:NetTopologySuite.IO.WKBHexFileReader"/> given the
- <see cref="T:NetTopologySuite.IO.WKBReader"/> to use to parse the geometries.
- </summary>
- <param name="wkbReader">The geometry reader to use</param>
- </member>
- <member name="P:NetTopologySuite.IO.WKBHexFileReader.Limit">
- <summary>
- Gets or sets a value indicating the maximum number of geometries to read
- </summary>
- </member>
- <member name="P:NetTopologySuite.IO.WKBHexFileReader.Offset">
- <summary>
- Gets or sets the number of geometries to skip before storing.
- </summary>
- </member>
- <member name="M:NetTopologySuite.IO.WKBHexFileReader.Read(System.String)">
- <summary>
- Reads a sequence of geometries.<br/>
- If an <see cref="P:NetTopologySuite.IO.WKBHexFileReader.Offset"/> is specified, geometries read up to the offset count are skipped.
- If a <see cref="P:NetTopologySuite.IO.WKBHexFileReader.Limit"/> is specified, no more than <see cref="P:NetTopologySuite.IO.WKBHexFileReader.Limit"/> geometries are read.
- </summary>
- <param name="file">The path to the file</param>
- <exception cref="T:System.ArgumentNullException">Thrown if no filename was specified</exception>
- <exception cref="T:System.IO.FileNotFoundException">Thrown if the filename specified does not exist</exception>
- <exception cref="T:System.IO.IOException">Thrown if an I/O exception was encountered</exception>
- <exception cref="T:NetTopologySuite.IO.ParseException">Thrown if an error occurred reading a geometry</exception>
- </member>
- <member name="M:NetTopologySuite.IO.WKBHexFileReader.Read(System.IO.Stream)">
- <summary>
- Reads a sequence of geometries.<br/>
- If an <see cref="P:NetTopologySuite.IO.WKBHexFileReader.Offset"/> is specified, geometries read up to the offset count are skipped.
- If a <see cref="P:NetTopologySuite.IO.WKBHexFileReader.Limit"/> is specified, no more than <see cref="P:NetTopologySuite.IO.WKBHexFileReader.Limit"/> geometries are read.
- </summary>
- <param name="stream">The path to the file</param>
- <exception cref="T:System.ArgumentNullException">Thrown if no stream was passed</exception>
- <exception cref="T:System.ArgumentException">Thrown if passed stream is not readable or seekable</exception>
- <exception cref="T:System.IO.IOException">Thrown if an I/O exception was encountered</exception>
- <exception cref="T:NetTopologySuite.IO.ParseException">Thrown if an error occured reading a geometry</exception>
- </member>
- <member name="M:NetTopologySuite.IO.WKBHexFileReader.Read(System.IO.StreamReader)">
- <summary>
- Reads a sequence of geometries.<br/>
- If an <see cref="P:NetTopologySuite.IO.WKBHexFileReader.Offset"/> is specified, geometries read up to the offset count are skipped.
- If a <see cref="P:NetTopologySuite.IO.WKBHexFileReader.Limit"/> is specified, no more than <see cref="P:NetTopologySuite.IO.WKBHexFileReader.Limit"/> geometries are read.
- </summary>
- <param name="streamReader">The stream reader to use.</param>
- <exception cref="T:System.IO.IOException">Thrown if an I/O exception was encountered</exception>
- <exception cref="T:NetTopologySuite.IO.ParseException">Thrown if an error occured reading a geometry</exception>
- </member>
- <member name="M:NetTopologySuite.IO.WKBHexFileReader.IsAtLimit(System.Collections.Generic.List{NetTopologySuite.Geometries.Geometry})">
- <summary>
- Tests if reader has reached limit
- </summary>
- <param name="geoms">A collection of already read geometries</param>
- <returns><c>true</c> if <see cref="P:NetTopologySuite.IO.WKBHexFileReader.Limit"/> number of geometries has been read.</returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKBHexFileReader.IsAtEndOfFile(System.IO.StreamReader)">
- <summary>
- Tests if reader is at EOF.
- </summary>
- </member>
- <member name="T:NetTopologySuite.IO.WKBReader">
- <summary>
- Converts a Well-Known Binary byte data to a <c>Geometry</c>.
- </summary>
- <remarks>
- This class reads the format describe in {@link WKBWriter}.
- It partially handles the<b>Extended WKB</b> format used by PostGIS,
- by parsing and storing optional SRID values.
- If a SRID is not specified in an element geometry, it is inherited
- from the parent's SRID.
- The default SRID value depends on <see cref="P:NetTopologySuite.NtsGeometryServices.DefaultSRID"/>.
- <para/>
- Although not defined in the WKB spec, empty points
- are handled if they are represented as a Point with <c>NaN</c> X and Y ordinates.
- <para/>
- The reader repairs structurally-invalid input
- (specifically, LineStrings and LinearRings which contain
- too few points have vertices added,
- and non-closed rings are closed).
- <para/>
- The reader handles most errors caused by malformed or malicious WKB data.
- It checks for obviously excessive values of the fields
- <c>numElems</c>, <c>numRings</c>, and <c>numCoords</c>.
- It also checks that the reader does not read beyond the end of the data supplied.
- A <see cref="T:NetTopologySuite.IO.ParseException"/> is thrown if this situation is detected.
- </remarks>
- </member>
- <member name="M:NetTopologySuite.IO.WKBReader.HexToBytes(System.String)">
- <summary>
- Converts a hexadecimal string to a byte array.
- The hexadecimal digit symbols are case-insensitive.
- </summary>
- <param name="hex">A string containing hex digits</param>
- <returns>An array of bytes with the value of the hex string</returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKBReader.#ctor">
- <summary>
- Initialize reader with a standard <see cref="T:NetTopologySuite.NtsGeometryServices"/>.
- </summary>
- </member>
- <member name="M:NetTopologySuite.IO.WKBReader.#ctor(NetTopologySuite.NtsGeometryServices)">
- <summary>
- Creates an instance of this class using the provided <c>NtsGeometryServices</c>
- </summary>
- <param name="services"></param>
- </member>
- <member name="M:NetTopologySuite.IO.WKBReader.Read(System.Byte[])">
- <summary>
- Reads a <see cref="T:NetTopologySuite.Geometries.Geometry"/> in binary WKB format from an array of <see cref="T:System.Byte"/>s.
- </summary>
- <param name="data">The byte array to read from</param>
- <returns>The geometry read</returns>
- <exception cref="T:NetTopologySuite.IO.ParseException"> if the WKB data is ill-formed.</exception>
- </member>
- <member name="M:NetTopologySuite.IO.WKBReader.Read(System.IO.Stream)">
- <summary>
- Reads a <see cref="T:NetTopologySuite.Geometries.Geometry"/> in binary WKB format from an <see cref="T:System.IO.Stream"/>.
- </summary>
- <param name="stream">The stream to read from</param>
- <returns>The geometry read</returns>
- <exception cref="T:NetTopologySuite.IO.ParseException"> if the WKB data is ill-formed.</exception>
- </member>
- <member name="T:NetTopologySuite.IO.WKBReader.CoordinateSystem">
- <summary>
- WKB Coordinate Systems
- </summary>
- </member>
- <member name="F:NetTopologySuite.IO.WKBReader.CoordinateSystem.XY">
- <summary>
- 2D coordinate system
- </summary>
- </member>
- <member name="F:NetTopologySuite.IO.WKBReader.CoordinateSystem.XYZ">
- <summary>
- 3D coordinate system
- </summary>
- </member>
- <member name="F:NetTopologySuite.IO.WKBReader.CoordinateSystem.XYM">
- <summary>
- 2D coordinate system with additional measure value
- </summary>
- </member>
- <member name="F:NetTopologySuite.IO.WKBReader.CoordinateSystem.XYZM">
- <summary>
- 3D coordinate system with additional measure value
- </summary>
- </member>
- <member name="M:NetTopologySuite.IO.WKBReader.Read(System.IO.BinaryReader)">
- <summary>
-
- </summary>
- <param name="reader"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKBReader.ReadByteOrder(System.IO.BinaryReader)">
- <summary>
-
- </summary>
- <param name="reader"></param>
- </member>
- <member name="M:NetTopologySuite.IO.WKBReader.ReadCoordinateSequence(System.IO.BinaryReader,System.Int32,NetTopologySuite.IO.WKBReader.CoordinateSystem)">
- <summary>
- Function to read a coordinate sequence.
- </summary>
- <param name="reader">The reader</param>
- <param name="size">The number of ordinates</param>
- <param name="cs">The coordinate system</param>
- <returns>The read coordinate sequence.</returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKBReader.ReadCoordinateSequenceRing(System.IO.BinaryReader,System.Int32,NetTopologySuite.IO.WKBReader.CoordinateSystem)">
- <summary>
- Function to read a coordinate sequence that is supposed to form a ring.
- </summary>
- <param name="reader">The reader</param>
- <param name="size">The number of ordinates</param>
- <param name="cs">The coordinate system</param>
- <returns>The read coordinate sequence.</returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKBReader.ReadCoordinateSequenceLineString(System.IO.BinaryReader,System.Int32,NetTopologySuite.IO.WKBReader.CoordinateSystem)">
- <summary>
- Function to read a coordinate sequence that is supposed to serve a line string.
- </summary>
- <param name="reader">The reader</param>
- <param name="size">The number of ordinates</param>
- <param name="cs">The coordinate system</param>
- <returns>The read coordinate sequence.</returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKBReader.ToOrdinates(NetTopologySuite.IO.WKBReader.CoordinateSystem)">
- <summary>
- Function to convert from <see cref="T:NetTopologySuite.IO.WKBReader.CoordinateSystem"/> to <see cref="T:NetTopologySuite.Geometries.Ordinates"/>
- </summary>
- <param name="cs">The coordinate system</param>
- <returns>The corresponding <see cref="T:NetTopologySuite.Geometries.Ordinates"/></returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKBReader.ReadPoint(System.IO.BinaryReader,NetTopologySuite.IO.WKBReader.CoordinateSystem,System.Int32)">
- <summary>
- Reads a <see cref="T:NetTopologySuite.Geometries.Point"/> geometry.
- </summary>
- <param name="reader">The reader</param>
- <param name="cs">The coordinate system</param>
- <param name="srid">The spatial reference id for the geometry.</param>
- <returns>A <see cref="T:NetTopologySuite.Geometries.Point"/> geometry</returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKBReader.ReadLineString(System.IO.BinaryReader,NetTopologySuite.IO.WKBReader.CoordinateSystem,System.Int32)">
- <summary>
- Reads a <see cref="T:NetTopologySuite.Geometries.LineString"/> geometry.
- </summary>
- <param name="reader">The reader</param>
- <param name="cs">The coordinate system</param>
- <param name="srid">The spatial reference id for the geometry.</param>
- <returns>A <see cref="T:NetTopologySuite.Geometries.LineString"/> geometry</returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKBReader.ReadLinearRing(System.IO.BinaryReader,NetTopologySuite.IO.WKBReader.CoordinateSystem,System.Int32)">
- <summary>
- Reads a <see cref="T:NetTopologySuite.Geometries.LinearRing"/> geometry.
- </summary>
- <param name="reader">The reader</param>
- <param name="cs">The coordinate system</param>
- <param name="srid">The spatial reference id for the geometry.</param>
- <returns>A <see cref="T:NetTopologySuite.Geometries.LinearRing"/> geometry</returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKBReader.ReadPolygon(System.IO.BinaryReader,NetTopologySuite.IO.WKBReader.CoordinateSystem,System.Int32)">
- <summary>
- Reads a <see cref="T:NetTopologySuite.Geometries.Polygon"/> geometry.
- </summary>
- <param name="reader">The reader</param>
- <param name="cs">The coordinate system</param>
- <param name="srid">The spatial reference id for the geometry.</param>
- <returns>A <see cref="T:NetTopologySuite.Geometries.Polygon"/> geometry</returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKBReader.ReadMultiPoint(System.IO.BinaryReader,NetTopologySuite.IO.WKBReader.CoordinateSystem,System.Int32)">
- <summary>
- Reads a <see cref="T:NetTopologySuite.Geometries.MultiPoint"/> geometry.
- </summary>
- <param name="reader">The reader</param>
- <param name="cs">The coordinate system</param>
- <param name="srid">The spatial reference id for the geometry.</param>
- <returns>A <see cref="T:NetTopologySuite.Geometries.MultiPoint"/> geometry</returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKBReader.ReadMultiLineString(System.IO.BinaryReader,NetTopologySuite.IO.WKBReader.CoordinateSystem,System.Int32)">
- <summary>
- Reads a <see cref="T:NetTopologySuite.Geometries.MultiLineString"/> geometry.
- </summary>
- <param name="reader">The reader</param>
- <param name="cs">The coordinate system</param>
- <param name="srid">The spatial reference id for the geometry.</param>
- <returns>A <see cref="T:NetTopologySuite.Geometries.MultiLineString"/> geometry</returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKBReader.ReadMultiPolygon(System.IO.BinaryReader,NetTopologySuite.IO.WKBReader.CoordinateSystem,System.Int32)">
- <summary>
- Reads a <see cref="T:NetTopologySuite.Geometries.MultiPolygon"/> geometry.
- </summary>
- <param name="reader">The reader</param>
- <param name="cs">The coordinate system</param>
- <param name="srid">The spatial reference id for the geometry.</param>
- <returns>A <see cref="T:NetTopologySuite.Geometries.MultiPolygon"/> geometry</returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKBReader.ReadGeometryCollection(System.IO.BinaryReader,NetTopologySuite.IO.WKBReader.CoordinateSystem,System.Int32)">
- <summary>
- Reads a <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/> geometry.
- </summary>
- <param name="reader">The reader</param>
- <param name="cs">The coordinate system</param>
- <param name="srid">The spatial reference id for the geometry.</param>
- <returns>A <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/> geometry</returns>
- </member>
- <member name="P:NetTopologySuite.IO.WKBReader.HandleSRID">
- <summary>
- Gets or sets a value indicating if a possibly encoded SRID value should be handled.
- </summary>
- </member>
- <member name="P:NetTopologySuite.IO.WKBReader.AllowedOrdinates">
- <summary>
- Gets a value indicating which ordinates can be handled.
- </summary>
- </member>
- <member name="P:NetTopologySuite.IO.WKBReader.HandleOrdinates">
- <summary>
- Gets a value indicating which ordinates should be handled.
- </summary>
- </member>
- <member name="P:NetTopologySuite.IO.WKBReader.IsStrict">
- <summary>
- Gets or sets a value indicating if the reader should attempt to repair malformed input.
- </summary>
- <remarks>
- <i>Malformed</i> in this case means the ring has too few points (4),
- or is not closed.
- </remarks>
- </member>
- <member name="P:NetTopologySuite.IO.WKBReader.RepairRings">
- <summary>
- Gets or sets whether invalid linear rings should be fixed
- </summary>
- </member>
- <member name="M:NetTopologySuite.IO.WKBReader.HandleOrdinate(NetTopologySuite.Geometries.Ordinate)">
- <summary>
- Function to determine whether an ordinate should be handled or not.
- </summary>
- <param name="ordinate"></param>
- <returns></returns>
- </member>
- <member name="T:NetTopologySuite.IO.WKBWriter">
- <summary>
- Writes a Well-Known Binary byte data representation of a <c>Geometry</c>.
- </summary>
- <remarks>
- There are a few cases which are not specified in the standard.
- The implementation uses a representation which is compatible with
- other common spatial systems (notably, PostGIS).
- <list type="bullet">
- <item><term><see cref="T:NetTopologySuite.Geometries.LinearRing"/>s</term><description>are written as <see cref="T:NetTopologySuite.Geometries.LineString"/>s.</description></item>
- <item><term>Empty geometries are output as follows</term><description>
- <list type="bullet">
- <item><term><c>Point</c></term><description>A <c>WKBPoint</c> with <c>double.NaN</c> ordinate values</description></item>
- <item><term><c>LineString</c></term><description>A <c>WKBLineString</c> with zero points</description></item>
- <item><term><c>Polygon</c></term><description>currently output as a <c>WKBPolygon</c> with one <c>LinearRing</c> with zero points.
- <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>
- <item><term>Multi geometries</term><description>A <c>WKBMulti</c> with zero elements</description></item>
- <item><term><c>GeometryCollection</c></term><description>A <c>WKBGeometryCollection</c> with zero elements</description></item>
- </list>
- </description></item></list>
- <para/>
- This implementation supports the <b>Extended WKB</b> standard.
- Extended WKB allows writing 3-dimensional coordinates
- and the geometry SRID value.
- The presence of 3D coordinates is indicated
- by setting the high bit of the <tt>wkbType</tt> word.
- The presence of a SRID is indicated
- by setting the third bit of the <tt>wkbType</tt> word.
- EWKB format is upward-compatible with the original SFS WKB format.
- <para/>
- SRID output is optimized, if specified.
- The top-level geometry has the SRID included. Child geometries
- have it included if their value differs from its parent.
- <para/>
- This class supports reuse of a single instance to read multiple
- geometries. This class is not thread - safe; each thread should create its own
- instance.
- </remarks>
- </member>
- <member name="M:NetTopologySuite.IO.WKBWriter.ToHex(System.Byte[])">
- <summary>Converts a byte array to a hexadecimal string.</summary>
- <param name="bytes">A byte array</param>
- </member>
- <member name="M:NetTopologySuite.IO.WKBWriter.WriteHeader(System.IO.BinaryWriter,NetTopologySuite.Geometries.Geometry,System.Boolean)">
- <summary>
- Writes the WKB Header for the geometry
- </summary>
- <param name="writer">The writer</param>
- <param name="geom">The geometry</param>
- <param name="includeSRID">
- A flag indicting if SRID value is of possible interest.
- The value is <c>&&</c>-combineed with <c>HandleSRID</c>.
- </param>
- </member>
- <member name="P:NetTopologySuite.IO.WKBWriter.EncodingType">
- <summary>
- Gets or sets the binary encoding type
- </summary>
- </member>
- <member name="P:NetTopologySuite.IO.WKBWriter.InitCount">
- <summary>
- Standard byte size for each complex point.
- Each complex point (LineString, Polygon, ...) contains:
- 1 byte for ByteOrder and
- 4 bytes for WKBType.
- 4 bytes for SRID value
- </summary>
- </member>
- <member name="M:NetTopologySuite.IO.WKBWriter.GetHeaderSize(System.Boolean)">
- <summary>
- Calculates the number of bytes required to store (E)WKB Header information.
- </summary>
- <param name="includeSRID">
- A flag indicting if SRID value is of possible interest.
- The value is <c>&&</c>-combineed with <c>HandleSRID</c>.
- </param>
- <returns>The size of the </returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKBWriter.#ctor">
- <summary>
- Initializes writer with LittleIndian byte order.
- </summary>
- </member>
- <member name="M:NetTopologySuite.IO.WKBWriter.#ctor(NetTopologySuite.IO.ByteOrder)">
- <summary>
- Initializes writer with the specified byte order.
- </summary>
- <param name="encodingType">Encoding type</param>
- </member>
- <member name="M:NetTopologySuite.IO.WKBWriter.#ctor(NetTopologySuite.IO.ByteOrder,System.Boolean)">
- <summary>
- Initializes writer with the specified byte order.
- </summary>
- <param name="encodingType">Encoding type</param>
- <param name="handleSRID">SRID values, present or not, should be emitted.</param>
- </member>
- <member name="M:NetTopologySuite.IO.WKBWriter.#ctor(NetTopologySuite.IO.ByteOrder,System.Boolean,System.Boolean)">
- <summary>
- Initializes writer with the specified byte order.
- </summary>
- <param name="encodingType">Encoding type</param>
- <param name="handleSRID">SRID values, present or not, should be emitted.</param>
- <param name="emitZ">Z values, present or not, should be emitted</param>
- </member>
- <member name="M:NetTopologySuite.IO.WKBWriter.#ctor(NetTopologySuite.IO.ByteOrder,System.Boolean,System.Boolean,System.Boolean)">
- <summary>
- Initializes writer with the specified byte order.
- </summary>
- <param name="encodingType">Encoding type</param>
- <param name="handleSRID">SRID values, present or not, should be emitted.</param>
- <param name="emitZ">Z values, present or not, should be emitted</param>
- <param name="emitM">M values, present or not, should be emitted</param>
- </member>
- <member name="M:NetTopologySuite.IO.WKBWriter.Write(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Writes a WKB representation of a given point.
- </summary>
- <param name="geometry"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKBWriter.Write(NetTopologySuite.Geometries.Geometry,System.IO.Stream)">
- <summary>
- Writes a WKB representation of a given point.
- </summary>
- <param name="geometry"></param>
- <param name="stream"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKBWriter.Write(NetTopologySuite.Geometries.Geometry,System.IO.BinaryWriter)">
- <summary>
-
- </summary>
- <param name="geometry"></param>
- <param name="writer"></param>
- </member>
- <member name="M:NetTopologySuite.IO.WKBWriter.Write(NetTopologySuite.Geometries.Geometry,System.IO.BinaryWriter,System.Boolean)">
- <summary>
-
- </summary>
- <param name="geometry"></param>
- <param name="writer"></param>
- <param name="includeSRID">
- A flag indicting if SRID value is of possible interest.
- The value is <c>&&</c>-combineed with <c>HandleSRID</c>.
- </param>
- </member>
- <member name="M:NetTopologySuite.IO.WKBWriter.WriteByteOrder(System.IO.BinaryWriter)">
- <summary>
- Writes the ByteOrder defined in <see cref="P:NetTopologySuite.IO.WKBWriter.EncodingType"/>.
- </summary>
- <param name="writer">The writer to use</param>
- </member>
- <member name="M:NetTopologySuite.IO.WKBWriter.Write(NetTopologySuite.Geometries.Coordinate,System.IO.BinaryWriter)">
- <summary>
- Write a <see cref="T:NetTopologySuite.Geometries.Coordinate"/>.
- </summary>
- <param name="coordinate">The coordinate</param>
- <param name="writer">The writer.</param>
- </member>
- <member name="M:NetTopologySuite.IO.WKBWriter.Write(NetTopologySuite.Geometries.CoordinateSequence,System.Boolean,System.IO.BinaryWriter)">
- <summary>
- Write a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>.
- </summary>
- <param name="sequence">The coordinate sequence to write</param>
- <param name="emitSize">A flag indicating if the size of <paramref name="sequence"/> should be written, too.</param>
- <param name="writer">The writer.</param>
- </member>
- <member name="M:NetTopologySuite.IO.WKBWriter.Write(NetTopologySuite.Geometries.Point,System.IO.BinaryWriter)">
- <summary>
- Write a point in its WKB format
- </summary>
- <param name="point">The point</param>
- <param name="writer">The writer</param>
- </member>
- <member name="M:NetTopologySuite.IO.WKBWriter.Write(NetTopologySuite.Geometries.Point,System.IO.BinaryWriter,System.Boolean)">
- <summary>
- Write a point in its WKB format
- </summary>
- <param name="point">The point</param>
- <param name="writer">The writer</param>
- <param name="includeSRID">
- A flag indicting if SRID value is of possible interest.
- The value is <c>&&</c>-combineed with <c>HandleSRID</c>.
- </param>
- </member>
- <member name="M:NetTopologySuite.IO.WKBWriter.Write(NetTopologySuite.Geometries.LineString,System.IO.BinaryWriter)">
- <summary>
- Write a LineString in its WKB format
- </summary>
- <param name="lineString">The LineString</param>
- <param name="writer">The writer</param>
- </member>
- <member name="M:NetTopologySuite.IO.WKBWriter.Write(NetTopologySuite.Geometries.LineString,System.IO.BinaryWriter,System.Boolean)">
- <summary>
- Write a LineString in its WKB format
- </summary>
- <param name="lineString">The LineString</param>
- <param name="writer">The writer</param>
- <param name="includeSRID">
- A flag indicting if SRID value is of possible interest.
- The value is <c>&&</c>-combineed with <c>HandleSRID</c>.
- </param>
- </member>
- <member name="M:NetTopologySuite.IO.WKBWriter.Write(NetTopologySuite.Geometries.LinearRing,System.IO.BinaryWriter)">
- <summary>
- Write LinearRing information
- </summary>
- <param name="ring">The linear ring</param>
- <param name="writer">The writer</param>
- </member>
- <member name="M:NetTopologySuite.IO.WKBWriter.Write(NetTopologySuite.Geometries.Polygon,System.IO.BinaryWriter)">
- <summary>
- Write a Polygon in its WKB format
- </summary>
- <param name="polygon">The Polygon</param>
- <param name="writer">The writer</param>
- </member>
- <member name="M:NetTopologySuite.IO.WKBWriter.Write(NetTopologySuite.Geometries.Polygon,System.IO.BinaryWriter,System.Boolean)">
- <summary>
- Write a Polygon in its WKB format
- </summary>
- <param name="polygon">The Polygon</param>
- <param name="writer">The writer</param>
- <param name="includeSRID">
- A flag indicting if SRID value is of possible interest.
- The value is <c>&&</c>-combineed with <c>HandleSRID</c>.
- </param>
- </member>
- <member name="M:NetTopologySuite.IO.WKBWriter.Write(NetTopologySuite.Geometries.MultiPoint,System.IO.BinaryWriter)">
- <summary>
- Write a MultiPoint in its WKB format
- </summary>
- <param name="multiPoint">The MultiPoint</param>
- <param name="writer">The writer</param>
- </member>
- <member name="M:NetTopologySuite.IO.WKBWriter.Write(NetTopologySuite.Geometries.MultiPoint,System.IO.BinaryWriter,System.Boolean)">
- <summary>
- Write a MultiPoint in its WKB format
- </summary>
- <param name="multiPoint">The MultiPoint</param>
- <param name="writer">The writer</param>
- <param name="includeSRID">
- A flag indicting if SRID value is of possible interest.
- The value is <c>&&</c>-combineed with <c>HandleSRID</c>.
- </param>
- </member>
- <member name="M:NetTopologySuite.IO.WKBWriter.Write(NetTopologySuite.Geometries.MultiLineString,System.IO.BinaryWriter)">
- <summary>
- Write a MultiLineString in its WKB format
- </summary>
- <param name="multiLineString">The MultiLineString</param>
- <param name="writer">The writer</param>
- </member>
- <member name="M:NetTopologySuite.IO.WKBWriter.Write(NetTopologySuite.Geometries.MultiLineString,System.IO.BinaryWriter,System.Boolean)">
- <summary>
- Write a MultiLineString in its WKB format
- </summary>
- <param name="multiLineString">The MultiLineString</param>
- <param name="writer">The writer</param>
- <param name="includeSRID">
- A flag indicting if SRID value is of possible interest.
- The value is <c>&&</c>-combineed with <c>HandleSRID</c>.
- </param>
- </member>
- <member name="M:NetTopologySuite.IO.WKBWriter.Write(NetTopologySuite.Geometries.MultiPolygon,System.IO.BinaryWriter)">
- <summary>
- Write a MultiPolygon in its WKB format
- </summary>
- <param name="multiPolygon">The MultiPolygon</param>
- <param name="writer">The writer</param>
- </member>
- <member name="M:NetTopologySuite.IO.WKBWriter.Write(NetTopologySuite.Geometries.MultiPolygon,System.IO.BinaryWriter,System.Boolean)">
- <summary>
- Write a MultiPolygon in its WKB format
- </summary>
- <param name="multiPolygon">The MultiPolygon</param>
- <param name="writer">The writer</param>
- <param name="includeSRID">
- A flag indicting if SRID value is of possible interest.
- The value is <c>&&</c>-combineed with <c>HandleSRID</c>.
- </param>
- </member>
- <member name="M:NetTopologySuite.IO.WKBWriter.Write(NetTopologySuite.Geometries.GeometryCollection,System.IO.BinaryWriter)">
- <summary>
- Write a GeometryCollection in its WKB format
- </summary>
- <param name="geomCollection">The GeometryCollection</param>
- <param name="writer">The writer</param>
- </member>
- <member name="M:NetTopologySuite.IO.WKBWriter.Write(NetTopologySuite.Geometries.GeometryCollection,System.IO.BinaryWriter,System.Boolean)">
- <summary>
- Write a GeometryCollection in its WKB format
- </summary>
- <param name="geomCollection">The GeometryCollection</param>
- <param name="writer">The writer</param>
- <param name="includeSRID">
- A flag indicting if SRID value is of possible interest.
- The value is <c>&&</c>-combineed with <c>HandleSRID</c>.
- </param>
- </member>
- <member name="M:NetTopologySuite.IO.WKBWriter.GetBytes(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Gets a buffer for the <see cref="T:System.IO.MemoryStream"/> to write <paramref name="geometry"/> to.
- </summary>
- <param name="geometry">The geometry to write</param>
- <returns>A buffer</returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKBWriter.GetBuffer(NetTopologySuite.Geometries.Geometry,System.Boolean)">
- <summary>
- Gets a buffer for the <see cref="T:System.IO.MemoryStream"/> to write <paramref name="geometry"/> to.
- </summary>
- <param name="geometry">The geometry to write</param>
- <param name="includeSRID">
- A flag indicting if SRID value is of possible interest.
- The value is <c>&&</c>-combineed with <c>HandleSRID</c>.
- </param>
- <returns>A buffer</returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKBWriter.SetByteStream(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes the length of a buffer to write <paramref name="geometry"/> in its WKB format.
- </summary>
- <param name="geometry">The geometry</param>
- <returns>The number of bytes required to store <paramref name="geometry"/> in its WKB format.</returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKBWriter.GetRequiredBufferSize(NetTopologySuite.Geometries.Geometry,System.Boolean)">
- <summary>
- Computes the length of a buffer to write <paramref name="geometry"/> in its WKB format.
- </summary>
- <param name="geometry">The geometry</param>
- <param name="includeSRID">
- A flag indicting if SRID value is of possible interest.
- The value is <c>&&</c>-combineed with <c>HandleSRID</c>.
- </param>
- <returns>The number of bytes required to store <paramref name="geometry"/> in its WKB format.</returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKBWriter.SetByteStream(NetTopologySuite.Geometries.GeometryCollection)">
- <summary>
- Computes the length of a buffer to write the <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/> <paramref name="geometry"/> in its WKB format.
- </summary>
- <param name="geometry">The geometry</param>
- <returns>The number of bytes required to store <paramref name="geometry"/> in its WKB format.</returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKBWriter.GetRequiredBufferSize(NetTopologySuite.Geometries.GeometryCollection,System.Boolean)">
- <summary>
- Computes the length of a buffer to write the <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/> <paramref name="geometry"/> in its WKB format.
- </summary>
- <param name="geometry">The geometry</param>
- <param name="includeSRID">
- A flag indicting if SRID value is of possible interest.
- The value is <c>&&</c>-combineed with <c>HandleSRID</c>.
- </param>
- <returns>The number of bytes required to store <paramref name="geometry"/> in its WKB format.</returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKBWriter.SetByteStream(NetTopologySuite.Geometries.MultiPolygon)">
- <summary>
- Computes the length of a buffer to write the <see cref="T:NetTopologySuite.Geometries.MultiPolygon"/> <paramref name="geometry"/> in its WKB format.
- </summary>
- <param name="geometry">The geometry</param>
- <returns>The number of bytes required to store <paramref name="geometry"/> in its WKB format.</returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKBWriter.GetRequiredBufferSize(NetTopologySuite.Geometries.MultiPolygon,System.Boolean)">
- <summary>
- Computes the length of a buffer to write the <see cref="T:NetTopologySuite.Geometries.MultiPolygon"/> <paramref name="geometry"/> in its WKB format.
- </summary>
- <param name="geometry">The geometry</param>
- <param name="includeSRID">
- A flag indicting if SRID value is of possible interest.
- The value is <c>&&</c>-combineed with <c>HandleSRID</c>.
- </param>
- <returns>The number of bytes required to store <paramref name="geometry"/> in its WKB format.</returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKBWriter.SetByteStream(NetTopologySuite.Geometries.MultiLineString)">
- <summary>
- Computes the length of a buffer to write the <see cref="T:NetTopologySuite.Geometries.MultiLineString"/> <paramref name="geometry"/> in its WKB format.
- </summary>
- <param name="geometry">The geometry</param>
- <returns>The number of bytes required to store <paramref name="geometry"/> in its WKB format.</returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKBWriter.GetRequiredBufferSize(NetTopologySuite.Geometries.MultiLineString,System.Boolean)">
- <summary>
- Computes the length of a buffer to write the <see cref="T:NetTopologySuite.Geometries.MultiLineString"/> <paramref name="geometry"/> in its WKB format.
- </summary>
- <param name="geometry">The geometry</param>
- <param name="includeSRID">
- A flag indicting if SRID value is of possible interest.
- The value is <c>&&</c>-combineed with <c>HandleSRID</c>.
- </param>
- <returns>The number of bytes required to store <paramref name="geometry"/> in its WKB format.</returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKBWriter.SetByteStream(NetTopologySuite.Geometries.MultiPoint)">
- <summary>
- Computes the length of a buffer to write the <see cref="T:NetTopologySuite.Geometries.MultiPoint"/> <paramref name="geometry"/> in its WKB format.
- </summary>
- <param name="geometry">The geometry</param>
- <returns>The number of bytes required to store <paramref name="geometry"/> in its WKB format.</returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKBWriter.GetRequiredBufferSize(NetTopologySuite.Geometries.MultiPoint,System.Boolean)">
- <summary>
- Computes the length of a buffer to write the <see cref="T:NetTopologySuite.Geometries.MultiPoint"/> <paramref name="geometry"/> in its WKB format.
- </summary>
- <param name="geometry">The geometry</param>
- <param name="includeSRID">
- A flag indicting if SRID value is of possible interest.
- The value is <c>&&</c>-combineed with <c>HandleSRID</c>.
- </param>
- <returns>The number of bytes required to store <paramref name="geometry"/> in its WKB format.</returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKBWriter.SetByteStream(NetTopologySuite.Geometries.Polygon)">
- <summary>
- Computes the length of a buffer to write the <see cref="T:NetTopologySuite.Geometries.Polygon"/> <paramref name="geometry"/> in its WKB format.
- </summary>
- <param name="geometry">The geometry</param>
- <returns>The number of bytes required to store <paramref name="geometry"/> in its WKB format.</returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKBWriter.GetRequiredBufferSize(NetTopologySuite.Geometries.Polygon,System.Boolean)">
- <summary>
- Computes the length of a buffer to write the <see cref="T:NetTopologySuite.Geometries.Polygon"/> <paramref name="geometry"/> in its WKB format.
- </summary>
- <param name="geometry">The geometry</param>
- <param name="includeSRID">
- A flag indicting if SRID value is of possible interest.
- The value is <c>&&</c>-combineed with <c>HandleSRID</c>.
- </param>
- <returns>The number of bytes required to store <paramref name="geometry"/> in its WKB format.</returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKBWriter.SetByteStream(NetTopologySuite.Geometries.LineString)">
- <summary>
- Computes the length of a buffer to write the <see cref="T:NetTopologySuite.Geometries.LineString"/> <paramref name="geometry"/> in its WKB format.
- </summary>
- <param name="geometry">The geometry</param>
- <returns>The number of bytes required to store <paramref name="geometry"/> in its WKB format.</returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKBWriter.GetRequiredBufferSize(NetTopologySuite.Geometries.LineString,System.Boolean)">
- <summary>
- Computes the length of a buffer to write the <see cref="T:NetTopologySuite.Geometries.LineString"/> <paramref name="geometry"/> in its WKB format.
- </summary>
- <param name="geometry">The geometry</param>
- <param name="includeSRID">
- A flag indicting if SRID value is of possible interest.
- The value is <c>&&</c>-combineed with <c>HandleSRID</c>.
- </param>
- <returns>The number of bytes required to store <paramref name="geometry"/> in its WKB format.</returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKBWriter.SetByteStream(NetTopologySuite.Geometries.Point)">
- <summary>
- Computes the length of a buffer to write the <see cref="T:NetTopologySuite.Geometries.Point"/> <paramref name="geometry"/> in its WKB format.
- </summary>
- <param name="geometry">The geometry</param>
- <returns>The number of bytes required to store <paramref name="geometry"/> in its WKB format.</returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKBWriter.GetRequiredBufferSize(NetTopologySuite.Geometries.Point,System.Boolean)">
- <summary>
- Computes the length of a buffer to write the <see cref="T:NetTopologySuite.Geometries.Point"/> <paramref name="geometry"/> in its WKB format.
- </summary>
- <param name="geometry">The geometry</param>
- <param name="includeSRID">
- A flag indicting if SRID value is of possible interest.
- The value is <c>&&</c>-combineed with <c>HandleSRID</c>.
- </param>
- <returns>The number of bytes required to store <paramref name="geometry"/> in its WKB format.</returns>
- </member>
- <member name="F:NetTopologySuite.IO.WKBWriter._strict">
- <summary>
- Gets a value whether or not EWKB featues may be used.
- <para/>EWKB features are
- <list type="bullet">
- <item><description><c>0x80000000</c> flag if geometry's z-ordinate values are written</description></item>
- <item><description><c>0x40000000</c> flag if geometry's m-ordinate values are written</description></item>
- <item><description><c>0x20000000</c> flag if geometry's SRID value is written</description></item></list>
- </summary>
- </member>
- <member name="P:NetTopologySuite.IO.WKBWriter.Strict">
- <summary>
- Gets a value indicating if only original WKT elements should be handled
- </summary>
- </member>
- <member name="P:NetTopologySuite.IO.WKBWriter.HandleSRID">
- <summary>
- Gets or sets a value indicating if an encoded SRID value should be handled or ignored.
- </summary>
- </member>
- <member name="F:NetTopologySuite.IO.WKBWriter.AllowedOrdinates">
- <summary>
- Gets the <see cref="T:NetTopologySuite.Geometries.Ordinates"/> that this class can write.
- </summary>
- </member>
- <member name="P:NetTopologySuite.IO.WKBWriter.HandleOrdinates">
- <summary>
- Gets or sets the maximum <see cref="T:NetTopologySuite.Geometries.Ordinates"/> to write out.
- The default is equivalent to <see cref="F:NetTopologySuite.IO.WKBWriter.AllowedOrdinates"/>.
- </summary>
- <remarks>
- <para>
- The purpose of this property is to <b>restrict</b> what gets written out to ensure that,
- e.g., Z values are never written out even if present on a geometry instance. Ordinates
- that are not present on a geometry instance will be omitted regardless of this value.
- </para>
- <para>
- Flags not present in <see cref="F:NetTopologySuite.IO.WKBWriter.AllowedOrdinates"/> are silently ignored.
- </para>
- <para>
- <see cref="F:NetTopologySuite.Geometries.Ordinates.X"/> and <see cref="F:NetTopologySuite.Geometries.Ordinates.Y"/> are always present.
- </para>
- </remarks>
- </member>
- <member name="T:NetTopologySuite.IO.WKTConstants">
- <summary>
- Constants used in the WKT (Well-Known Text) format.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="F:NetTopologySuite.IO.WKTConstants.GEOMETRYCOLLECTION">
- <summary>
- Token text for <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/> geometries
- </summary>
- </member>
- <member name="F:NetTopologySuite.IO.WKTConstants.LINEARRING">
- <summary>
- Token text for <see cref="T:NetTopologySuite.Geometries.LinearRing"/> geometries
- </summary>
- </member>
- <member name="F:NetTopologySuite.IO.WKTConstants.LINESTRING">
- <summary>
- Token text for <see cref="T:NetTopologySuite.Geometries.LineString"/> geometries
- </summary>
- </member>
- <member name="F:NetTopologySuite.IO.WKTConstants.MULTIPOLYGON">
- <summary>
- Token text for <see cref="T:NetTopologySuite.Geometries.MultiPolygon"/> geometries
- </summary>
- </member>
- <member name="F:NetTopologySuite.IO.WKTConstants.MULTILINESTRING">
- <summary>
- Token text for <see cref="T:NetTopologySuite.Geometries.MultiLineString"/> geometries
- </summary>
- </member>
- <member name="F:NetTopologySuite.IO.WKTConstants.MULTIPOINT">
- <summary>
- Token text for <see cref="T:NetTopologySuite.Geometries.MultiPoint"/> geometries
- </summary>
- </member>
- <member name="F:NetTopologySuite.IO.WKTConstants.POINT">
- <summary>
- Token text for <see cref="T:NetTopologySuite.Geometries.Point"/> geometries
- </summary>
- </member>
- <member name="F:NetTopologySuite.IO.WKTConstants.POLYGON">
- <summary>
- Token text for <see cref="T:NetTopologySuite.Geometries.Polygon"/> geometries
- </summary>
- </member>
- <member name="F:NetTopologySuite.IO.WKTConstants.EMPTY">
- <summary>
- Token text for empty geometries
- </summary>
- </member>
- <member name="F:NetTopologySuite.IO.WKTConstants.M">
- <summary>
- Token text indicating that geometries have measure-ordinate values
- </summary>
- </member>
- <member name="F:NetTopologySuite.IO.WKTConstants.Z">
- <summary>
- Token text indicating that geometries have z-ordinate values
- </summary>
- </member>
- <member name="F:NetTopologySuite.IO.WKTConstants.ZM">
- <summary>
- Token text indicating that geometries have both z- and measure-ordinate values
- </summary>
- </member>
- <member name="T:NetTopologySuite.IO.WKTFileReader">
- <summary>
- Reads a sequence of <see cref="T:NetTopologySuite.Geometries.Geometry"/>s in WKT format from a text file.
- </summary>
- <remarks>The geometries in the file may be separated by any amount of whitespace and newlines.</remarks>
- <author>
- Martin Davis
- </author>
- </member>
- <member name="M:NetTopologySuite.IO.WKTFileReader.#ctor(System.IO.FileInfo,NetTopologySuite.IO.WKTReader)">
- <summary>
- 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.
- </summary>
- <param name="file"> the <see cref="T:System.IO.FileInfo" /> to read from</param>
- <param name="wktReader">the geometry reader to use</param>
- </member>
- <member name="M:NetTopologySuite.IO.WKTFileReader.#ctor(System.String,NetTopologySuite.IO.WKTReader)">
- <summary>
- Creates a new <see cref="T:NetTopologySuite.IO.WKTFileReader" />, given the name of the file to read from.
- </summary>
- <param name="filename">The name of the file to read from</param>
- <param name="wktReader">The geometry reader to use</param>
- </member>
- <member name="M:NetTopologySuite.IO.WKTFileReader.#ctor(System.IO.Stream,NetTopologySuite.IO.WKTReader)">
- <summary>
- Creates a new <see cref="T:NetTopologySuite.IO.WKTFileReader" />, given a <see cref="T:System.IO.Stream"/> to read from.
- </summary>
- <param name="stream">The stream to read from</param>
- <param name="wktReader">The geometry reader to use</param>
- </member>
- <member name="M:NetTopologySuite.IO.WKTFileReader.#ctor(System.IO.TextReader,NetTopologySuite.IO.WKTReader)">
- <summary>
- Creates a new <see cref="T:NetTopologySuite.IO.WKTFileReader" />, given a <see cref="T:System.IO.TextReader"/> to read with.
- </summary>
- <param name="reader">The stream reader of the file to read from</param>
- <param name="wktReader">The geometry reader to use</param>
- </member>
- <member name="P:NetTopologySuite.IO.WKTFileReader.Limit">
- <summary>
- Gets/Sets the maximum number of geometries to read.
- </summary>
- </member>
- <member name="P:NetTopologySuite.IO.WKTFileReader.StrictParsing">
- <summary>
- Gets/Sets allow ignoring WKT parse errors
- after at least one geometry has been read,
- to return a partial result.
- </summary>
- </member>
- <member name="P:NetTopologySuite.IO.WKTFileReader.Offset">
- <summary>
- Gets/Sets the number of geometries to skip before reading.
- </summary>
- </member>
- <member name="M:NetTopologySuite.IO.WKTFileReader.Read">
- <summary>
- Reads a sequence of geometries.
- </summary>
- <remarks>
- <para>
- If an offset is specified, geometries read up to the offset count are skipped.</para>
- <para>If a limit is specified, no more than <see cref="P:NetTopologySuite.IO.WKTFileReader.Limit" /> geometries are read.</para>
- </remarks>
- <exception cref="T:System.IO.IOException">Thrown if an I/O exception was encountered</exception>
- <exception cref="T:NetTopologySuite.IO.ParseException">Thrown if an error occurred reading a geometry</exception>
- <returns>The list of geometries read</returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKTFileReader.IsAtEndOfFile(System.IO.StreamReader)">
- <summary>
- Tests if reader is at EOF.
- </summary>
- </member>
- <member name="T:NetTopologySuite.IO.WKTReader">
- <summary>
- Converts a Well-Known Text string to a <c>Geometry</c>.
-
- The <c>WKTReader</c> allows
- extracting <c>Geometry</c> objects from either input streams or
- internal strings. This allows it to function as a parser to read <c>Geometry</c>
- objects from text blocks embedded in other data formats (e.g. XML).
-
- The Well-known
- Text format is defined in the <A HREF="http://www.opengis.org/techno/specs.htm">
- OpenGIS Simple Features Specification for SQL</A> .
- <para/>
- As of version 2.0, NTS can read WKT syntax
- which specifies coordinate dimension Z, M or ZM as modifiers(e.g.POINT Z)
- or in the name of the geometry type(e.g.LINESTRINGZM).
- If the coordinate dimension is specified it will be set in the created geometry.
- If the coordinate dimension is not specified, the default behaviour is to
- create XYZ geometry(this is backwards compatible with older JTS versions).
- This can be altered to create XY geometry by
- setting <see cref="P:NetTopologySuite.IO.WKTReader.IsOldNtsCoordinateSyntaxAllowed"/> to <c>false</c>.
- <para/>
- A reader can be set to ensure the input is structurally valid
- by setting <see cref="P:NetTopologySuite.IO.WKTReader.FixStructure"/> to <c>true</c>.
- This ensures that geometry can be constructed without errors due to missing coordinates.
- The created geometry may still be topologically invalid.
- <para/>
- NOTE: There is an inconsistency in the SFS.
- The WKT grammar states that <c>MultiPoints</c> are represented by
- <c>MULTIPOINT ( ( x y), (x y) )</c>,
- but the examples show <c>MultiPoint</c>s as <c>MULTIPOINT ( x y, x y )</c>.
- Other implementations follow the latter syntax, so NTS will adopt it as well.
- A <c>WKTReader</c> is parameterized by a <c>GeometryFactory</c>,
- to allow it to create <c>Geometry</c> objects of the appropriate
- implementation. In particular, the <c>GeometryFactory</c> will
- determine the <c>PrecisionModel</c> and <c>SRID</c> that is used.
- The <c>WKTReader</c> will convert the input numbers to the precise
- internal representation.
- <remarks>
- <see cref="T:NetTopologySuite.IO.WKTReader" /> reads also non-standard <see cref="F:NetTopologySuite.IO.WKTConstants.LINEARRING"/> tags.
- </remarks>
- </summary>
- </member>
- <member name="M:NetTopologySuite.IO.WKTReader.#ctor">
- <summary>
- Creates a <c>WKTReader</c> that creates objects using a basic GeometryFactory.
- </summary>
- </member>
- <member name="M:NetTopologySuite.IO.WKTReader.#ctor(NetTopologySuite.NtsGeometryServices)">
- <summary>
- Creates a <c>WKTReader</c> that creates objects using a basic GeometryFactory.
- </summary>
- </member>
- <member name="M:NetTopologySuite.IO.WKTReader.#ctor(NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
- Creates a <c>WKTReader</c> that creates objects using the given
- <c>GeometryFactory</c>.
- </summary>
- <param name="factory">The factory used to create <c>Geometry</c>s.</param>
- </member>
- <member name="P:NetTopologySuite.IO.WKTReader.IsOldNtsCoordinateSyntaxAllowed">
- <summary>
- Gets or sets a value indicating whether or not coordinates may have 3 ordinate values
- even though no Z or M ordinate indicator is present. The default value is
- <see langword="true"/>.
- </summary>
- </member>
- <member name="P:NetTopologySuite.IO.WKTReader.IsOldNtsMultiPointSyntaxAllowed">
- <summary>
- Gets or sets a value indicating whether or not point coordinates in a MultiPoint
- geometry must not be enclosed in paren. The default value is <see langword="true"/>.
- </summary>
- </member>
- <member name="P:NetTopologySuite.IO.WKTReader.FixStructure">
- <summary>
- Gets or sets a flag indicating that the structure of input geometry should be fixed
- so that the geometry can be constructed without error.<br/>
- This involves adding coordinates if the input coordinate sequence is shorter than required.
- </summary>
- <seealso cref="F:NetTopologySuite.Geometries.LineString.MinimumValidSize"/>
- </member>
- <member name="P:NetTopologySuite.IO.WKTReader.Factory">
- <summary>
- Gets or sets the factory to create geometries
- </summary>
- </member>
- <member name="P:NetTopologySuite.IO.WKTReader.DefaultSRID">
- <summary>
- Gets or sets the default SRID
- </summary>
- </member>
- <member name="P:NetTopologySuite.IO.WKTReader.IsStrict">
- <summary>
- Gets or sets a value indicating if the reader should attempt to repair malformed input.
- </summary>
- <remarks>
- <i>Malformed</i> in this case means the ring has too few points (4),
- or is not closed.
- </remarks>
- </member>
- <member name="M:NetTopologySuite.IO.WKTReader.Read(System.String)">
- <summary>
- Converts a Well-known Text representation to a <c>Geometry</c>.
- </summary>
- <param name="wellKnownText">
- one or more Geometry Tagged Text strings (see the OpenGIS
- Simple Features Specification) separated by whitespace.
- </param>
- <returns>
- A <c>Geometry</c> specified by <c>wellKnownText</c>
- </returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKTReader.Read(System.IO.Stream)">
- <summary>
- Converts a Well-known Text representation to a <c>Geometry</c>.
- </summary>
- <param name="stream">
- one or more Geometry Tagged Text strings (see the OpenGIS
- Simple Features Specification) separated by whitespace.
- </param>
- <returns>
- A <c>Geometry</c> specified by <c>wellKnownText</c>
- </returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKTReader.Read(System.IO.TextReader)">
- <summary>
- Converts a Well-known Text representation to a <c>Geometry</c>.
- </summary>
- <param name="reader">
- A Reader which will return a "Geometry Tagged Text"
- string (see the OpenGIS Simple Features Specification).
- </param>
- <returns>A <c>Geometry</c> read from <c>reader</c>.
- </returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKTReader.GetCoordinate(NetTopologySuite.Geometries.GeometryFactory,NetTopologySuite.Utilities.TokenStream,NetTopologySuite.Geometries.Ordinates,System.Boolean)">
- <summary>
- Reads a <c>Coordinate</c> from a stream using the given <see cref="T:RTools_NTS.Util.StreamTokenizer"/>.
- <para>
- All ordinate values are read, but -depending on the <see cref="T:NetTopologySuite.Geometries.CoordinateSequenceFactory"/>
- of the underlying <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>- not necessarily all can be handled.
- Those are silently dropped.
- </para>
- </summary>
- <param name="factory">A geometry factory</param>
- <param name="tokens">the tokenizer to use.</param>
- <param name="ordinateFlags">a bit-mask defining the ordinates to read.</param>
- <param name="tryParen">a value indicating if a starting "<c>(</c>" should be probed.</param>
- <returns>a <see cref="T:NetTopologySuite.Geometries.Coordinate"/> of appropriate dimension containing the read ordinate values.</returns>
- <exception cref="T:System.IO.IOException">if an I/O error occurs.</exception>
- <exception cref="T:NetTopologySuite.IO.ParseException">if an unexpected token was encountered.</exception>
- </member>
- <member name="M:NetTopologySuite.IO.WKTReader.GetCoordinateSequence(NetTopologySuite.Geometries.GeometryFactory,NetTopologySuite.Utilities.TokenStream,NetTopologySuite.Geometries.Ordinates,System.Int32,System.Boolean)">
- <summary>
- Reads a <c>Coordinate</c> from a stream using the given <see cref="T:RTools_NTS.Util.StreamTokenizer"/>.
- <para>
- All ordinate values are read, but -depending on the <see cref="T:NetTopologySuite.Geometries.CoordinateSequenceFactory"/>
- of the underlying <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>- not necessarily all can be handled.
- Those are silently dropped.
- </para>
- </summary>
- <param name="factory">A geometry factory</param>
- <param name="tokens">the tokenizer to use.</param>
- <param name="ordinateFlags">a bit-mask defining the ordinates to read.</param>
- <param name="minSize">The minumum number of coordinates that have to be in the sequence</param>
- <param name="isRing">A flag indicating if the sequence should form a ring</param>
- <returns>a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/> of length 1 containing the read ordinate values.</returns>
- <exception cref="T:System.IO.IOException">if an I/O error occurs.</exception>
- <exception cref="T:NetTopologySuite.IO.ParseException">if an unexpected token was encountered.</exception>
- </member>
- <member name="M:NetTopologySuite.IO.WKTReader.GetCoordinateSequenceOldMultiPoint(NetTopologySuite.Geometries.GeometryFactory,NetTopologySuite.Utilities.TokenStream,NetTopologySuite.Geometries.Ordinates)">
- <summary>
- Reads a <c>CoordinateSequence</c> from a stream using the given <see cref="T:RTools_NTS.Util.StreamTokenizer"/>
- for an old-style JTS MultiPoint (Point coordinates not enclosed in parentheses).
- <para>
- All ordinate values are read, but -depending on the <see cref="T:NetTopologySuite.Geometries.CoordinateSequenceFactory"/>
- of the underlying <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>- not necessarily all can be handled.
- Those are silently dropped.
- </para>
- </summary>
- <param name="factory">A geometry factory</param>
- <param name="tokens">the tokenizer to use.</param>
- <param name="ordinateFlags">a bit-mask defining the ordinates to read.</param>
- <returns>a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/> of length 1 containing the read ordinate values.</returns>
- <exception cref="T:System.IO.IOException">if an I/O error occurs.</exception>
- <exception cref="T:NetTopologySuite.IO.ParseException">if an unexpected token was encountered.</exception>
- </member>
- <member name="M:NetTopologySuite.IO.WKTReader.ToDimension(NetTopologySuite.Geometries.Ordinates)">
- <summary>
- Computes the required dimension based on the given ordinate bit-mask.
- It is assumed that <see cref="F:NetTopologySuite.Geometries.Ordinates.XY"/> is set.
- </summary>
- <param name="ordinateFlags">the ordinate bit-mask.</param>
- <returns>the number of dimensions required to store ordinates for the given bit-mask.</returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKTReader.IsNumberNext(NetTopologySuite.Utilities.TokenStream)">
- <summary>
-
- </summary>
- <param name="tokens"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKTReader.IsOpenerNext(NetTopologySuite.Utilities.TokenStream)">
- <summary>
-
- </summary>
- <param name="tokens"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKTReader.GetNextNumber(NetTopologySuite.Utilities.TokenStream)">
- <summary>
- Returns the next number in the stream.
- </summary>
- <param name="tokens">
- Tokenizer over a stream of text in Well-known Text
- format. The next token must be a number.
- </param>
- <returns>The next number in the stream.</returns>
- <exception cref="T:NetTopologySuite.IO.ParseException">if the next token is not a valid number</exception>
- </member>
- <member name="M:NetTopologySuite.IO.WKTReader.GetNextEmptyOrOpener(NetTopologySuite.Utilities.TokenStream)">
- <summary>
- Returns the next WKTConstants.EMPTY or "(" in the stream as uppercase text.
- </summary>
- <param name="tokens">
- Tokenizer over a stream of text in Well-known Text
- format. The next token must be <see cref="F:NetTopologySuite.IO.WKTConstants.EMPTY"/> or "(".
- </param>
- <returns>
- The next WKTConstants.EMPTY or "(" in the stream as uppercase text.</returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKTReader.GetNextOrdinateFlags(NetTopologySuite.Utilities.TokenStream)">
- <summary>
- Returns the next ordinate flag information in the stream as uppercase text.
- This can be Z, M or ZM.
- </summary>
- <param name="tokens">tokenizer over a stream of text in Well-known Text</param>
- <returns>the next ordinate flags.</returns>
- <exception cref="T:System.IO.IOException">if an I/O error occurs</exception>
- <exception cref="T:NetTopologySuite.IO.ParseException">if the next token is not EMPTY or L_PAREN</exception>
- </member>
- <member name="M:NetTopologySuite.IO.WKTReader.LookAheadWord(NetTopologySuite.Utilities.TokenStream)">
- <summary>
- Returns the next word in the stream.
- </summary>
- <param name="tokens">tokenizer over a stream of text in Well-known Text format. The next token must be a word.</param>
- <returns>the next word in the stream as uppercase text</returns>
- <exception cref="T:NetTopologySuite.IO.ParseException">if the next token is not a word</exception>
- <exception cref="T:System.IO.IOException">if an I/O error occurs</exception>
- </member>
- <member name="M:NetTopologySuite.IO.WKTReader.GetNextCloserOrComma(NetTopologySuite.Utilities.TokenStream)">
- <summary>
- Returns the next ")" or "," in the stream.
- </summary>
- <param name="tokens">
- Tokenizer over a stream of text in Well-known Text
- format. The next token must be ")" or ",".
- </param>
- <returns>
- The next ")" or "," in the stream.</returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKTReader.GetNextCloser(NetTopologySuite.Utilities.TokenStream)">
- <summary>
- Returns the next ")" in the stream.
- </summary>
- <param name="tokens">
- Tokenizer over a stream of text in Well-known Text
- format. The next token must be ")".
- </param>
- <returns>
- The next ")" in the stream.</returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKTReader.GetNextWord(NetTopologySuite.Utilities.TokenStream,System.Boolean)">
- <summary>
- Returns the next word in the stream as uppercase text.
- </summary>
- <param name="tokens">
- Tokenizer over a stream of text in Well-known Text
- format. The next token must be a word.
- </param>
- <param name="advance">
- <see langword="true"/> to advance the stream, <see langword="false"/> to just peek.
- </param>
- <returns>The next word in the stream as uppercase text.</returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKTReader.ReadGeometryTaggedText(NetTopologySuite.Utilities.TokenStream)">
- <summary>
- Creates a <c>Geometry</c> using the next token in the stream.
- </summary>
- <param name="tokens">
- Tokenizer over a stream of text in Well-known Text
- format. The next tokens must form a <Geometry Tagged Text.
- </param>
- <returns>A <c>Geometry</c> specified by the next token
- in the stream.</returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKTReader.ReadPointText(NetTopologySuite.Utilities.TokenStream,NetTopologySuite.Geometries.GeometryFactory,NetTopologySuite.Geometries.Ordinates)">
- <summary>
- Creates a <c>Point</c> using the next token in the stream.
- </summary>
- <param name="tokens">
- Tokenizer over a stream of text in Well-known Text
- format. The next tokens must form a <Point Text.
- </param>
- <param name="factory">The factory to create the geometry</param>
- <param name="ordinateFlags">A flag indicating the ordinates to expect.</param>
- <returns>A <c>Point</c> specified by the next token in
- the stream.</returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKTReader.ReadLineStringText(NetTopologySuite.Utilities.TokenStream,NetTopologySuite.Geometries.GeometryFactory,NetTopologySuite.Geometries.Ordinates)">
- <summary>
- Creates a <c>LineString</c> using the next token in the stream.
- </summary>
- <param name="tokens">
- Tokenizer over a stream of text in Well-known Text
- format. The next tokens must form a <LineString Text.
- </param>
- <param name="factory">The factory to create the geometry</param>
- <param name="ordinateFlags">A flag indicating the ordinates to expect.</param>
- <returns>
- A <c>LineString</c> specified by the next
- token in the stream.</returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKTReader.ReadLinearRingText(NetTopologySuite.Utilities.TokenStream,NetTopologySuite.Geometries.GeometryFactory,NetTopologySuite.Geometries.Ordinates)">
- <summary>
- Creates a <c>LinearRing</c> using the next token in the stream.
- </summary>
- <param name="tokens">
- Tokenizer over a stream of text in Well-known Text
- format. The next tokens must form a <LineString Text.
- </param>
- <param name="factory">The factory to create the geometry</param>
- <param name="ordinateFlags">A flag indicating the ordinates to expect.</param>
- <returns>A <c>LinearRing</c> specified by the next
- token in the stream.</returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKTReader.ReadMultiPointText(NetTopologySuite.Utilities.TokenStream,NetTopologySuite.Geometries.GeometryFactory,NetTopologySuite.Geometries.Ordinates)">
- <summary>
- Creates a <c>MultiPoint</c> using the next token in the stream.
- </summary>
- <param name="tokens">
- Tokenizer over a stream of text in Well-known Text
- format. The next tokens must form a <MultiPoint Text.
- </param>
- <param name="factory">The factory to create the geometry</param>
- <param name="ordinateFlags">A flag indicating the ordinates to expect.</param>
- <returns>
- A <c>MultiPoint</c> specified by the next
- token in the stream.</returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKTReader.ReadPolygonText(NetTopologySuite.Utilities.TokenStream,NetTopologySuite.Geometries.GeometryFactory,NetTopologySuite.Geometries.Ordinates)">
- <summary>
- Creates a <c>Polygon</c> using the next token in the stream.
- </summary>
- <param name="tokens">
- Tokenizer over a stream of text in Well-known Text
- format. The next tokens must form a Polygon Text.
- </param>
- <param name="factory">The factory to create the geometry</param>
- <param name="ordinateFlags">A flag indicating the ordinates to expect.</param>
- <returns>
- A <c>Polygon</c> specified by the next token
- in the stream.
- </returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKTReader.ReadMultiLineStringText(NetTopologySuite.Utilities.TokenStream,NetTopologySuite.Geometries.GeometryFactory,NetTopologySuite.Geometries.Ordinates)">
- <summary>
- Creates a <c>MultiLineString</c> using the next token in the stream.
- </summary>
- <param name="tokens">
- Tokenizer over a stream of text in Well-known Text
- format. The next tokens must form a MultiLineString Text.
- </param>
- <param name="factory">The factory to create the geometry</param>
- <param name="ordinateFlags">A flag indicating the ordinates to expect.</param>
- <returns>
- A <c>MultiLineString</c> specified by the
- next token in the stream.</returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKTReader.ReadMultiPolygonText(NetTopologySuite.Utilities.TokenStream,NetTopologySuite.Geometries.GeometryFactory,NetTopologySuite.Geometries.Ordinates)">
- <summary>
- Creates a <c>MultiPolygon</c> using the next token in the stream.
- </summary>
- <param name="tokens">Tokenizer over a stream of text in Well-known Text
- format. The next tokens must form a MultiPolygon Text.
- </param>
- <param name="factory">The factory to create the geometry</param>
- <param name="ordinateFlags">A flag indicating the ordinates to expect.</param>
- <returns>
- A <c>MultiPolygon</c> specified by the next
- token in the stream, or if if the coordinates used to create the
- <c>Polygon</c> shells and holes do not form closed linestrings.</returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKTReader.ReadGeometryCollectionText(NetTopologySuite.Utilities.TokenStream,NetTopologySuite.Geometries.GeometryFactory,NetTopologySuite.Geometries.Ordinates)">
- <summary>
- Creates a <c>GeometryCollection</c> using the next token in the
- stream.
- </summary>
- <param name="tokens">
- Tokenizer over a stream of text in Well-known Text
- format. The next tokens must form a <GeometryCollection Text.
- </param>
- <param name="factory">The factory to create the geometry</param>
- <param name="ordinateFlags">A flag indicating the ordinates to expect.</param>
- <returns>
- A <c>GeometryCollection</c> specified by the
- next token in the stream.</returns>
- </member>
- <member name="T:NetTopologySuite.IO.WKTWriter">
- <summary>
- Outputs the textual representation of a <see cref="T:NetTopologySuite.Geometries.Geometry" />.
- The <see cref="T:NetTopologySuite.IO.WKTWriter" /> outputs coordinates rounded to the precision
- model. No more than the maximum number of necessary decimal places will be
- output.
- The Well-known Text format is defined in the <A
- HREF="http://www.opengis.org/techno/specs.htm">OpenGIS Simple Features
- Specification for SQL</A>.
- A non-standard "LINEARRING" tag is used for LinearRings. The WKT spec does
- not define a special tag for LinearRings. The standard tag to use is
- "LINESTRING".
- </summary>
- </member>
- <member name="M:NetTopologySuite.IO.WKTWriter.ToPoint(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Generates the WKT for a <c>Point</c> specified by a <see cref="T:NetTopologySuite.Geometries.Coordinate"/>.
- </summary>
- <param name="p0">The point coordinate.</param>
- <returns>The WKT</returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKTWriter.ToLineString(NetTopologySuite.Geometries.CoordinateSequence)">
- <summary>
- Generates the WKT for a N-point <c>LineString</c> specified by a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>.
- </summary>
- <param name="seq">The sequence to write.</param>
- <returns>The WKT</returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKTWriter.ToLineString(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Generates the WKT for a <tt>LINESTRING</tt> specified by an array of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s.
- </summary>
- <param name="coord">An array of coordinates</param>
- <returns>The WKT</returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKTWriter.ToLineString(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Generates the WKT for a <c>LineString</c> specified by two <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s.
- </summary>
- <param name="p0">The first coordinate.</param>
- <param name="p1">The second coordinate.</param>
- <returns>The WKT</returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKTWriter.CreateFormatter(NetTopologySuite.Geometries.PrecisionModel)">
- <summary>
- Creates the <c>NumberFormatInfo</c> used to write <c>double</c>s
- with a sufficient number of decimal places.
- </summary>
- <param name="precisionModel">
- The <c>PrecisionModel</c> used to determine
- the number of decimal places to write.
- </param>
- <returns>
- A <c>NumberFormatInfo</c> that write <c>double</c>s
- without scientific notation.
- </returns>
- </member>
- <member name="T:NetTopologySuite.IO.WKTWriter.CheckOrdinatesFilter">
- <summary>
- A filter implementation to test if a coordinate sequence actually has meaningful values
- for an ordinate bit-pattern
- </summary>
- </member>
- <member name="M:NetTopologySuite.IO.WKTWriter.CheckOrdinatesFilter.#ctor(NetTopologySuite.Geometries.Ordinates,System.Boolean)">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.IO.WKTWriter.CheckOrdinatesFilter"/> flag.
- </summary>
- <param name="checkOrdinateFlags">
- The index for the ordinates to test.
- </param>
- <param name="alwaysEmitZWithM">
- <see langword="true"/> if <see cref="F:NetTopologySuite.Geometries.Ordinates.M"/> implies
- <see cref="F:NetTopologySuite.Geometries.Ordinates.Z"/>, <see langword="false"/> otherwise.
- </param>
- </member>
- <member name="M:NetTopologySuite.IO.WKTWriter.CheckOrdinatesFilter.Filter(NetTopologySuite.Geometries.CoordinateSequence)">
- <inheritdoc />
- </member>
- <member name="P:NetTopologySuite.IO.WKTWriter.CheckOrdinatesFilter.GeometryChanged">
- <inheritdoc />
- </member>
- <member name="P:NetTopologySuite.IO.WKTWriter.CheckOrdinatesFilter.Done">
- <inheritdoc />
- </member>
- <member name="P:NetTopologySuite.IO.WKTWriter.CheckOrdinatesFilter.OutputOrdinates">
- <summary>
- Gets the evaluated ordinate bit-pattern of ordinates with valid values masked by
- <see cref="F:NetTopologySuite.IO.WKTWriter.CheckOrdinatesFilter._checkOrdinateFlags"/>.
- </summary>
- </member>
- <member name="M:NetTopologySuite.IO.WKTWriter.#ctor">
- <summary>
- Creates an instance of this class which is writing at most 2 dimensions.
- </summary>
- </member>
- <member name="M:NetTopologySuite.IO.WKTWriter.#ctor(System.Int32)">
- <summary>
- Creates an instance of this class which is writing at most <paramref name="outputDimension"/> dimensions.
- </summary>
- </member>
- <member name="P:NetTopologySuite.IO.WKTWriter.Formatted">
- <summary>
- Gets/sets whether the output will be formatted
- </summary>
- </member>
- <member name="P:NetTopologySuite.IO.WKTWriter.MaxCoordinatesPerLine">
- <summary>
- Gets/sets the maximum number of coordinates per line written in formatted output.
- </summary>
- <remarks>If the provided coordinate number is < 0, coordinates will be written all on one line.</remarks>
- </member>
- <member name="P:NetTopologySuite.IO.WKTWriter.Tab">
- <summary>Gets/sets the tab size to use for indenting.</summary>
- <exception cref="T:System.ArgumentException">If the size is non-positive</exception>
- </member>
- <member name="P:NetTopologySuite.IO.WKTWriter.OutputOrdinates">
- <summary>
- Gets or sets the <see cref="T:NetTopologySuite.Geometries.Ordinates"/> to be written. Possible members are:
- <list type="bullet">
- <item><description><see cref="F:NetTopologySuite.Geometries.Ordinates.X"/></description></item>
- <item><description><see cref="F:NetTopologySuite.Geometries.Ordinates.Y"/></description></item>
- <item><description><see cref="F:NetTopologySuite.Geometries.Ordinates.Z"/></description></item>
- <item><description><see cref="F:NetTopologySuite.Geometries.Ordinates.M"/></description></item>
- </list>
- Values of <see cref="F:NetTopologySuite.Geometries.Ordinates.X"/> and <see cref="F:NetTopologySuite.Geometries.Ordinates.Y"/> are always assumed and
- not particularly checked for.
- </summary>
- </member>
- <member name="P:NetTopologySuite.IO.WKTWriter.PrecisionModel">
- <summary>
- Gets or sets a <see cref="P:NetTopologySuite.IO.WKTWriter.PrecisionModel"/> that should be used on the ordinates written.
- <para>
- If none/<see langword="null"/> is assigned, the precision model of the
- <see cref="P:NetTopologySuite.Geometries.Geometry.Factory"/> is used.
- </para>
- <para>
- Note: The precision model is applied to all ordinate values, not just x and y.
- </para>
- </summary>
- </member>
- <member name="M:NetTopologySuite.IO.WKTWriter.ForMicrosoftSqlServer">
- <summary>
- Creates a new instance of the <see cref="T:NetTopologySuite.IO.WKTWriter"/> class suitable for MSSQL's non-
- standard WKT format.
- </summary>
- <returns>
- A new instance of the <see cref="T:NetTopologySuite.IO.WKTWriter"/> class suitable for MSSQL's non-standard
- WKT format.
- </returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKTWriter.Write(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Converts a <c>Geometry</c> to its Well-known Text representation.
- </summary>
- <param name="geometry">A <c>Geometry</c> to process.</param>
- <returns>A Geometry Tagged Text string (see the OpenGIS Simple Features Specification).</returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKTWriter.Write(NetTopologySuite.Geometries.Geometry,System.IO.Stream)">
- <summary>
- Converts a <c>Geometry</c> to its Well-known Text representation.
- </summary>
- <param name="geometry">A <c>Geometry</c> to process.</param>
- <param name="stream">A <c>Stream</c> to write into</param>
- </member>
- <member name="M:NetTopologySuite.IO.WKTWriter.Write(NetTopologySuite.Geometries.Geometry,System.IO.TextWriter)">
- <summary>
- Converts a <c>Geometry</c> to its Well-known Text representation.
- </summary>
- <param name="geometry">A <c>Geometry</c> to process.</param>
- <param name="writer"></param>
- <returns>A "Geometry Tagged Text" string (see the OpenGIS Simple Features Specification)</returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKTWriter.WriteFormatted(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Same as <c>write</c>, but with newlines and spaces to make the
- well-known text more readable.
- </summary>
- <param name="geometry">A <c>Geometry</c> to process</param>
- <returns>
- A "Geometry Tagged Text" string (see the OpenGIS Simple
- Features Specification), with newlines and spaces.
- </returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKTWriter.WriteFormatted(NetTopologySuite.Geometries.Geometry,System.IO.TextWriter)">
- <summary>
- Same as <c>write</c>, but with newlines and spaces to make the
- well-known text more readable.
- </summary>
- <param name="geometry">A <c>Geometry</c> to process</param>
- <param name="writer"></param>
- <returns>
- A Geometry Tagged Text string (see the OpenGIS Simple
- Features Specification), with newlines and spaces.
- </returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKTWriter.WriteFormatted(NetTopologySuite.Geometries.Geometry,System.Boolean,System.IO.TextWriter,NetTopologySuite.Geometries.PrecisionModel)">
- <summary>
- Converts a <c>Geometry</c> to its Well-known Text representation.
- </summary>
- <param name="geometry">A <c>Geometry</c> to process</param>
- <param name="useFormatting">A flag indicating that the output should be formatted.</param>
- <param name="writer">the output writer to append to.</param>
- <param name="precisionModel">The precision model to use.</param>
- <returns>
- A "Geometry Tagged Text" string (see the OpenGIS Simple
- Features Specification).
- </returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKTWriter.AppendGeometryTaggedText(NetTopologySuite.Geometries.Geometry,System.Boolean,System.IO.TextWriter,NetTopologySuite.IO.OrdinateFormat)">
- <summary>
- Converts a <see cref="T:NetTopologySuite.Geometries.Geometry"/> to <Geometry Tagged Text> format, then appends
- it to the writer.
- </summary>
- <param name="geometry">the <see cref="T:NetTopologySuite.Geometries.Geometry"/> to process.</param>
- <param name="useFormatting">A flag indicating that the output should be formatted.</param>
- <param name="writer">the output writer to append to.</param>
- <param name="ordinateFormat">The format to use for writing ordinate values.</param>
- </member>
- <member name="M:NetTopologySuite.IO.WKTWriter.AppendGeometryTaggedText(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Ordinates,System.Boolean,System.Int32,System.IO.TextWriter,NetTopologySuite.IO.OrdinateFormat)">
- <summary>
- Converts a <see cref="T:NetTopologySuite.Geometries.Geometry"/> to <Geometry Tagged Text> format, then appends
- it to the writer.
- </summary>
- <param name="geometry">the <see cref="T:NetTopologySuite.Geometries.Geometry"/> to process.</param>
- <param name="outputOrdinates">A bit-pattern of ordinates to write.</param>
- <param name="useFormatting">flag indicating that the output should be formatted.</param>
- <param name="level">The indentation level</param>
- <param name="writer">the output writer to append to.</param>
- <param name="ordinateFormat">The format to use for writing ordinate values.</param>
- </member>
- <member name="M:NetTopologySuite.IO.WKTWriter.AppendPointTaggedText(NetTopologySuite.Geometries.Point,NetTopologySuite.Geometries.Ordinates,System.Boolean,System.Int32,System.IO.TextWriter,NetTopologySuite.IO.OrdinateFormat)">
- <summary>
- Converts a <c>Coordinate</c> to Point Tagged Text format,
- then appends it to the writer.
- </summary>
- <param name="point">The <c>Point</c> to process.</param>
- <param name="outputOrdinates">A bit-pattern of ordinates to write.</param>
- <param name="useFormatting">flag indicating that the output should be formatted</param>
- <param name="level">the indentation level</param>
- <param name="writer">The output writer to append to.</param>
- <param name="ordinateFormat">The format to use for writing ordinate values.</param>
- </member>
- <member name="M:NetTopologySuite.IO.WKTWriter.AppendLineStringTaggedText(NetTopologySuite.Geometries.LineString,NetTopologySuite.Geometries.Ordinates,System.Boolean,System.Int32,System.IO.TextWriter,NetTopologySuite.IO.OrdinateFormat)">
- <summary>
- Converts a <c>LineString</c> to <LineString Tagged Text
- format, then appends it to the writer.
- </summary>
- <param name="lineString">The <c>LineString</c> to process.</param>
- <param name="outputOrdinates">A bit-pattern of ordinates to write.</param>
- <param name="useFormatting">flag indicating that the output should be formatted</param>
- <param name="level">the indentation level</param>
- <param name="writer">The output writer to append to.</param>
- <param name="ordinateFormat">The format to use for writing ordinate values.</param>
- </member>
- <member name="M:NetTopologySuite.IO.WKTWriter.AppendLinearRingTaggedText(NetTopologySuite.Geometries.LinearRing,NetTopologySuite.Geometries.Ordinates,System.Boolean,System.Int32,System.IO.TextWriter,NetTopologySuite.IO.OrdinateFormat)">
- <summary>
- Converts a <c>LinearRing</c> to <LinearRing Tagged Text
- format, then appends it to the writer.
- </summary>
- <param name="linearRing">The <c>LinearRing</c> to process.</param>
- <param name="outputOrdinates">A bit-pattern of ordinates to write.</param>
- <param name="useFormatting">flag indicating that the output should be formatted</param>
- <param name="level">the indentation level</param>
- <param name="writer">The output writer to append to.</param>
- <param name="ordinateFormat">The format to use for writing ordinate values.</param>
- </member>
- <member name="M:NetTopologySuite.IO.WKTWriter.AppendPolygonTaggedText(NetTopologySuite.Geometries.Polygon,NetTopologySuite.Geometries.Ordinates,System.Boolean,System.Int32,System.IO.TextWriter,NetTopologySuite.IO.OrdinateFormat)">
- <summary>
- Converts a <c>Polygon</c> to Polygon Tagged Text format,
- then appends it to the writer.
- </summary>
- <param name="polygon">The <c>Polygon</c> to process.</param>
- <param name="outputOrdinates">A bit-pattern of ordinates to write.</param>
- <param name="useFormatting">flag indicating that the output should be formatted</param>
- <param name="level">the indentation level</param>
- <param name="writer">The output writer to append to.</param>
- <param name="ordinateFormat">The format to use for writing ordinate values.</param>
- </member>
- <member name="M:NetTopologySuite.IO.WKTWriter.AppendMultiPointTaggedText(NetTopologySuite.Geometries.MultiPoint,NetTopologySuite.Geometries.Ordinates,System.Boolean,System.Int32,System.IO.TextWriter,NetTopologySuite.IO.OrdinateFormat)">
- <summary>
- Converts a <c>MultiPoint</c> to <MultiPoint Tagged Text
- format, then appends it to the writer.
- </summary>
- <param name="multipoint">The <c>MultiPoint</c> to process.</param>
- <param name="outputOrdinates">A bit-pattern of ordinates to write.</param>
- <param name="useFormatting">flag indicating that the output should be formatted</param>
- <param name="level">the indentation level</param>
- <param name="writer">The output writer to append to.</param>
- <param name="ordinateFormat">The format to use for writing ordinate values.</param>
- </member>
- <member name="M:NetTopologySuite.IO.WKTWriter.AppendMultiLineStringTaggedText(NetTopologySuite.Geometries.MultiLineString,NetTopologySuite.Geometries.Ordinates,System.Boolean,System.Int32,System.IO.TextWriter,NetTopologySuite.IO.OrdinateFormat)">
- <summary>
- Converts a <c>MultiLineString</c> to MultiLineString Tagged
- Text format, then appends it to the writer.
- </summary>
- <param name="multiLineString">The <c>MultiLineString</c> to process.</param>
- <param name="outputOrdinates">A bit-pattern of ordinates to write.</param>
- <param name="useFormatting">flag indicating that the output should be formatted</param>
- <param name="level">the indentation level</param>
- <param name="writer">The output writer to append to.</param>
- <param name="ordinateFormat">The format to use for writing ordinate values.</param>
- </member>
- <member name="M:NetTopologySuite.IO.WKTWriter.AppendMultiPolygonTaggedText(NetTopologySuite.Geometries.MultiPolygon,NetTopologySuite.Geometries.Ordinates,System.Boolean,System.Int32,System.IO.TextWriter,NetTopologySuite.IO.OrdinateFormat)">
- <summary>
- Converts a <c>MultiPolygon</c> to MultiPolygon Tagged Text
- format, then appends it to the writer.
- </summary>
- <param name="multiPolygon">The <c>MultiPolygon</c> to process.</param>
- <param name="outputOrdinates">A bit-pattern of ordinates to write.</param>
- <param name="useFormatting">flag indicating that the output should be formatted</param>
- <param name="level">the indentation level</param>
- <param name="writer">The output writer to append to.</param>
- <param name="ordinateFormat">The format to use for writing ordinate values.</param>
- </member>
- <member name="M:NetTopologySuite.IO.WKTWriter.AppendGeometryCollectionTaggedText(NetTopologySuite.Geometries.GeometryCollection,NetTopologySuite.Geometries.Ordinates,System.Boolean,System.Int32,System.IO.TextWriter,NetTopologySuite.IO.OrdinateFormat)">
- <summary>
- Converts a <c>GeometryCollection</c> to GeometryCollection
- Tagged Text format, then appends it to the writer.
- </summary>
- <param name="geometryCollection">The <c>GeometryCollection</c> to process.</param>
- <param name="outputOrdinates">A bit-pattern of ordinates to write.</param>
- <param name="useFormatting">flag indicating that the output should be formatted</param>
- <param name="level">the indentation level</param>
- <param name="writer">The output writer to append to.</param>
- <param name="ordinateFormat">The format to use for writing ordinate values.</param>
- </member>
- <member name="M:NetTopologySuite.IO.WKTWriter.AppendCoordinate(NetTopologySuite.Geometries.CoordinateSequence,NetTopologySuite.Geometries.Ordinates,System.Int32,System.IO.TextWriter,NetTopologySuite.IO.OrdinateFormat)">
- <summary>
- Appends the i'th coordinate from the sequence to the writer
- <para>
- If the <paramref name="seq"/> has coordinates that are <see cref="M:System.Double.IsNaN(System.Double)">NaN</see>,
- these are not written, even though <see cref="F:NetTopologySuite.IO.WKTWriter._outputDimension"/> suggests this.
- </para>
- </summary>
- <param name="seq">the <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/> to process</param>
- <param name="outputOrdinates">A bit pattern of output ordinates</param>
- <param name="i">the index of the coordinate to write</param>
- <param name="writer">writer the output writer to append to</param>
- <param name="ordinateFormat">The format to use for writing ordinate values</param>
- <exception cref="T:System.IO.IOException"></exception>
- </member>
- <member name="M:NetTopologySuite.IO.WKTWriter.WriteNumber(System.Double,NetTopologySuite.IO.OrdinateFormat)">
- <summary>
- Converts a <see cref="T:System.Double" /> to a <see cref="T:System.String" />.
- </summary>
- <param name="d">The <see cref="T:System.Double" /> to convert.</param>
- <param name="ordinateFormat">A</param>
- <returns>
- The <see cref="T:System.Double" /> as a <see cref="T:System.String" />.
- </returns>
- </member>
- <member name="M:NetTopologySuite.IO.WKTWriter.AppendOrdinateText(NetTopologySuite.Geometries.Ordinates,System.IO.TextWriter)">
- <summary>
- Appends additional ordinate information. This function may
- <list type="bullet">
- <item>
- <description>
- append 'Z' if in <paramref name="outputOrdinates"/> the <see cref="F:NetTopologySuite.Geometries.Ordinates.Z"/> value is included.
- </description>
- </item>
- <item>
- <description>
- append 'M' if in <paramref name="outputOrdinates"/> the <see cref="F:NetTopologySuite.Geometries.Ordinates.M"/> value is included.
- </description>
- </item>
- <item>
- <description>
- append 'ZM' if in <paramref name="outputOrdinates"/> the <see cref="F:NetTopologySuite.Geometries.Ordinates.Z"/> and
- <see cref="F:NetTopologySuite.Geometries.Ordinates.M"/> values are included.
- </description>
- </item>
- </list>
- </summary>
- <param name="outputOrdinates">A bit-pattern of ordinates to write.</param>
- <param name="writer">the output writer to append to.</param>
- <exception cref="T:System.IO.IOException">if an error occurs while using the writer.</exception>
- </member>
- <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)">
- <summary>
- Appends all members of a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/> to the stream. Each
- <see cref="T:NetTopologySuite.Geometries.Coordinate"/> is separated from another using a colon, the ordinates of a
- <see cref="T:NetTopologySuite.Geometries.Coordinate"/> are separated by a space.
- </summary>
- <param name="seq">the <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/> to process.</param>
- <param name="outputOrdinates">A bit-pattern of ordinates to write.</param>
- <param name="useFormatting">flag indicating that.</param>
- <param name="level">the indentation level.</param>
- <param name="indentFirst">flag indicating that the first <see cref="T:NetTopologySuite.Geometries.Coordinate"/> of the sequence should be indented for better visibility.</param>
- <param name="writer">the output writer to append to.</param>
- <param name="ordinateFormat">The format to use for writing ordinate values.</param>
- </member>
- <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)">
- <summary>
- Converts a <c>Polygon</c> to Polygon Text format, then
- appends it to the writer.
- </summary>
- <param name="polygon">The <c>Polygon</c> to process.</param>
- <param name="outputOrdinates">A bit-pattern of ordinates to write.</param>
- <param name="useFormatting">flag indicating that.</param>
- <param name="level">the indentation level.</param>
- <param name="indentFirst">flag indicating that the first <see cref="T:NetTopologySuite.Geometries.Coordinate"/> of the sequence should be indented for better visibility.</param>
- <param name="writer">the output writer to append to.</param>
- <param name="ordinateFormat">The format to use for writing ordinate values.</param>
- </member>
- <member name="M:NetTopologySuite.IO.WKTWriter.AppendMultiPointText(NetTopologySuite.Geometries.MultiPoint,NetTopologySuite.Geometries.Ordinates,System.Boolean,System.Int32,System.IO.TextWriter,NetTopologySuite.IO.OrdinateFormat)">
- <summary>
- Converts a <c>MultiPoint</c> to <MultiPoint Text format, then
- appends it to the writer.
- </summary>
- <param name="multiPoint">The <c>MultiPoint</c> to process.</param>
- <param name="outputOrdinates">A bit-pattern of ordinates to write.</param>
- <param name="useFormatting">flag indicating that.</param>
- <param name="level">the indentation level.</param>
- <param name="writer">the output writer to append to.</param>
- <param name="ordinateFormat">The format to use for writing ordinate values.</param>
- </member>
- <member name="M:NetTopologySuite.IO.WKTWriter.AppendMultiLineStringText(NetTopologySuite.Geometries.MultiLineString,NetTopologySuite.Geometries.Ordinates,System.Boolean,System.Int32,System.IO.TextWriter,NetTopologySuite.IO.OrdinateFormat)">
- <summary>
- Converts a <c>MultiLineString</c> to <MultiLineString Text
- format, then appends it to the writer.
- </summary>
- <param name="multiLineString">The <c>MultiLineString</c> to process.</param>
- <param name="outputOrdinates">A bit-pattern of ordinates to write.</param>
- <param name="useFormatting">flag indicating that.</param>
- <param name="level">the indentation level.</param>
- <param name="writer">the output writer to append to.</param>
- <param name="ordinateFormat">The format to use for writing ordinate values.</param>
- </member>
- <member name="M:NetTopologySuite.IO.WKTWriter.AppendMultiPolygonText(NetTopologySuite.Geometries.MultiPolygon,NetTopologySuite.Geometries.Ordinates,System.Boolean,System.Int32,System.IO.TextWriter,NetTopologySuite.IO.OrdinateFormat)">
- <summary>
- Converts a <c>MultiPolygon</c> to <MultiPolygon Text format,
- then appends it to the writer.
- </summary>
- <param name="multiPolygon">The <c>MultiPolygon</c> to process.</param>
- <param name="outputOrdinates">A bit-pattern of ordinates to write.</param>
- <param name="useFormatting">flag indicating that.</param>
- <param name="level">the indentation level.</param>
- <param name="writer">the output writer to append to.</param>
- <param name="ordinateFormat">The format to use for writing ordinate values.</param>
- </member>
- <member name="M:NetTopologySuite.IO.WKTWriter.AppendGeometryCollectionText(NetTopologySuite.Geometries.GeometryCollection,NetTopologySuite.Geometries.Ordinates,System.Boolean,System.Int32,System.IO.TextWriter,NetTopologySuite.IO.OrdinateFormat)">
- <summary>
- Converts a <c>GeometryCollection</c> to GeometryCollectionText
- format, then appends it to the writer.
- </summary>
- <param name="geometryCollection">The <c>GeometryCollection</c> to process.</param>
- <param name="outputOrdinates"></param>
- <param name="useFormatting">flag indicating that.</param>
- <param name="level">the indentation level.</param>
- <param name="writer">the output writer to append to.</param>
- <param name="ordinateFormat">The format to use for writing ordinate values.</param>
- </member>
- <member name="T:NetTopologySuite.LinearReferencing.ExtractLineByLocation">
- <summary>
- Extracts the subline of a linear <see cref="T:NetTopologySuite.Geometries.Geometry" /> between
- two <see cref="T:NetTopologySuite.LinearReferencing.LinearLocation" />s on the line.
- </summary>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.ExtractLineByLocation.Extract(NetTopologySuite.Geometries.Geometry,NetTopologySuite.LinearReferencing.LinearLocation,NetTopologySuite.LinearReferencing.LinearLocation)">
- <summary>
- Computes the subline of a <see cref="T:NetTopologySuite.Geometries.LineString" /> between
- two <see cref="T:NetTopologySuite.LinearReferencing.LinearLocation"/>s on the line.
- If the start location is after the end location,
- the computed linear geometry has reverse orientation to the input line.
- </summary>
- <param name="line">The line to use as the baseline.</param>
- <param name="start">The start location.</param>
- <param name="end">The end location.</param>
- <returns>The extracted subline.</returns>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.ExtractLineByLocation.#ctor(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.LinearReferencing.ExtractLineByLocation"/> class.
- </summary>
- <param name="line"></param>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.ExtractLineByLocation.Extract(NetTopologySuite.LinearReferencing.LinearLocation,NetTopologySuite.LinearReferencing.LinearLocation)">
- <summary>
- Extracts a subline of the input.
- If <paramref name="end" /> is minor that <paramref name="start" />,
- the linear geometry computed will be reversed.
- </summary>
- <param name="start">The start location.</param>
- <param name="end">The end location.</param>
- <returns>A linear geometry.</returns>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.ExtractLineByLocation.Reverse(NetTopologySuite.Geometries.Geometry)">
- <summary>
-
- </summary>
- <param name="linear"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.ExtractLineByLocation.ComputeLinear(NetTopologySuite.LinearReferencing.LinearLocation,NetTopologySuite.LinearReferencing.LinearLocation)">
- <summary>
- Assumes input is valid
- (e.g. <paramref name="start" /> minor or equals to <paramref name="end" />).
- </summary>
- <param name="start"></param>
- <param name="end"></param>
- <returns></returns>
- </member>
- <member name="T:NetTopologySuite.LinearReferencing.LengthIndexedLine">
- <summary>
- Supports linear referencing along a linear <see cref="T:NetTopologySuite.Geometries.Geometry" />
- using the length along the line as the index.
- Negative length values are taken as measured in the reverse direction
- from the end of the geometry.
- Out-of-range index values are handled by clamping
- them to the valid range of values.
- Non-simple lines (i.e. which loop back to cross or touch
- themselves) are supported.
- </summary>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LengthIndexedLine.#ctor(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Constructs an object which allows a linear <see cref="T:NetTopologySuite.Geometries.Geometry" />
- to be linearly referenced using length as an index.
- </summary>
- <param name="linearGeom">The linear geometry to reference along.</param>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LengthIndexedLine.ExtractPoint(System.Double)">
- <summary>
- Computes the <see cref="T:NetTopologySuite.Geometries.Coordinate" /> for the point
- on the line at the given index.
- If the index is out of range the first or last point on the
- line will be returned.
- </summary>
- <remarks>
- The Z-ordinate of the computed point will be interpolated from
- the Z-ordinates of the line segment containing it, if they exist.
- </remarks>
- <param name="index">The index of the desired point.</param>
- <returns>The <see cref="T:NetTopologySuite.Geometries.Coordinate" /> at the given index.</returns>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LengthIndexedLine.ExtractPoint(System.Double,System.Double)">
- <summary>
- Computes the <see cref="T:NetTopologySuite.Geometries.Coordinate"/> for the point on the line at the given index, offset by the given distance.
- </summary>
- <remarks>
- If the index is out of range the first or last point on the line will be returned.
- The computed point is offset to the left of the line if the offset distance is
- positive, to the right if negative.
- The Z-ordinate of the computed point will be interpolated from the Z-ordinates of the line segment containing it, if they exist.
- </remarks>
- <param name="index">The index of the desired point</param>
- <param name="offsetDistance">The distance the point is offset from the segment (positive is to the left, negative is to the right)</param>
- <returns>The Coordinate at the given index</returns>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LengthIndexedLine.ExtractLine(System.Double,System.Double)">
- <summary>
- Computes the <see cref="T:NetTopologySuite.Geometries.LineString" /> for the interval
- on the line between the given indices.
- If the <paramref name="endIndex" /> lies before the <paramref name="startIndex" />,
- the computed geometry is reversed.
- </summary>
- <param name="startIndex"></param>
- <param name="endIndex"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LengthIndexedLine.LocationOf(System.Double)">
- <summary>
-
- </summary>
- <param name="index"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LengthIndexedLine.IndexOf(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Computes the minimum index for a point on the line.
- If the line is not simple (i.e. loops back on itself)
- a single point may have more than one possible index.
- In this case, the smallest index is returned.
- The supplied point does not necessarily have to lie precisely
- on the line, but if it is far from the line the accuracy and
- performance of this function is not guaranteed.
- Use <see cref="M:NetTopologySuite.LinearReferencing.LengthIndexedLine.Project(NetTopologySuite.Geometries.Coordinate)"/> to compute a guaranteed result for points
- which may be far from the line.
- </summary>
- <param name="pt">A point on the line.</param>
- <returns>The minimum index of the point.</returns>
- <seealso cref="M:NetTopologySuite.LinearReferencing.LengthIndexedLine.Project(NetTopologySuite.Geometries.Coordinate)"/>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LengthIndexedLine.IndexOfAfter(NetTopologySuite.Geometries.Coordinate,System.Double)">
- <summary>
- Finds the index for a point on the line
- which is greater than the given index.
- If no such index exists, returns <paramref name="minIndex" />.
- This method can be used to determine all indexes for
- a point which occurs more than once on a non-simple line.
- It can also be used to disambiguate cases where the given point lies
- slightly off the line and is equidistant from two different
- points on the line.
- The supplied point does not necessarily have to lie precisely
- on the line, but if it is far from the line the accuracy and
- performance of this function is not guaranteed.
- Use <see cref="M:NetTopologySuite.LinearReferencing.LengthIndexedLine.Project(NetTopologySuite.Geometries.Coordinate)" /> to compute a guaranteed result for points
- which may be far from the line.
- </summary>
- <param name="pt">A point on the line.</param>
- <param name="minIndex">The value the returned index must be greater than.</param>
- <returns>The index of the point greater than the given minimum index.</returns>
- <seealso cref="M:NetTopologySuite.LinearReferencing.LengthIndexedLine.Project(NetTopologySuite.Geometries.Coordinate)"/>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LengthIndexedLine.IndicesOf(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes the indices for a subline of the line.
- (The subline must conform to the line; that is,
- all vertices in the subline (except possibly the first and last)
- must be vertices of the line and occur in the same order).
- </summary>
- <param name="subLine">A subLine of the line.</param>
- <returns>A pair of indices for the start and end of the subline..</returns>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LengthIndexedLine.Project(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Computes the index for the closest point on the line to the given point.
- If more than one point has the closest distance the first one along the line is returned.
- (The point does not necessarily have to lie precisely on the line.)
- </summary>
- <param name="pt"></param>
- <returns></returns>
- </member>
- <member name="P:NetTopologySuite.LinearReferencing.LengthIndexedLine.StartIndex">
- <summary>
- Returns the index of the start of the line.
- </summary>
- </member>
- <member name="P:NetTopologySuite.LinearReferencing.LengthIndexedLine.EndIndex">
- <summary>
- Returns the index of the end of the line.
- </summary>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LengthIndexedLine.IsValidIndex(System.Double)">
- <summary>
- Tests whether an index is in the valid index range for the line.
- </summary>
- <param name="index">The index to test.</param>
- <returns><c>true</c> if the index is in the valid range.</returns>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LengthIndexedLine.ClampIndex(System.Double)">
- <summary>
- Computes a valid index for this line
- by clamping the given index to the valid range of index values
- </summary>
- <returns>A valid index value</returns>
- </member>
- <member name="T:NetTopologySuite.LinearReferencing.LengthIndexOfPoint">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LengthIndexOfPoint.#ctor(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.LinearReferencing.LengthIndexOfPoint"/> class.
- </summary>
- <param name="linearGeom">A linear geometry.</param>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LengthIndexOfPoint.IndexOf(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Find the nearest location along a linear <see cref="T:NetTopologySuite.Geometries.Geometry"/> to a given point.
- </summary>
- <param name="inputPt">The coordinate to locate.</param>
- <returns>The location of the nearest point.</returns>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LengthIndexOfPoint.IndexOfAfter(NetTopologySuite.Geometries.Coordinate,System.Double)">
- <summary>
- Finds the nearest index along the linear <see cref="T:NetTopologySuite.Geometries.Geometry" />
- to a given <see cref="T:NetTopologySuite.Geometries.Coordinate"/> after the specified minimum index.
- If possible the location returned will be strictly
- greater than the <paramref name="minIndex" />.
- If this is not possible, the value returned
- will equal <paramref name="minIndex" />.
- (An example where this is not possible is when
- <paramref name="minIndex" /> = [end of line] ).
- </summary>
- <param name="inputPt">The coordinate to locate.</param>
- <param name="minIndex">The minimum location for the point location.</param>
- <returns>The location of the nearest point.</returns>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LengthIndexOfPoint.IndexOfFromStart(NetTopologySuite.Geometries.Coordinate,System.Double)">
- <summary>
-
- </summary>
- <param name="inputPt"></param>
- <param name="minIndex"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LengthIndexOfPoint.SegmentNearestMeasure(NetTopologySuite.Geometries.LineSegment,NetTopologySuite.Geometries.Coordinate,System.Double)">
- <summary>
-
- </summary>
- <param name="seg"></param>
- <param name="inputPt"></param>
- <param name="segmentStartMeasure"></param>
- <returns></returns>
- </member>
- <member name="T:NetTopologySuite.LinearReferencing.LengthLocationMap">
- <summary>
- Computes the <see cref="T:NetTopologySuite.LinearReferencing.LinearLocation" /> for a given length
- along a linear <see cref="T:NetTopologySuite.Geometries.Geometry" />
- Negative lengths are measured in reverse from end of the linear geometry.
- Out-of-range values are clamped.
- </summary>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LengthLocationMap.GetLocation(NetTopologySuite.Geometries.Geometry,System.Double)">
- <summary>
- Computes the <see cref="T:NetTopologySuite.LinearReferencing.LinearLocation" /> for a
- given length along a linear <see cref="T:NetTopologySuite.Geometries.Geometry" />.
- </summary>
- <param name="linearGeom">The linear geometry to use.</param>
- <param name="length">The length index of the location.</param>
- <returns>The <see cref="T:NetTopologySuite.LinearReferencing.LinearLocation" /> for the length.</returns>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LengthLocationMap.GetLocation(NetTopologySuite.Geometries.Geometry,System.Double,System.Boolean)">
- <summary>
- Computes the <see cref="T:NetTopologySuite.LinearReferencing.LinearLocation"/> for a
- given length along a linear <see cref="T:NetTopologySuite.Geometries.Geometry"/>,
- with control over how the location
- is resolved at component endpoints.
- </summary>
- <param name="linearGeom">The linear geometry to use</param>
- <param name="length">The length index of the location</param>
- <param name="resolveLower">If true lengths are resolved to the lowest possible index</param>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LengthLocationMap.GetLength(NetTopologySuite.Geometries.Geometry,NetTopologySuite.LinearReferencing.LinearLocation)">
- <summary>
- Computes the length for a given <see cref="T:NetTopologySuite.LinearReferencing.LinearLocation" />
- on a linear <see cref="T:NetTopologySuite.Geometries.Geometry" />.
- </summary>
- <param name="linearGeom">The linear geometry to use.</param>
- <param name="loc">The <see cref="T:NetTopologySuite.LinearReferencing.LinearLocation" /> index of the location.</param>
- <returns>The length for the <see cref="T:NetTopologySuite.LinearReferencing.LinearLocation" />.</returns>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LengthLocationMap.#ctor(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.LinearReferencing.LengthLocationMap"/> class.
- </summary>
- <param name="linearGeom">A linear geometry.</param>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LengthLocationMap.GetLocation(System.Double)">
- <summary>
- Compute the <see cref="T:NetTopologySuite.LinearReferencing.LinearLocation" /> corresponding to a length.
- Negative lengths are measured in reverse from end of the linear geometry.
- Out-of-range values are clamped.
- Ambiguous indexes are resolved to the lowest possible location value.
- </summary>
- <param name="length">The length index.</param>
- <returns>The corresponding <see cref="T:NetTopologySuite.LinearReferencing.LinearLocation" />.</returns>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LengthLocationMap.GetLocation(System.Double,System.Boolean)">
- <summary>
- Compute the <see cref="T:NetTopologySuite.LinearReferencing.LinearLocation"/> corresponding to a length.
- Negative lengths are measured in reverse from end of the linear geometry.
- Out-of-range values are clamped.
- Ambiguous indexes are resolved to the lowest or highest possible location value,
- depending on the value of <tt>resolveLower</tt>
- </summary>
- <param name="length">The length index</param>
- <param name="resolveLower"></param>
- <returns>The corresponding <see cref="T:NetTopologySuite.LinearReferencing.LinearLocation" />.</returns>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LengthLocationMap.GetLocationForward(System.Double)">
- <summary>
-
- </summary>
- <param name="length"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LengthLocationMap.GetLength(NetTopologySuite.LinearReferencing.LinearLocation)">
- <summary>
-
- </summary>
- <param name="loc"></param>
- <returns></returns>
- </member>
- <member name="T:NetTopologySuite.LinearReferencing.LinearGeometryBuilder">
- <summary>
- Builds a linear geometry (<see cref="T:NetTopologySuite.Geometries.LineString" /> or <see cref="T:NetTopologySuite.Geometries.MultiLineString" />)
- incrementally (point-by-point).
- </summary>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LinearGeometryBuilder.#ctor(NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
- Creates an instance of this class.
- </summary>
- <param name="geomFact">The geometry factory to use.</param>
- </member>
- <member name="P:NetTopologySuite.LinearReferencing.LinearGeometryBuilder.FixInvalidLines">
- <summary>
- Allows invalid lines to be fixed rather than causing Exceptions.
- An invalid line is one which has only one unique point.
- </summary>
- </member>
- <member name="P:NetTopologySuite.LinearReferencing.LinearGeometryBuilder.IgnoreInvalidLines">
- <summary>
- Allows invalid lines to be ignored rather than causing Exceptions.
- An invalid line is one which has only one unique point.
- </summary>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LinearGeometryBuilder.Add(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Adds a point to the current line.
- </summary>
- <param name="pt">The <see cref="T:NetTopologySuite.Geometries.Coordinate" /> to add.</param>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LinearGeometryBuilder.Add(NetTopologySuite.Geometries.Coordinate,System.Boolean)">
- <summary>
- Adds a point to the current line.
- </summary>
- <param name="pt">The <see cref="T:NetTopologySuite.Geometries.Coordinate" /> to add.</param>
- <param name="allowRepeatedPoints">If <c>true</c>, allows the insertions of repeated points.</param>
- </member>
- <member name="P:NetTopologySuite.LinearReferencing.LinearGeometryBuilder.LastCoordinate">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LinearGeometryBuilder.EndLine">
- <summary>
- Terminate the current <see cref="T:NetTopologySuite.Geometries.LineString" />.
- </summary>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LinearGeometryBuilder.ValidCoordinateSequence(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
-
- </summary>
- <param name="pts"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LinearGeometryBuilder.GetGeometry">
- <summary>
- Builds and returns the <see cref="T:NetTopologySuite.Geometries.Geometry" />.
- </summary>
- <returns></returns>
- </member>
- <member name="T:NetTopologySuite.LinearReferencing.LinearIterator">
- <summary>
- An iterator over the components and coordinates of a linear geometry
- (<see cref="T:NetTopologySuite.Geometries.LineString" />s and <see cref="T:NetTopologySuite.Geometries.MultiLineString" />s.
- </summary>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LinearIterator.SegmentEndVertexIndex(NetTopologySuite.LinearReferencing.LinearLocation)">
- <summary>
-
- </summary>
- <param name="loc"></param>
- <returns></returns>
- </member>
- <member name="F:NetTopologySuite.LinearReferencing.LinearIterator._currentLine">
- <summary>
- Invariant: currentLine <> null if the iterator is pointing at a valid coordinate
- </summary>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LinearIterator.#ctor(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Creates an iterator initialized to the start of a linear <see cref="T:NetTopologySuite.Geometries.Geometry" />.
- </summary>
- <param name="linearGeom">The linear geometry to iterate over.</param>
- <exception cref="T:System.ArgumentException"> if <paramref name="linearGeom"/> is not <see cref="T:NetTopologySuite.Geometries.ILineal"/></exception>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LinearIterator.#ctor(NetTopologySuite.Geometries.Geometry,NetTopologySuite.LinearReferencing.LinearLocation)">
- <summary>
- Creates an iterator starting at a <see cref="T:NetTopologySuite.LinearReferencing.LinearLocation" /> on a linear <see cref="T:NetTopologySuite.Geometries.Geometry" />.
- </summary>
- <param name="linearGeom">The linear geometry to iterate over.</param>
- <param name="start">The location to start at.</param>
- <exception cref="T:System.ArgumentException"> if <paramref name="linearGeom"/> is not <see cref="T:NetTopologySuite.Geometries.ILineal"/></exception>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LinearIterator.#ctor(NetTopologySuite.Geometries.Geometry,System.Int32,System.Int32)">
- <summary>
- Creates an iterator starting at
- a component and vertex in a linear <see cref="T:NetTopologySuite.Geometries.Geometry" />.
- </summary>
- <param name="linearGeom">The linear geometry to iterate over.</param>
- <param name="componentIndex">The component to start at.</param>
- <param name="vertexIndex">The vertex to start at.</param>
- <exception cref="T:System.ArgumentException"> if <paramref name="linearGeom"/> is not <see cref="T:NetTopologySuite.Geometries.ILineal"/></exception>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LinearIterator.LoadCurrentLine">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LinearIterator.HasNext">
- <summary>
- Tests whether there are any vertices left to iterator over.
- Specifically, <c>HasNext()</c> returns <tt>true</tt> if the
- current state of the iterator represents a valid location
- on the linear geometry.
- </summary>
- <returns><c>true</c> if there are more vertices to scan.</returns>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LinearIterator.Next">
- <summary>
- Jump to the next element of the iteration.
- </summary>
- </member>
- <member name="P:NetTopologySuite.LinearReferencing.LinearIterator.IsEndOfLine">
- <summary>
- Checks whether the iterator cursor is pointing to the
- endpoint of a component <see cref="T:NetTopologySuite.Geometries.LineString"/>.
- </summary>
- </member>
- <member name="P:NetTopologySuite.LinearReferencing.LinearIterator.ComponentIndex">
- <summary>
- The component index of the vertex the iterator is currently at.
- </summary>
- </member>
- <member name="P:NetTopologySuite.LinearReferencing.LinearIterator.VertexIndex">
- <summary>
- The vertex index of the vertex the iterator is currently at.
- </summary>
- </member>
- <member name="P:NetTopologySuite.LinearReferencing.LinearIterator.Line">
- <summary>
- Gets the <see cref="T:NetTopologySuite.Geometries.LineString" /> component the iterator is current at.
- </summary>
- </member>
- <member name="P:NetTopologySuite.LinearReferencing.LinearIterator.SegmentStart">
- <summary>
- Gets the first <see cref="T:NetTopologySuite.Geometries.Coordinate" /> of the current segment
- (the coordinate of the current vertex).
- </summary>
- </member>
- <member name="P:NetTopologySuite.LinearReferencing.LinearIterator.SegmentEnd">
- <summary>
- Gets the second <see cref="T:NetTopologySuite.Geometries.Coordinate" /> of the current segment
- (the coordinate of the next vertex).
- If the iterator is at the end of a line, <c>null</c> is returned.
- </summary>
- </member>
- <member name="T:NetTopologySuite.LinearReferencing.LinearLocation">
- <summary>
- Represents a location along a <see cref="T:NetTopologySuite.Geometries.LineString" /> or <see cref="T:NetTopologySuite.Geometries.MultiLineString" />.<br/>
- The referenced geometry is not maintained within this location,
- but must be provided for operations which require it.
- Various methods are provided to manipulate the location value
- and query the geometry it references.
- </summary>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LinearLocation.GetEndLocation(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Gets a location which refers to the end of a linear <see cref="T:NetTopologySuite.Geometries.Geometry" />.
- </summary>
- <param name="linear">The linear geometry.</param>
- <returns>A new <c>LinearLocation</c>.</returns>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LinearLocation.PointAlongSegmentByFraction(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,System.Double)">
- <summary>
- Computes the <see cref="T:NetTopologySuite.Geometries.Coordinate" /> of a point a given fraction
- along the line segment <c>(p0, p1)</c>.
- </summary>
- <remarks>
- <para>
- If the fraction is greater than 1.0 the last
- point of the segment is returned.</para>
- <para>If the fraction is less than or equal to 0.0 the first point
- of the segment is returned.</para>
- <para>
- The Z ordinate is interpolated from the Z-ordinates of the given points,
- if they are specified.</para>
- </remarks>
- <param name="p0">The first point of the line segment.</param>
- <param name="p1">The last point of the line segment.</param>
- <param name="fraction">The length to the desired point.</param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LinearLocation.#ctor">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.LinearReferencing.LinearLocation"/> class:
- creates a location referring to the start of a linear geometry.
- </summary>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LinearLocation.#ctor(System.Int32,System.Double)">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.LinearReferencing.LinearLocation"/> class:
- creates a location referring to the start of a linear geometry.
- </summary>
- <param name="segmentIndex">Index of the segment.</param>
- <param name="segmentFraction">The segment fraction.</param>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LinearLocation.#ctor(System.Int32,System.Int32,System.Double)">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.LinearReferencing.LinearLocation"/> class:
- creates a location referring to the start of a linear geometry.
- </summary>
- <param name="componentIndex">Index of the component.</param>
- <param name="segmentIndex">Index of the segment.</param>
- <param name="segmentFraction">The segment fraction.</param>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LinearLocation.#ctor(System.Int32,System.Int32,System.Double,System.Boolean)">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.LinearReferencing.LinearLocation"/> class:
- creates a location referring to the start of a linear geometry.
- </summary>
- <param name="componentIndex">Index of the component.</param>
- <param name="segmentIndex">Index of the segment.</param>
- <param name="segmentFraction">The segment fraction.</param>
- <param name="normalize">If <c>true</c>, ensures the individual values are locally valid.</param>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LinearLocation.#ctor(NetTopologySuite.LinearReferencing.LinearLocation)">
- <summary>
- Creates a new location equal to a given one.
- </summary>
- <param name="loc">A linear location</param>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LinearLocation.Normalize">
- <summary>
- Ensures the individual values are locally valid.
- Does not ensure that the indexes are valid for
- a particular linear geometry.
- </summary>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LinearLocation.Clamp(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Ensures the indexes are valid for a given linear <see cref="T:NetTopologySuite.Geometries.Geometry" />.
- </summary>
- <param name="linear">A linear geometry.</param>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LinearLocation.SnapToVertex(NetTopologySuite.Geometries.Geometry,System.Double)">
- <summary>
- Snaps the value of this location to
- the nearest vertex on the given linear <see cref="T:NetTopologySuite.Geometries.Geometry" />,
- if the vertex is closer than <paramref name="minDistance" />.
- </summary>
- <param name="linearGeom">A linear geometry.</param>
- <param name="minDistance">The minimum allowable distance to a vertex.</param>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LinearLocation.GetSegmentLength(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Gets the length of the segment in the given
- Geometry containing this location.
- </summary>
- <param name="linearGeom">A linear geometry.</param>
- <returns>The length of the segment.</returns>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LinearLocation.SetToEnd(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Sets the value of this location to
- refer to the end of a linear geometry.
- </summary>
- <param name="linear">The linear geometry to use to set the end.</param>
- </member>
- <member name="P:NetTopologySuite.LinearReferencing.LinearLocation.ComponentIndex">
- <summary>
- Gets the component index for this location.
- </summary>
- </member>
- <member name="P:NetTopologySuite.LinearReferencing.LinearLocation.SegmentIndex">
- <summary>
- Gets the segment index for this location.
- </summary>
- </member>
- <member name="P:NetTopologySuite.LinearReferencing.LinearLocation.SegmentFraction">
- <summary>
- Gets the segment fraction for this location.
- </summary>
- </member>
- <member name="P:NetTopologySuite.LinearReferencing.LinearLocation.IsVertex">
- <summary>
- Tests whether this location refers to a vertex:
- returns <c>true</c> if the location is a vertex.
- </summary>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LinearLocation.GetCoordinate(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Gets the <see cref="T:NetTopologySuite.Geometries.Coordinate" /> along the
- given linear <see cref="T:NetTopologySuite.Geometries.Geometry" /> which is
- referenced by this location.
- </summary>
- <param name="linearGeom">A linear geometry.</param>
- <returns>The <see cref="T:NetTopologySuite.Geometries.Coordinate" /> at the location.</returns>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LinearLocation.GetSegment(NetTopologySuite.Geometries.Geometry)">
- <summary>
- 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.
- </summary>
- <param name="linearGeom">A linear geometry</param>
- <returns>the <c>LineSegment</c> containing the location</returns>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LinearLocation.IsValid(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests whether this location refers to a valid
- location on the given linear <see cref="T:NetTopologySuite.Geometries.Geometry" />.
- </summary>
- <param name="linearGeom">A linear geometry.</param>
- <returns><c>true</c> if this location is valid.</returns>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LinearLocation.CompareTo(System.Object)">
- <summary>
- Compares the current instance with another object of the same type.
- </summary>
- <param name="obj">
- The <c>LineStringLocation</c> with which this
- <c>Coordinate</c> is being compared.
- </param>
- <returns>
- A negative integer, zero, or a positive integer as this
- <c>LineStringLocation</c> is less than, equal to,
- or greater than the specified <c>LineStringLocation</c>.
- </returns>
- <exception cref="T:System.ArgumentException">
- <paramref name="obj" /> is not the same type as this instance.
- </exception>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LinearLocation.CompareTo(NetTopologySuite.LinearReferencing.LinearLocation)">
- <summary>
- Compares the current instance with another object of the same type.
- </summary>
- <param name="other">
- The <c>LineStringLocation</c> with which this
- <c>Coordinate</c> is being compared.
- </param>
- <returns>
- A negative integer, zero, or a positive integer as this
- <c>LineStringLocation</c> is less than, equal to,
- or greater than the specified <c>LineStringLocation</c>.
- </returns>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LinearLocation.CompareLocationValues(System.Int32,System.Int32,System.Double)">
- <summary>
- Compares this object with the specified index values for order.
- </summary>
- <param name="componentIndex1">The component index.</param>
- <param name="segmentIndex1">The segment index.</param>
- <param name="segmentFraction1">The segment fraction.</param>
- <returns>
- A negative integer, zero, or a positive integer as this <c>LineStringLocation</c>
- is less than, equal to, or greater than the specified locationValues.
- </returns>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LinearLocation.CompareLocationValues(System.Int32,System.Int32,System.Double,System.Int32,System.Int32,System.Double)">
- <summary>
- Compares two sets of location values for order.
- </summary>
- <param name="componentIndex0">The first component index.</param>
- <param name="segmentIndex0">The first segment index.</param>
- <param name="segmentFraction0">The first segment fraction.</param>
- <param name="componentIndex1">The second component index.</param>
- <param name="segmentIndex1">The second segment index.</param>
- <param name="segmentFraction1">The second segment fraction.</param>
- <returns>
- A negative integer, zero, or a positive integer
- as the first set of location values is less than, equal to,
- or greater than the second set of locationValues.
- </returns>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LinearLocation.IsOnSameSegment(NetTopologySuite.LinearReferencing.LinearLocation)">
- <summary>
- Tests whether two locations are on the same segment in the parent <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
- </summary>
- <param name="loc">A location on the same geometry</param>
- <returns><c>true</c> if the locations are on the same segment of the parent geometry</returns>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LinearLocation.IsEndpoint(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests whether this location is an endpoint of
- the linear component it refers to.
- </summary>
- <param name="linearGeom">The linear geometry referenced by this location</param>
- <returns>True if the location is a component endpoint</returns>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LinearLocation.ToLowest(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Converts a linear location to the lowest equivalent location index.
- The lowest index has the lowest possible component and segment indices.
- Specifically:
- * if the location point is an endpoint, a location value is returned as (nseg-1, 1.0)
- * if the location point is ambiguous (i.e. an endpoint and a startpoint), the lowest endpoint location is returned
- If the location index is already the lowest possible value, the original location is returned.
- </summary>
- <param name="linearGeom">The linear geometry referenced by this location.</param>
- <returns>The lowest equivalent location.</returns>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LinearLocation.ToString">
- <inheritdoc cref="M:System.Object.ToString"/>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LinearLocation.NumSegments(NetTopologySuite.Geometries.LineString)">
- <summary>
- Gets the count of the number of line segments
- in a <see cref="T:NetTopologySuite.Geometries.LineString"/>.
- This is one less than the number of coordinates.
- </summary>
- <param name="line">A LineString</param>
- <returns>The number of segments</returns>
- </member>
- <member name="T:NetTopologySuite.LinearReferencing.LocationIndexedLine">
- <summary>
- Supports linear referencing along a linear <see cref="T:NetTopologySuite.Geometries.Geometry" />
- using <see cref="T:NetTopologySuite.LinearReferencing.LinearLocation" />s as the index.
- </summary>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LocationIndexedLine.#ctor(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Constructs an object which allows linear referencing along
- a given linear <see cref="T:NetTopologySuite.Geometries.Geometry" />.
- </summary>
- <param name="linearGeom">The linear geometry to reference alo</param>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LocationIndexedLine.ExtractPoint(NetTopologySuite.LinearReferencing.LinearLocation)">
- <summary>
- Computes the <see cref="T:NetTopologySuite.Geometries.Coordinate" />for the point on the line at the given index.
- If the <paramref name="index" /> is out of range,
- the first or last point on the line will be returned.
- </summary>
- <remarks>
- The Z-ordinate of the computed point will be interpolated from
- the Z-ordinates of the line segment containing it, if they exist.
- </remarks>
- <param name="index">The index of the desired point.</param>
- <returns>The <see cref="T:NetTopologySuite.Geometries.Coordinate" /> at the given index.</returns>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LocationIndexedLine.ExtractPoint(NetTopologySuite.LinearReferencing.LinearLocation,System.Double)">
- <summary>
- Computes the <see cref="T:NetTopologySuite.Geometries.Coordinate"/> for the point
- on the line at the given index, offset by the given distance.
- If the index is out of range the first or last point on the
- line will be returned.<para/>
- The computed point is offset to the left of the line if the offset distance is
- positive, to the right if negative.<para/>
- The Z-ordinate of the computed point will be interpolated from
- the Z-ordinates of the line segment containing it, if they exist.
- </summary>
- <param name="index">The index of the desired point</param>
- <param name="offsetDistance">The distance the point is offset from the segment
- (positive is to the left, negative is to the right)</param>
- <returns>The Coordinate at the given index</returns>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LocationIndexedLine.ExtractPoint(System.Double,System.Double)">
- <summary>
- Computes the <see cref="T:NetTopologySuite.Geometries.Coordinate"/> for the point on the line at the given index, offset by the given distance.
- </summary>
- <remarks>
- If the index is out of range the first or last point on the line will be returned.
- The computed point is offset to the left of the line if the offset distance is
- positive, to the right if negative.
- The Z-ordinate of the computed point will be interpolated from the Z-ordinates of the line segment containing it, if they exist.
- </remarks>
- <param name="index">The index of the desired point</param>
- <param name="offsetDistance">The distance the point is offset from the segment (positive is to the left, negative is to the right)</param>
- <returns>The Coordinate at the given index</returns>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LocationIndexedLine.ExtractLine(NetTopologySuite.LinearReferencing.LinearLocation,NetTopologySuite.LinearReferencing.LinearLocation)">
- <summary>
- Computes the <see cref="T:NetTopologySuite.Geometries.LineString" /> for the interval
- on the line between the given indices.
- If the start location is after the end location,
- the computed linear geometry has reverse orientation to the input line.
- </summary>
- <param name="startIndex">The index of the start of the interval.</param>
- <param name="endIndex">The index of the end of the interval.</param>
- <returns>The linear interval between the indices.</returns>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LocationIndexedLine.IndexOf(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Computes the index for a given point on the line.
- The supplied point does not necessarily have to lie precisely
- on the line, but if it is far from the line the accuracy and
- performance of this function is not guaranteed.
- Use <see cref="M:NetTopologySuite.LinearReferencing.LocationIndexedLine.Project(NetTopologySuite.Geometries.Coordinate)" /> to compute a guaranteed result for points
- which may be far from the line.
- </summary>
- <param name="pt">A point on the line.</param>
- <returns>The index of the point.</returns>
- <seealso cref="M:NetTopologySuite.LinearReferencing.LocationIndexedLine.Project(NetTopologySuite.Geometries.Coordinate)"/>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LocationIndexedLine.IndicesOf(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes the indices for a subline of the line.
- (The subline must conform to the line; that is,
- all vertices in the subline (except possibly the first and last)
- must be vertices of the line and occur in the same order).
- </summary>
- <param name="subLine">A subLine of the line.</param>
- <returns>A pair of indices for the start and end of the subline.</returns>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LocationIndexedLine.IndexOfAfter(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.LinearReferencing.LinearLocation)">
- <summary>
- Finds the index for a point on the line which is greater than the given index.
- If no such index exists, returns <paramref name="minIndex" />.
- </summary>
- <remarks>
- <para>
- This method can be used to determine all indexes for
- a point which occurs more than once on a non-simple line.
- It can also be used to disambiguate cases where the given point lies
- slightly off the line and is equidistant from two different
- points on the line.
- </para>
- <para>
- The supplied point does not <i>necessarily</i> have to lie precisely
- on the line, but if it is far from the line the accuracy and
- performance of this function is not guaranteed.
- Use <see cref="M:NetTopologySuite.LinearReferencing.LocationIndexedLine.Project(NetTopologySuite.Geometries.Coordinate)"/> to compute a guaranteed result for points
- which may be far from the line.
- </para>
- </remarks>
- <param name="pt">A point on the line</param>
- <param name="minIndex">The value the returned index must be greater than</param>
- <returns>The index of the point greater than the given minimum index</returns>
- <seealso cref="M:NetTopologySuite.LinearReferencing.LocationIndexedLine.Project(NetTopologySuite.Geometries.Coordinate)"/>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LocationIndexedLine.Project(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Computes the index for the closest point on the line to the given point.
- If more than one point has the closest distance the first one along the line is returned.
- (The point does not necessarily have to lie precisely on the line.)
- </summary>
- <param name="pt">A point on the line.</param>
- <returns>The index of the point.</returns>
- </member>
- <member name="P:NetTopologySuite.LinearReferencing.LocationIndexedLine.StartIndex">
- <summary>
- Returns the index of the start of the line.
- </summary>
- </member>
- <member name="P:NetTopologySuite.LinearReferencing.LocationIndexedLine.EndIndex">
- <summary>
- Returns the index of the end of the line.
- </summary>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LocationIndexedLine.IsValidIndex(NetTopologySuite.LinearReferencing.LinearLocation)">
- <summary>
- Tests whether an index is in the valid index range for the line.
- </summary>
- <param name="index">The index to test.</param>
- <returns><c>true</c> if the index is in the valid range.</returns>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LocationIndexedLine.ClampIndex(NetTopologySuite.LinearReferencing.LinearLocation)">
- <summary>
- Computes a valid index for this line by clamping
- the given index to the valid range of index values.
- </summary>
- <param name="index"></param>
- <returns>A valid index value.</returns>
- </member>
- <member name="T:NetTopologySuite.LinearReferencing.LocationIndexOfLine">
- <summary>
- Determines the location of a subline along a linear <see cref="T:NetTopologySuite.Geometries.Geometry" />.
- The location is reported as a pair of <see cref="T:NetTopologySuite.LinearReferencing.LinearLocation" />s.
- NOTE: Currently this algorithm is not guaranteed to
- return the correct substring in some situations where
- an endpoint of the test line occurs more than once in the input line.
- (However, the common case of a ring is always handled correctly).
- </summary>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LocationIndexOfLine.IndicesOf(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
-
- </summary>
- <param name="linearGeom"></param>
- <param name="subLine"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LocationIndexOfLine.#ctor(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.LinearReferencing.LocationIndexOfLine"/> class.
- </summary>
- <param name="linearGeom">The linear geom.</param>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LocationIndexOfLine.IndicesOf(NetTopologySuite.Geometries.Geometry)">
- <summary>
-
- </summary>
- <param name="subLine"></param>
- <returns></returns>
- </member>
- <member name="T:NetTopologySuite.LinearReferencing.LocationIndexOfPoint">
- <summary>
- Computes the <see cref="T:NetTopologySuite.LinearReferencing.LinearLocation" /> of the point
- on a linear <see cref="T:NetTopologySuite.Geometries.Geometry" />nearest a given <see cref="T:NetTopologySuite.Geometries.Coordinate"/>.
- The nearest point is not necessarily unique; this class
- always computes the nearest point closest
- to the start of the geometry.
- </summary>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LocationIndexOfPoint.IndexOf(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Coordinate)">
- <summary>
-
- </summary>
- <param name="linearGeom"></param>
- <param name="inputPt"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LocationIndexOfPoint.#ctor(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.LinearReferencing.LocationIndexOfPoint"/> class.
- </summary>
- <param name="linearGeom">A linear geometry.</param>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LocationIndexOfPoint.IndexOf(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Find the nearest location along a linear <see cref="T:NetTopologySuite.Geometries.Geometry" /> to a given point.
- </summary>
- <param name="inputPt">The coordinate to locate.</param>
- <returns>The location of the nearest point.</returns>
- </member>
- <member name="M:NetTopologySuite.LinearReferencing.LocationIndexOfPoint.IndexOfAfter(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.LinearReferencing.LinearLocation)">
- <summary>
- Find the nearest <see cref="T:NetTopologySuite.LinearReferencing.LinearLocation" /> along the linear <see cref="T:NetTopologySuite.Geometries.Geometry" />
- to a given <see cref="T:NetTopologySuite.Geometries.Geometry" /> after the specified minimum <see cref="T:NetTopologySuite.LinearReferencing.LinearLocation" />.
- If possible the location returned will be strictly greater than the <paramref name="minIndex" />.
- If this is not possible, the value returned will equal <paramref name="minIndex" />.
- (An example where this is not possible is when <paramref name="minIndex" /> = [end of line] ).
- </summary>
- <param name="inputPt">The coordinate to locate.</param>
- <param name="minIndex">The minimum location for the point location.</param>
- <returns>The location of the nearest point.</returns>
- </member>
- <member name="T:NetTopologySuite.Mathematics.DD">
- <summary>
- Implements extended-precision floating-point numbers
- which maintain 106 bits (approximately 30 decimal digits) of precision.
- <para/>
- A DoubleDouble uses a representation containing two double-precision values.
- A number x is represented as a pair of doubles, x.hi and x.lo,
- such that the number represented by x is x.hi + x.lo, where
- <pre>
- |x.lo| <= 0.5*ulp(x.hi)
- </pre>
- and ulp(y) means "unit in the last place of y".
- The basic arithmetic operations are implemented using
- convenient properties of IEEE-754 floating-point arithmetic.
- <para/>
- The range of values which can be represented is the same as in IEEE-754.
- The precision of the representable numbers
- is twice as great as IEEE-754 double precision.
- <para/>
- The correctness of the arithmetic algorithms relies on operations
- being performed with standard IEEE-754 double precision and rounding.
- This is the Java standard arithmetic model, but for performance reasons
- Java implementations are not
- constrained to using this standard by default.
- Some processors (notably the Intel Pentium architecture) perform
- floating point operations in (non-IEEE-754-standard) extended-precision.
- A JVM implementation may choose to use the non-standard extended-precision
- as its default arithmetic mode.
- To prevent this from happening, this code uses the
- Java <tt>strictfp</tt> modifier,
- which forces all operations to take place in the standard IEEE-754 rounding model.
- <para/>
- The API provides both a set of value-oriented operations
- and a set of mutating operations.
- Value-oriented operations treat DoubleDouble values as
- immutable; operations on them return new objects carrying the result
- of the operation. This provides a simple and safe semantics for
- writing DoubleDouble expressions. However, there is a performance
- penalty for the object allocations required.
- The mutable interface updates object values in-place.
- It provides optimum memory performance, but requires
- care to ensure that aliasing errors are not created
- and constant values are not changed.
- <para/>
- This implementation uses algorithms originally designed variously by
- Knuth, Kahan, Dekker, and Linnainmaa.
- Douglas Priest developed the first C implementation of these techniques.
- Other more recent C++ implementation are due to Keith M. Briggs and David Bailey et al.
- <h3>References</h3>
- <list type="bullet">
- <item><description>Priest, D., <i>Algorithms for Arbitrary Precision Floating Point Arithmetic</i>,
- in P. Kornerup and D. Matula, Eds., Proc. 10th Symposium on Computer Arithmetic,
- IEEE Computer Society Press, Los Alamitos, Calif., 1991.</description></item>
- <item><description>Yozo Hida, Xiaoye S. Li and David H. Bailey,
- <i>Quad-Double Arithmetic: Algorithms, Implementation, and Application</i>,
- manuscript, Oct 2000; Lawrence Berkeley National Laboratory Report BNL-46996.</description></item>
- <item><description>David Bailey, <i>High Precision Software Directory</i>;
- <tt>http://crd.lbl.gov/~dhbailey/mpdist/index.html</tt></description></item>
- </list>
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="F:NetTopologySuite.Mathematics.DD.PI">
- <summary>The value nearest to the constant Pi.</summary>
- </member>
- <member name="F:NetTopologySuite.Mathematics.DD.TwoPi">
- <summary>The value nearest to the constant 2 * Pi.</summary>
- </member>
- <member name="F:NetTopologySuite.Mathematics.DD.PiHalf">
- <summary>The value nearest to the constant Pi / 2.</summary>
- </member>
- <member name="F:NetTopologySuite.Mathematics.DD.E">
- <summary>
- The value nearest to the constant e (the natural logarithm base).
- </summary>
- </member>
- <member name="F:NetTopologySuite.Mathematics.DD.NaN">
- <summary>
- A value representing the result of an operation which does not return a valid number.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Mathematics.DD.Epsilon">
- <summary>
- The smallest representable relative difference between two <see cref="T:NetTopologySuite.Mathematics.DD"/> values
- </summary>
- </member>
- <member name="M:NetTopologySuite.Mathematics.DD.ValueOf(System.String)">
- <summary>
- Converts the string argument to a DoubleDouble number.
- </summary>
- <param name="str">A string containing a representation of a numeric value</param>
- <returns>The extended precision version of the value</returns>
- <exception cref="T:System.FormatException">Thrown if <paramref name="str"/> is not a valid representation of a number</exception>
- </member>
- <member name="M:NetTopologySuite.Mathematics.DD.op_Explicit(System.String)~NetTopologySuite.Mathematics.DD">
- <summary>
- Operator to parse a <tt>DoubleDouble</tt> from a string
- </summary>
- <param name="val">The DoubleDouble string</param>
- </member>
- <member name="M:NetTopologySuite.Mathematics.DD.ValueOf(System.Double)">
- <summary>
- Converts the <tt>double</tt> argument to a <tt>DoubleDouble</tt> number.
- </summary>
- <param name="x">A numeric value</param>
- <returns>The extended precision version of the value</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.DD.op_Implicit(System.Double)~NetTopologySuite.Mathematics.DD">
- <summary>
- Operator to convert the <tt>double</tt> value to a <tt>DoubleDouble</tt> value.
- </summary>
- <param name="val">The DoubleDouble string</param>
- </member>
- <member name="F:NetTopologySuite.Mathematics.DD.Split">
- <summary>
- The value to split a double-precision value on during multiplication
- </summary>
- </member>
- <member name="F:NetTopologySuite.Mathematics.DD._hi">
- <summary>
- The high-order component of the double-double precision value.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Mathematics.DD._lo">
- <summary>
- The low-order component of the double-double precision value.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Mathematics.DD.#ctor(System.Double)">
- <summary>
- Creates a new <see cref="T:NetTopologySuite.Mathematics.DD"/> with value x.
- </summary>
- <param name="x">The initial value</param>
- </member>
- <member name="M:NetTopologySuite.Mathematics.DD.#ctor(System.Double,System.Double)">
- <summary>
- Creates a new <see cref="T:NetTopologySuite.Mathematics.DD"/> with value (hi, lo).
- </summary>
- <param name="hi">The high order component</param>
- <param name="lo">The low order component</param>
- </member>
- <member name="M:NetTopologySuite.Mathematics.DD.#ctor(NetTopologySuite.Mathematics.DD)">
- <summary>
- Creates a <see cref="T:NetTopologySuite.Mathematics.DD"/> with a value equal to the argument
- </summary>
- <param name="dd">The initial value</param>
- </member>
- <member name="M:NetTopologySuite.Mathematics.DD.#ctor(System.String)">
- <summary>
- Creates a new <see cref="T:NetTopologySuite.Mathematics.DD"/> with value equal to the argument.
- </summary>
- <param name="str">The value to initialize by</param>
- <exception cref="T:System.FormatException"> if <paramref name="str"/> is not a valid representation of a number</exception>
- </member>
- <member name="M:NetTopologySuite.Mathematics.DD.Copy(NetTopologySuite.Mathematics.DD)">
- <summary>
- Creates a new <see cref="T:NetTopologySuite.Mathematics.DD"/> with the value of the argument.
- </summary>
- <param name="dd">The value to copy</param>
- <returns>A copy of <paramref name="dd"/></returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.DD.Clone">
- <summary>
- Creates and returns a copy of this value.
- </summary>
- <returns>A copy of this value</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.DD.op_Addition(NetTopologySuite.Mathematics.DD,NetTopologySuite.Mathematics.DD)">
- <summary>
- Returns the sum of <paramref name="lhs"/> and <paramref name="rhs"/>.
- </summary>
- <param name="lhs">The left hand side</param>
- <param name="rhs">The right hand side</param>
- <returns>The sum of <paramref name="lhs"/> and <paramref name="rhs"/></returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.DD.op_Addition(NetTopologySuite.Mathematics.DD,System.Double)">
- <summary>
- Returns the sum of <paramref name="lhs"/> and <paramref name="rhs"/>.
- </summary>
- <param name="lhs">The left hand side</param>
- <param name="rhs">The right hand side</param>
- <returns>The sum of <paramref name="lhs"/> and <paramref name="rhs"/></returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.DD.op_Subtraction(NetTopologySuite.Mathematics.DD,NetTopologySuite.Mathematics.DD)">
- <summary>
- Returns the difference of <paramref name="lhs"/> and <paramref name="rhs"/>.
- </summary>
- <param name="lhs">The left hand side</param>
- <param name="rhs">The right hand side</param>
- <returns>The difference of <paramref name="lhs"/> and <paramref name="rhs"/></returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.DD.op_Subtraction(NetTopologySuite.Mathematics.DD,System.Double)">
- <summary>
- Returns the difference of <paramref name="lhs"/> and <paramref name="rhs"/>.
- </summary>
- <param name="lhs">The left hand side</param>
- <param name="rhs">The right hand side</param>
- <returns>The difference of <paramref name="lhs"/> and <paramref name="rhs"/></returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.DD.op_UnaryNegation(NetTopologySuite.Mathematics.DD)">
- <summary>
- Subtracts the argument from the value of <tt>this</tt>.
- </summary>
- <param name="val">The subtrahend</param>
- <returns>The result of this - y</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.DD.op_Multiply(NetTopologySuite.Mathematics.DD,System.Double)">
- <summary>
- Multiplies <paramref name="lhs"/> by <paramref name="rhs"/>.
- </summary>
- <param name="lhs">A DoubleDouble value.</param>
- <param name="rhs">A double value.</param>
- <returns>The result of the multiplication.<para/></returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.DD.op_Multiply(NetTopologySuite.Mathematics.DD,NetTopologySuite.Mathematics.DD)">
- <summary>
- Multiplies <paramref name="lhs"/> by <paramref name="rhs"/>.
- </summary>
- <param name="lhs">A DoubleDouble value.</param>
- <param name="rhs">A DoubleDouble value.</param>
- <returns>The result of the multiplication.<para/></returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.DD.op_Division(NetTopologySuite.Mathematics.DD,System.Double)">
- <summary>
- Divides <paramref name="lhs"/> by <paramref name="rhs"/>.
- </summary>
- <param name="lhs">A DoubleDouble numerator.</param>
- <param name="rhs">A double divisor.</param>
- <returns>The result of the division.<para/></returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.DD.op_Division(NetTopologySuite.Mathematics.DD,NetTopologySuite.Mathematics.DD)">
- <summary>
- Divides <paramref name="lhs"/> by <paramref name="rhs"/>.
- </summary>
- <param name="lhs">A DoubleDouble numerator.</param>
- <param name="rhs">A DoubleDouble divisor.</param>
- <returns>The result of the division.<para/></returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.DD.Reciprocal">
- <summary>
- Returns a <see cref="T:NetTopologySuite.Mathematics.DD"/> whose value is <c>1 / this</c>.
- </summary>
- <returns>The reciprocal of this value</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.DD.Determinant(System.Double,System.Double,System.Double,System.Double)">
- <summary>
- Computes the determinant of the 2x2 matrix with the given entries.
- </summary>
- <param name="x1">A matrix entry</param>
- <param name="y1">A matrix entry</param>
- <param name="x2">A matrix entry</param>
- <param name="y2">A matrix entry</param>
- <returns>The determinant of the matrix of values</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.DD.Determinant(NetTopologySuite.Mathematics.DD,NetTopologySuite.Mathematics.DD,NetTopologySuite.Mathematics.DD,NetTopologySuite.Mathematics.DD)">
- <summary>
- Computes the determinant of the 2x2 matrix with the given entries.
- </summary>
- <param name="x1">A matrix entry</param>
- <param name="y1">A matrix entry</param>
- <param name="x2">A matrix entry</param>
- <param name="y2">A matrix entry</param>
- <returns>The determinant of the matrix of values</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.DD.Min(NetTopologySuite.Mathematics.DD)">
- <summary>
- Computes the minimum of this and another DD number.
- </summary>
- <param name="x">A DD number</param>
- <returns>The minimum of the two numbers</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.DD.Max(NetTopologySuite.Mathematics.DD)">
- <summary>
- Computes the maximum of this and another DD number.
- </summary>
- <param name="x">A DD number</param>
- <returns>The maximum of the two numbers</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.DD.Floor">
- <summary>
- Returns the largest (closest to positive infinity)
- value that is not greater than the argument
- and is equal to a mathematical integer.
- Special cases:
- <list type="bullet">
- <item><description>If this value is NaN, returns NaN.</description></item>
- </list>
- </summary>
- <returns>The largest (closest to positive infinity)
- value that is not greater than the argument
- and is equal to a mathematical integer.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.DD.Ceiling">
- <summary>
- Returns the smallest (closest to negative infinity) value
- that is not less than the argument and is equal to a mathematical integer.
- Special cases:
- <list type="bullet">
- <item><description>If this value is NaN, returns NaN.</description></item>
- </list>
- </summary>
- <returns>
- The smallest (closest to negative infinity) value
- that is not less than the argument and is equal to a mathematical integer.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.DD.Signum">
- <summary>
- Returns an integer indicating the sign of this value.
- <para>
- <list type="bullet">
- <item><description>if this value is > 0, returns 1</description></item>
- <item><description>if this value is < 0, returns -1</description></item>
- <item><description>if this value is = 0, returns 0</description></item>
- <item><description>if this value is NaN, returns 0</description></item>
- </list>
- </para>
- </summary>
- <returns>An integer indicating the sign of this value</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.DD.Rint">
- <summary>
- Rounds this value to the nearest integer.
- The value is rounded to an integer by adding 1/2 and taking the floor of the result.
- Special cases:
- <list type="bullet">
- <item><description>If this value is NaN, returns NaN.</description></item>
- </list>
- </summary>
- <returns>This value rounded to the nearest integer</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.DD.Truncate">
- <summary>
- Returns the integer which is largest in absolute value and not further
- from zero than this value.
- <para/>
- Special cases:
- <list type="bullet">
- <item><description>If this value is NaN, returns NaN.</description></item>
- </list>
- </summary>
- <returns>
- The integer which is largest in absolute value and not further from zero than this value
- </returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.DD.Abs">
- <summary>
- Returns the absolute value of this value.
- <para/>
- Special cases:
- <list type="bullet">
- <item><description>if this value is NaN, it is returned.</description></item>
- </list>
- </summary>
- <returns>The absolute value of this value</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.DD.Sqr">
- <summary>
- Computes the square of this value.
- </summary>
- <returns>The square of this value</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.DD.Sqr(System.Double)">
- <summary>
- Computes the square of this value.
- </summary>
- <returns>The square of this value.</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.DD.Sqrt">
- <summary>
- Computes the positive square root of this value.<para/>
- If the number is NaN or negative, NaN is returned.
- </summary>
- <returns>If this is NaN or less than zero, the result is NaN.</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.DD.Sqrt(System.Double)">
- <summary>
- Computes the positive square root of a <tt>DoubleDouble</tt> value.<para/>
- If the number is NaN or negative, NaN is returned.
- </summary>
- <param name="x">A numeric value</param>
- <returns>the positive square root of this number.<para/>
- If the argument is NaN or less than zero, the result is NaN.</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.DD.Pow(System.Int32)">
- <summary>
- Computes the value of this number raised to an integral power.
- Follows semantics of .Net Math.Pow as closely as possible.
- </summary>
- <param name="exp">The integer exponent</param>
- <returns>x raised to the integral power exp</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.DD.ToDoubleValue">
- <summary>
- Converts this value to the nearest <see cref="T:System.Double"/> number.
- </summary>
- <returns>The nearest <see cref="T:System.Double"/> value</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.DD.ToIntValue">
- <summary>
- Converts this value to the nearest <see cref="T:System.Int32"/> value.
- </summary>
- <returns>The nearest <see cref="T:System.Int32"/> value</returns>
- </member>
- <member name="P:NetTopologySuite.Mathematics.DD.IsZero">
- <summary>
- Gets a value indicating whether this object is zero (0) or not
- </summary>
- </member>
- <member name="P:NetTopologySuite.Mathematics.DD.IsNegative">
- <summary>
- Gets a value indicating whether this object is negative or not
- </summary>
- </member>
- <member name="M:NetTopologySuite.Mathematics.DD.IsPositive">
- <summary>
- Gets a value indicating whether this object is positive or not
- </summary>
- </member>
- <member name="M:NetTopologySuite.Mathematics.DD.IsNaN(NetTopologySuite.Mathematics.DD)">
- <summary>
- Gets a value indicating whether this object is positive or not
- </summary>
- </member>
- <member name="M:NetTopologySuite.Mathematics.DD.IsInfinity(NetTopologySuite.Mathematics.DD)">
- <summary>
- Checks if <paramref name="value"/> is infinity.
- </summary>
- <param name="value">A DoubleDouble value</param>
- <returns><c>true</c> if <c>value</c> is infinity.</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.DD.Equals(NetTopologySuite.Mathematics.DD)">
- <summary>
- Tests whether this value is equal to another <tt>DoubleDouble</tt> value.
- </summary>
- <param name="y">A DoubleDouble value</param>
- <returns><c>true</c> if this value == <paramref name="y"/>.</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.DD.op_Equality(NetTopologySuite.Mathematics.DD,NetTopologySuite.Mathematics.DD)">
- <summary>
- Equality operator for <tt>DoubleDouble</tt> values
- </summary>
- <param name="lhs">A DoubleDouble value</param>
- <param name="rhs">A DoubleDouble value</param>
- <returns><c>true</c> if <paramref name="lhs"/> == <paramref name="rhs"/>.</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.DD.op_Inequality(NetTopologySuite.Mathematics.DD,NetTopologySuite.Mathematics.DD)">
- <summary>
- Inequality operator for <tt>DoubleDouble</tt> values
- </summary>
- <param name="lhs">A DoubleDouble value</param>
- <param name="rhs">A DoubleDouble value</param>
- <returns><c>true</c> if <paramref name="lhs"/> != <paramref name="rhs"/>.</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.DD.GreaterThan(NetTopologySuite.Mathematics.DD)">
- <summary>
- Tests whether this value is greater than another <tt>DoubleDouble</tt> value.
- </summary>
- <param name="y">A DoubleDouble value</param>
- <returns><c>true</c> if this value > <paramref name="y"/>.</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.DD.GreaterOrEqualThan(NetTopologySuite.Mathematics.DD)">
- <summary>
- Tests whether this value is greater than or equals to another <tt>DoubleDouble</tt> value.
- </summary>
- <param name="y">A DoubleDouble value</param>
- <returns><c>true</c> if this value >= <paramref name="y"/>.</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.DD.LessThan(NetTopologySuite.Mathematics.DD)">
- <summary>
- Tests whether this value is less than another <tt>DoubleDouble</tt> value.
- </summary>
- <param name="y">A DoubleDouble value</param>
- <returns><c>true</c> if this value is < <paramref name="y"/> </returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.DD.LessOrEqualThan(NetTopologySuite.Mathematics.DD)">
- <summary>
- Tests whether this value is less than or equal to another <tt>DoubleDouble</tt> value.
- </summary>
- <param name="y">A <tt>DoubleDouble</tt></param>
- <returns><c>true</c> if this value is <= <paramref name="y"/></returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.DD.CompareTo(NetTopologySuite.Mathematics.DD)">
- <summary>
- Compares two <tt>DoubleDouble</tt> objects numerically.
- </summary>
- <param name="other">An other <tt>DoubleDouble</tt> value</param>
- <returns>
- <c>-1,0</c> or <c>1</c> depending on whether this value is less than, equal to
- or greater than the value of <paramref name="other"/></returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.DD.CompareTo(System.Object)">
- <inheritdoc cref="M:System.IComparable.CompareTo(System.Object)"/>
- </member>
- <member name="M:NetTopologySuite.Mathematics.DD.Dump">
- <summary>
- Dumps the components of this number to a string.
- </summary>
- <returns>A string showing the components of the number</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.DD.ToString">
- <summary>
- Returns a string representation of this number, in either standard or scientific notation.
- If the magnitude of the number is in the range [ 10<sup>-3</sup>, 10<sup>8</sup> ]
- standard notation will be used. Otherwise, scientific notation will be used.
- </summary>
- <returns>A string representation of this number</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.DD.ToStandardNotation">
- <summary>
- Returns the string representation of this value in standard notation.
- </summary>
- <returns>The string representation in standard notation</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.DD.ToSciNotation">
- <summary>
- Returns the string representation of this value in scientific notation.
- </summary>
- <returns>The string representation in scientific notation</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.DD.ExtractSignificantDigits(System.Boolean,System.Int32[])">
- <summary>
- Extracts the significant digits in the decimal representation of the argument.
- A decimal point may be optionally inserted in the string of digits
- (as long as its position lies within the extracted digits
- - if not, the caller must prepend or append the appropriate zeroes and decimal point).
- </summary>
- <param name="insertDecimalPoint"></param>
- <param name="magnitudes"></param>
- <returns>The string containing the significant digits and possibly a decimal point</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.DD.GetSpecialNumberString">
- <summary>
- Returns the string for this value if it has a known representation (e.g. NaN or 0.0).
- </summary>
- <returns>The string for this special number <br/>
- or <c>null</c> if the number is not a special number</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.DD.Magnitude(System.Double)">
- <summary>
- Determines the decimal magnitude of a number.<para/>
- The magnitude is the exponent of the greatest power of 10 which is less than
- or equal to the number.
- </summary>
- <param name="x">The number to find the magnitude of</param>
- <returns>The decimal magnitude of <paramref name="x"/></returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.DD.Parse(System.String)">
- <summary>
- Converts a string representation of a real number into a DoubleDouble value.
- The format accepted is similar to the standard Java real number syntax.
- It is defined by the following regular expression:
- <pre>
- [<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>}+
- </pre>
- </summary>
- <param name="str">The string to parse</param>
- <returns>The value of the parsed number</returns>
- <exception cref="T:System.FormatException">Thrown if <tt>str</tt> is not a valid representation of a number</exception>
- </member>
- <member name="M:NetTopologySuite.Mathematics.DD.Equals(System.Object)">
- <inheritdoc cref="M:System.Object.Equals(System.Object)"/>
- </member>
- <member name="M:NetTopologySuite.Mathematics.DD.GetHashCode">
- <inheritdoc cref="M:System.Object.GetHashCode"/>
- </member>
- <member name="T:NetTopologySuite.Mathematics.MathUtil">
- <summary>
- Various utility functions for mathematical and numerical operations.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Mathematics.MathUtil.Clamp(System.Double,System.Double,System.Double)">
- <summary>
- Clamps a <c>double</c> value to a given range.
- </summary>
- <param name="x">The value to clamp</param>
- <param name="min">The minimum value of the range</param>
- <param name="max">The maximum value of the range</param>
- <returns>The clamped value</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.MathUtil.Clamp(System.Int32,System.Int32,System.Int32)">
- <summary>
- Clamps a <c>int</c> value to a given range.
- </summary>
- <param name="x">The value to clamp</param>
- <param name="min">The minimum value of the range</param>
- <param name="max">The maximum value of the range</param>
- <returns>The clamped value</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.MathUtil.ClampMax(System.Int32,System.Int32)">
- <summary>
- Clamps an integer to a given maximum limit.
- </summary>
- <param name="x">The value to clamp</param>
- <param name="max">The maximum value of the range</param>
- <returns>The clamped value</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.MathUtil.Ceiling(System.Int32,System.Int32)">
- <summary>
- Computes the ceiling function of the dividend of two integers.
- </summary>
- <param name="num">The numerator</param>
- <param name="denom">The denominator</param>
- <returns>The ceiling of <c>num / denom</c></returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.MathUtil.Log10(System.Double)">
- <summary>
- Computes the base-10 logarithm of a <c>double</c> value.
- <para>
- <list type="bullet">
- <item><description>If the argument is NaN or less than zero, then the result is NaN.</description></item>
- <item><description>If the argument is positive infinity, then the result is positive infinity.</description></item>
- <item><description>If the argument is positive zero or negative zero, then the result is negative infinity.</description></item>
- </list>
- </para>
- </summary>
- <param name="x">A positive number</param>
- <returns>The value log a, the base-10 logarithm of the input value</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.MathUtil.Wrap(System.Int32,System.Int32)">
- <summary>
- Computes an index which wraps around a given maximum value.
- For values >= 0, this is equals to <c>val % max</c>.
- For values < 0, this is equal to <c>max - (-val) % max</c>
- </summary>
- <param name="index">The index to wrap</param>
- <param name="max">The maximum value (or modulus)</param>
- <returns>The wrapped index</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.MathUtil.Average(System.Double,System.Double)">
- <summary>
- Computes the average of two numbers.
- </summary>
- <param name="x1">A number</param>
- <param name="x2">A number</param>
- <returns>The average of the inputs</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.MathUtil.Max(System.Double,System.Double,System.Double)">
- <summary>
- Computes the maximum fo three values
- </summary>
- <param name="v1">A number</param>
- <param name="v2">A number</param>
- <param name="v3">A number</param>
- <returns>The maximum value of <paramref name="v1"/>, <paramref name="v2"/> and <paramref name="v3"/></returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.MathUtil.Max(System.Double,System.Double,System.Double,System.Double)">
- <summary>
- Computes the maximum of four values
- </summary>
- <param name="v1">A number</param>
- <param name="v2">A number</param>
- <param name="v3">A number</param>
- <param name="v4">A number</param>
- <returns>The maximum value of <paramref name="v1"/>, <paramref name="v2"/>, <paramref name="v3"/> and <paramref name="v4"/></returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.MathUtil.Min(System.Double,System.Double,System.Double)">
- <summary>
- Computes the minimum of four values
- </summary>
- <param name="v1">A number</param>
- <param name="v2">A number</param>
- <param name="v3">A number</param>
- <returns>The minimum value of <paramref name="v1"/>, <paramref name="v2"/> and <paramref name="v3"/></returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.MathUtil.Min(System.Double,System.Double,System.Double,System.Double)">
- <summary>
- Computes the minimum of four values
- </summary>
- <param name="v1">A number</param>
- <param name="v2">A number</param>
- <param name="v3">A number</param>
- <param name="v4">A number</param>
- <returns>The minimum value of <paramref name="v1"/>, <paramref name="v2"/>, <paramref name="v3"/> and <paramref name="v4"/></returns>
- </member>
- <member name="F:NetTopologySuite.Mathematics.MathUtil.PhiInv">
- <summary>The inverse of the Golden Ratio phi.</summary>
- </member>
- <member name="M:NetTopologySuite.Mathematics.MathUtil.QuasiRandom(System.Double)">
- <summary>
- Generates a quasi-random sequence of numbers in the range [0,1].
- They are produced by an additive recurrence with 1/φ as the constant.
- This produces a low-discrepancy sequence which is more evenly
- distribute than random numbers.
- <para/>
- See <a href='https://en.wikipedia.org/wiki/Low-discrepancy_sequence#Additive_recurrence'>Wikipedia: Low-discrepancy Sequences - Additive Recurrence</a>.
- <para/>
- The sequence is initialized by calling it
- with any positive fractional number; 0 works well for most uses.
- </summary>
- <param name="curr">The current number in the sequence</param>
- <returns>The next value in the sequence</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.MathUtil.QuasiRandom(System.Double,System.Double)">
- <summary>
- Generates a quasi-random sequence of numbers in the range [0,1].
- They are produced by an additive recurrence with constant α.
- <code>
- R(α) : t<sub>n</sub> = { t<sub>0</sub> + nα }, n = 1,2,3,...
- </code>
- When α is irrational this produces a
- <a href='https://en.wikipedia.org/wiki/Low-discrepancy_sequence#Additive_recurrence'>Low discrepancy sequence</a>
- which is more evenly distributed than random numbers.
- <para/>
- The sequence is initialized by calling it
- with any positive fractional number. 0 works well for most uses.
- </summary>
- <param name="curr">The current number in the sequence</param>
- <param name="alpha">the sequence's additive constant</param>
- <returns>The next value in the sequence</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.MathUtil.Shuffle(System.Int32)">
- <summary>
- Generates a randomly-shuffled list of the integers from [0..n-1].
- <para/>
- One use is to randomize points inserted into a <see cref="T:NetTopologySuite.Index.KdTree.KdTree`1"/>.
- </summary>
- <param name="n">The number of integers to shuffle</param>
- <returns>The shuffled array</returns>
- </member>
- <member name="T:NetTopologySuite.Mathematics.Matrix">
- <summary>
- Implements some 2D matrix operations
- (in particular, solving systems of linear equations).
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Matrix.Solve(System.Double[][],System.Double[])">
- <summary>
- Solves a system of equations using Gaussian Elimination.
- In order to avoid overhead the algorithm runs in-place
- on <see paramref="a"/> - if <see paramref="a"/> should not be modified the client must supply a copy.
- </summary>
- <param name="a">An nxn matrix in row/column order )modified by this method)</param>
- <param name="b">A vector of length n</param>
- <returns>A vector containing the solution (if any)<br/>or <c>null</c> if the system has no or no unique solution
- </returns>
- <exception cref="T:System.ArgumentException">If the matrix has the wrong size</exception>
- </member>
- <member name="T:NetTopologySuite.Mathematics.Plane">
- <summary>
- Enumeration for the 3 coordinate planes
- </summary>
- </member>
- <member name="T:NetTopologySuite.Mathematics.Plane3D">
- <summary>
- Models a plane in 3-dimensional Cartesian space.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Plane3D.OrientedDistance(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Computes the oriented distance from a point to the plane.<br/>
- The distance is:
- <list type="bullet">
- <item><description><b>positive</b> if the point lies above the plane (relative to the plane normal)</description></item>
- <item><description><b>zero</b> if the point is on the plane</description></item>
- <item><description><b>negative</b> if the point lies below the plane (relative to the plane normal)</description></item>
- </list>
- </summary>
- <param name="p">The point to compute the distance for</param>
- <returns>The oriented distance to the plane</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Plane3D.ClosestAxisPlane">
- <summary>
- Computes the axis plane that this plane lies closest to.
- <para/>
- Geometries lying in this plane undergo least distortion
- (and have maximum area)
- when projected to the closest axis plane.
- This provides optimal conditioning for
- computing a Point-in-Polygon test.
- </summary>
- <returns>The index of the closest axis plane</returns>
- </member>
- <member name="T:NetTopologySuite.Mathematics.Vector2D">
- <summary>
- A 2-dimensional mathematical vector represented by double-precision X and Y components.
- </summary>
- <author>mbdavis</author>
- </member>
- <member name="P:NetTopologySuite.Mathematics.Vector2D.Zero">
- <summary>
- Creates a new vector with all components set to Zero
- </summary>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector2D.Create(System.Double,System.Double)">
- <summary>
- Creates a new vector with given X and Y components.
- </summary>
- <param name="x">The x component</param>
- <param name="y">The y component</param>
- <returns>A new vector</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector2D.Create(NetTopologySuite.Mathematics.Vector2D)">
- <summary>
- Creates a new vector from an existing one.
- </summary>
- <param name="v">The vector to copy</param>
- <returns>A new vector</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector2D.Create(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Creates a vector from a <see cref="T:NetTopologySuite.Geometries.Coordinate"/>.
- </summary>
- <param name="coord">The coordinate to copy</param>
- <returns>A new vector</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector2D.Create(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>Creates a vector with the direction and magnitude
- of the difference between the
- <paramref name="to"/> and <paramref name="from"/> <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s.
- </summary>
- <param name="from">The origin coordinate</param>
- <param name="to">The destination coordinate</param>
- <returns>A new vector</returns>
- </member>
- <member name="F:NetTopologySuite.Mathematics.Vector2D._x">
- <summary>The X component of this vector</summary>
- </member>
- <member name="F:NetTopologySuite.Mathematics.Vector2D._y">
- <summary>The Y component of this vector.</summary>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector2D.#ctor">
- <summary>
- Creates an new vector instance
- </summary>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector2D.#ctor(System.Double,System.Double)">
- <summary>
- Creates a new vector instance using the provided <paramref name="x"/> and <paramref name="y"/> ordinates
- </summary>
- <param name="x">The x-ordinate value</param>
- <param name="y">The y-ordinate value</param>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector2D.#ctor(NetTopologySuite.Mathematics.Vector2D)">
- <summary>
- Creates a new vector instance based on <paramref name="v"/>.
- </summary>
- <param name="v">The vector</param>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector2D.#ctor(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>Creates a new vector with the direction and magnitude
- of the difference between the
- <paramref name="to"/> and <paramref name="from"/> <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s.
- </summary>
- <param name="from">The origin coordinate</param>
- <param name="to">The destination coordinate</param>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector2D.#ctor(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Creates a vector from a <see cref="T:NetTopologySuite.Geometries.Coordinate"/>.
- </summary>
- <param name="v">The coordinate</param>
- <returns>A new vector</returns>
- </member>
- <member name="P:NetTopologySuite.Mathematics.Vector2D.X">
- <summary>
- Gets the x-ordinate value
- </summary>
- </member>
- <member name="P:NetTopologySuite.Mathematics.Vector2D.Y">
- <summary>
- Gets the y-ordinate value
- </summary>
- </member>
- <member name="P:NetTopologySuite.Mathematics.Vector2D.Item(System.Int32)">
- <summary>
- Gets the ordinate values by index
- </summary>
- <param name="index">The index</param>
- <exception cref="T:System.ArgumentOutOfRangeException">Thrown if index < 0 or > 1</exception>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector2D.Add(NetTopologySuite.Mathematics.Vector2D)">
- <summary>
- Adds <paramref name="v"/> to this vector instance.
- </summary>
- <param name="v">The vector to add</param>
- <returns>The result vector</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector2D.Subtract(NetTopologySuite.Mathematics.Vector2D)">
- <summary>
- Subtracts <paramref name="v"/> from this vector instance
- </summary>
- <param name="v">The vector to subtract</param>
- <returns>The result vector</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector2D.Multiply(System.Double)">
- <summary>
- Multiplies the vector by a scalar value.
- </summary>
- <param name="d">The value to multiply by</param>
- <returns>A new vector with the value v * d</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector2D.Divide(System.Double)">
- <summary>
- Divides the vector by a scalar value.
- </summary>
- <param name="d">The value to divide by</param>
- <returns>A new vector with the value v / d</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector2D.Negate">
- <summary>
- Negates this vector
- </summary>
- <returns>A new vector with [-_x, -_y]</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector2D.Length">
- <summary>
-
- </summary>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector2D.LengthSquared">
- <summary>
-
- </summary>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector2D.Normalize">
- <summary>
- Normalizes the vector
- </summary>
- <returns>A new normalized vector</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector2D.Average(NetTopologySuite.Mathematics.Vector2D)">
- <summary>
-
- </summary>
- <param name="v"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector2D.WeightedSum(NetTopologySuite.Mathematics.Vector2D,System.Double)">
- <summary>
- Computes the weighted sum of this vector
- with another vector,
- with this vector contributing a fraction
- of <tt>frac</tt> to the total.
- <para/>
- In other words,
- <pre>
- sum = frac * this + (1 - frac) * v
- </pre>
- </summary>
- <param name="v">The vector to sum</param>
- <param name="frac">The fraction of the total contributed by this vector</param>
- <returns>The weighted sum of the two vectors</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector2D.Distance(NetTopologySuite.Mathematics.Vector2D)">
- <summary>
- Computes the distance between this vector and another one.
- </summary>
- <param name="v">A vector</param>
- <returns>The distance between the vectors</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector2D.Dot(NetTopologySuite.Mathematics.Vector2D)">
- <summary>
- Computes the dot-product of two vectors
- </summary>
- <param name="v">A vector</param>
- <returns>The dot product of the vectors</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector2D.Angle">
- <summary>
- Computes the angle this vector describes to the horizontal axis
- </summary>
- <returns>The angle</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector2D.Angle(NetTopologySuite.Mathematics.Vector2D)">
- <summary>
-
- </summary>
- <param name="v"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector2D.AngleTo(NetTopologySuite.Mathematics.Vector2D)">
- <summary>
-
- </summary>
- <param name="v"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector2D.Rotate(System.Double)">
- <summary>
- Rotates this vector by <paramref name="angle"/>
- </summary>
- <param name="angle">The angle</param>
- <returns>The rotated vector</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector2D.RotateByQuarterCircle(System.Int32)">
- <summary>
- Rotates a vector by a given number of quarter-circles (i.e. multiples of 90
- degrees or Pi/2 radians). A positive number rotates counter-clockwise, a
- negative number rotates clockwise. Under this operation the magnitude of
- the vector and the absolute values of the ordinates do not change, only
- their sign and ordinate index.
- </summary>
- <param name="numQuarters">The number of quarter-circles to rotate by</param>
- <returns>The rotated vector.</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector2D.IsParallel(NetTopologySuite.Mathematics.Vector2D)">
- <summary>
-
- </summary>
- <param name="v"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector2D.Translate(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Gets a <see cref="T:NetTopologySuite.Geometries.Coordinate"/> made of this vector translated by <paramref name="coord"/>.
- </summary>
- <param name="coord">The translation coordinate</param>
- <returns>A coordinate</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector2D.ToCoordinate">
- <summary>
- Gets a <see cref="T:NetTopologySuite.Geometries.Coordinate"/> from this vector
- </summary>
- <returns>A coordinate</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector2D.Clone">
- <summary>
- Creates a copy of this vector
- </summary>
- <returns>A copy of this vector</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector2D.ToString">
- <summary>
- Gets a string representation of this vector
- </summary>
- <returns>A string representing this vector</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector2D.Equals(System.Object)">
- <summary>
- Tests if a vector <paramref name="o"/> has the same values for the x and y components.
- </summary>
- <param name="o">A <see cref="T:NetTopologySuite.Mathematics.Vector2D"/> with which to do the comparison.</param>
- <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>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector2D.GetHashCode">
- <summary>
- Gets a hashcode for this vector.
- </summary>
- <returns>A hashcode for this vector</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector2D.op_Addition(NetTopologySuite.Mathematics.Vector2D,NetTopologySuite.Mathematics.Vector2D)">
- <summary>
- Adds two vectors.
- </summary>
- <param name="left">The first vector to add.</param>
- <param name="right">The second vector to add.</param>
- <returns>The sum of the two vectors.</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector2D.op_Multiply(NetTopologySuite.Mathematics.Vector2D,NetTopologySuite.Mathematics.Vector2D)">
- <summary>
- Modulates a vector with another by performing component-wise multiplication"/>.
- </summary>
- <param name="left">The first vector to multiply.</param>
- <param name="right">The second vector to multiply.</param>
- <returns>The multiplication of the two vectors.</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector2D.op_Subtraction(NetTopologySuite.Mathematics.Vector2D,NetTopologySuite.Mathematics.Vector2D)">
- <summary>
- Subtracts two vectors.
- </summary>
- <param name="left">The first vector to subtract.</param>
- <param name="right">The second vector to subtract.</param>
- <returns>The difference of the two vectors.</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector2D.op_UnaryNegation(NetTopologySuite.Mathematics.Vector2D)">
- <summary>
- Reverses the direction of a given vector.
- </summary>
- <param name="value">The vector to negate.</param>
- <returns>A vector facing in the opposite direction.</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector2D.op_Multiply(System.Double,NetTopologySuite.Mathematics.Vector2D)">
- <summary>
- Scales a vector by the given value.
- </summary>
- <param name="value">The vector to scale.</param>
- <param name="scale">The amount by which to scale the vector.</param>
- <returns>The scaled vector.</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector2D.op_Multiply(NetTopologySuite.Mathematics.Vector2D,System.Double)">
- <summary>
- Scales a vector by the given value.
- </summary>
- <param name="value">The vector to scale.</param>
- <param name="scale">The amount by which to scale the vector.</param>
- <returns>The scaled vector.</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector2D.op_Division(NetTopologySuite.Mathematics.Vector2D,System.Double)">
- <summary>
- Scales a vector by the given value.
- </summary>
- <param name="value">The vector to scale.</param>
- <param name="scale">The amount by which to scale the vector.</param>
- <returns>The scaled vector.</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector2D.op_Division(NetTopologySuite.Mathematics.Vector2D,NetTopologySuite.Mathematics.Vector2D)">
- <summary>
- Scales a vector by the given value.
- </summary>
- <param name="value">The vector to scale.</param>
- <param name="scale">The amount by which to scale the vector.</param>
- <returns>The scaled vector.</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector2D.op_Equality(NetTopologySuite.Mathematics.Vector2D,NetTopologySuite.Mathematics.Vector2D)">
- <summary>
- Tests for equality between two objects.
- </summary>
- <param name="left">The first value to compare.</param>
- <param name="right">The second value to compare.</param>
- <returns><c>true</c> if <paramref name="left"/> has the same value as
- <paramref name="right"/>; otherwise, <c>false</c>.</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector2D.op_Inequality(NetTopologySuite.Mathematics.Vector2D,NetTopologySuite.Mathematics.Vector2D)">
- <summary>
- Tests for inequality between two objects.
- </summary>
- <param name="left">The first value to compare.</param>
- <param name="right">The second value to compare.</param>
- <returns><c>true</c> if <paramref name="left"/> has a different value
- than <paramref name="right"/>; otherwise, <c>false</c>.</returns>
- </member>
- <member name="T:NetTopologySuite.Mathematics.Vector3D">
- <summary>
- Represents a vector in 3-dimensional Cartesian space.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="P:NetTopologySuite.Mathematics.Vector3D.Zero">
- <summary>
- Creates a new vector with all components set to Zero
- </summary>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector3D.Dot(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Computes the dot product of the 3D vectors AB and CD.
- </summary>
- <param name="A">The start point of the 1st vector</param>
- <param name="B">The end point of the 1st vector</param>
- <param name="C">The start point of the 2nd vector</param>
- <param name="D">The end point of the 2nd vector</param>
- <returns>The dot product</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector3D.Cross(NetTopologySuite.Mathematics.Vector3D,NetTopologySuite.Mathematics.Vector3D)">
- <summary>
- Calculates the cross product of two vectors.
- </summary>
- <param name="left">First source vector.</param>
- <param name="right">Second source vector.</param>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector3D.Create(System.Double,System.Double,System.Double)">
- <summary>
- Creates a new vector with given <paramref name="x"/>, <paramref name="y"/> and <paramref name="z"/> components.
- </summary>
- <param name="x">The x component</param>
- <param name="y">The y component</param>
- <param name="z">The z component</param>
- <returns>A new vector</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector3D.Create(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Creates a vector from a 3D <see cref="T:NetTopologySuite.Geometries.Coordinate"/>.
- <para/>
- The coordinate should have the
- X,Y and Z ordinates specified.
- </summary>
- <param name="coord">The coordinate to copy</param>
- <returns>A new vector</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector3D.Dot(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Computes the 3D dot-product of two <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s
- </summary>
- <param name="v1">The 1st vector</param>
- <param name="v2">The 2nd vector</param>
- <returns>The dot product of the (coordinate) vectors</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector3D.#ctor(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Creates a new 3D vector from a <see cref="T:NetTopologySuite.Geometries.Coordinate"/>.<para/> The coordinate should have
- the X,Y and Z ordinates specified.
- </summary>
- <param name="coord">The coordinate to copy</param>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector3D.#ctor(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Creates a new vector with the direction and magnitude
- of the difference between the <paramref name="to"/>
- and <paramref name="from"/> <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s.
- </summary>
- <param name="from">The origin coordinate</param>
- <param name="to">The destination coordinate</param>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector3D.#ctor(System.Double,System.Double,System.Double)">
- <summary>
- Creates a new vector with the given <paramref name="x"/>, <paramref name="y"/> and <paramref name="z"/> components
- </summary>
- <param name="x">The x component</param>
- <param name="y">The y component</param>
- <param name="z">The z component</param>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector3D.#ctor(NetTopologySuite.Mathematics.Vector2D,System.Double)">
- <summary>
- 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
- </summary>
- <param name="value">A vector containing the values with which to initialize the X and Y components.</param>
- <param name="z">Initial value for the Z component of the vector.</param>
- </member>
- <member name="P:NetTopologySuite.Mathematics.Vector3D.X">
- <summary>
- Gets a value indicating the x-ordinate
- </summary>
- </member>
- <member name="P:NetTopologySuite.Mathematics.Vector3D.Y">
- <summary>
- Gets a value indicating the y-ordinate
- </summary>
- </member>
- <member name="P:NetTopologySuite.Mathematics.Vector3D.Z">
- <summary>
- Gets a value indicating the z-ordinate
- </summary>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector3D.Add(NetTopologySuite.Mathematics.Vector3D)">
- <summary>
- Computes a vector which is the sum
- of this vector and the given vector.
- </summary>
- <param name="v">The vector to add</param>
- <returns>The sum of this and <c>v</c></returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector3D.Subtract(NetTopologySuite.Mathematics.Vector3D)">
- <summary>
- Computes a vector which is the difference
- of this vector and the given vector.
- </summary>
- <param name="v">The vector to subtract</param>
- <returns>The difference of this and <c>v</c></returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector3D.Divide(System.Double)">
- <summary>
- Creates a new vector which has the same direction
- and with length equals to the length of this vector
- divided by the scalar value <c>d</c>.
- </summary>
- <param name="d">The scalar divisor</param>
- <returns>A new vector with divided length</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector3D.Dot(NetTopologySuite.Mathematics.Vector3D)">
- <summary>
- Computes the dot-product of this <see cref="T:NetTopologySuite.Mathematics.Vector3D"/> and <paramref name="v"/>
- </summary>
- <paramref name="v">The 2nd vector</paramref>
- <returns>The dot product of the vectors</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector3D.Cross(NetTopologySuite.Mathematics.Vector3D)">
- <summary>
- Computes the cross-product of this <see cref="T:NetTopologySuite.Mathematics.Vector3D"/> and <paramref name="v"/>
- </summary>
- <paramref name="v">The 2nd vector</paramref>
- <returns>The cross product of the vectors</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector3D.Length">
- <summary>
- Computes the length of this vector
- </summary>
- <returns>The length of this vector</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector3D.Length(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Computes the length of vector <paramref name="v"/>.
- </summary>
- <param name="v">A coordinate representing a 3D Vector</param>
- <returns>The length of <paramref name="v"/></returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector3D.Normalize">
- <summary>
- Computes a vector having identical direction
- but normalized to have length 1.
- </summary>
- <returns>A new normalized vector</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector3D.Normalize(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Computes a vector having identical direction as <c>v</c>
- but normalized to have length 1.
- </summary>
- <param name="v">A coordinate representing a 3D vector</param>
- <returns>A coordinate representing the normalized vector</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector3D.ToString">
- <inheritdoc cref="M:System.Object.ToString"/>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector3D.Equals(System.Object)">
- <inheritdoc cref="M:System.Object.Equals(System.Object)"/>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector3D.GetHashCode">
- <inheritdoc cref="M:System.Object.GetHashCode"/>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector3D.op_Addition(NetTopologySuite.Mathematics.Vector3D,NetTopologySuite.Mathematics.Vector3D)">
- <summary>
- Adds two vectors.
- </summary>
- <param name="left">The first vector to add.</param>
- <param name="right">The second vector to add.</param>
- <returns>The sum of the two vectors.</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector3D.op_Multiply(NetTopologySuite.Mathematics.Vector3D,NetTopologySuite.Mathematics.Vector3D)">
- <summary>
- Modulates a vector with another by performing component-wise multiplication.
- </summary>
- <param name="left">The first vector to multiply.</param>
- <param name="right">The second vector to multiply.</param>
- <returns>The multiplication of the two vectors.</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector3D.op_UnaryPlus(NetTopologySuite.Mathematics.Vector3D)">
- <summary>
- Assert a vector (return it unchanged).
- </summary>
- <param name="value">The vector to assert (unchanged).</param>
- <returns>The asserted (unchanged) vector.</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector3D.op_Subtraction(NetTopologySuite.Mathematics.Vector3D,NetTopologySuite.Mathematics.Vector3D)">
- <summary>
- Subtracts two vectors.
- </summary>
- <param name="left">The first vector to subtract.</param>
- <param name="right">The second vector to subtract.</param>
- <returns>The difference of the two vectors.</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector3D.op_UnaryNegation(NetTopologySuite.Mathematics.Vector3D)">
- <summary>
- Reverses the direction of a given vector.
- </summary>
- <param name="value">The vector to negate.</param>
- <returns>A vector facing in the opposite direction.</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector3D.op_Multiply(System.Double,NetTopologySuite.Mathematics.Vector3D)">
- <summary>
- Scales a vector by the given value.
- </summary>
- <param name="value">The vector to scale.</param>
- <param name="scale">The amount by which to scale the vector.</param>
- <returns>The scaled vector.</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector3D.op_Multiply(NetTopologySuite.Mathematics.Vector3D,System.Double)">
- <summary>
- Scales a vector by the given value.
- </summary>
- <param name="value">The vector to scale.</param>
- <param name="scale">The amount by which to scale the vector.</param>
- <returns>The scaled vector.</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector3D.op_Division(NetTopologySuite.Mathematics.Vector3D,System.Double)">
- <summary>
- Scales a vector by the given value.
- </summary>
- <param name="value">The vector to scale.</param>
- <param name="scale">The amount by which to scale the vector.</param>
- <returns>The scaled vector.</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector3D.op_Division(NetTopologySuite.Mathematics.Vector3D,NetTopologySuite.Mathematics.Vector3D)">
- <summary>
- Scales a vector by the given value.
- </summary>
- <param name="value">The vector to scale.</param>
- <param name="scale">The amount by which to scale the vector.</param>
- <returns>The scaled vector.</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector3D.op_Equality(NetTopologySuite.Mathematics.Vector3D,NetTopologySuite.Mathematics.Vector3D)">
- <summary>
- Tests for equality between two objects.
- </summary>
- <param name="left">The first value to compare.</param>
- <param name="right">The second value to compare.</param>
- <returns><c>true</c> if <paramref name="left"/> has the same value as <paramref name="right"/>; otherwise, <c>false</c>.</returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.Vector3D.op_Inequality(NetTopologySuite.Mathematics.Vector3D,NetTopologySuite.Mathematics.Vector3D)">
- <summary>
- Tests for inequality between two objects.
- </summary>
- <param name="left">The first value to compare.</param>
- <param name="right">The second value to compare.</param>
- <returns><c>true</c> if <paramref name="left"/> has a different value than <paramref name="right"/>; otherwise, <c>false</c>.</returns>
- </member>
- <member name="T:NetTopologySuite.Mathematics.VectorMath">
- <summary>
- Functions for performing vector mathematics.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Mathematics.VectorMath.NormalToTriangle(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Computes the normal vector to the triangle p0-p1-p2. In order to compute the normal each
- triangle coordinate must have a Z value. If this is not the case, the returned Coordinate
- will have NaN values. The returned vector has unit length.
- </summary>
- <param name="p0">A point</param>
- <param name="p1">A point</param>
- <param name="p2">A point</param>
- <returns>The normal vector to the triangle <paramref name="p0"/>-<paramref name="p1"/>-<paramref name="p2"/></returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.VectorMath.Normalize(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Normalizes the vector <paramref name="v"/>
- </summary>
- <param name="v">The normalized <paramref name="v"/></param>
- </member>
- <member name="M:NetTopologySuite.Mathematics.VectorMath.CrossProduct(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Computes the cross product of <paramref name="v1"/> and <paramref name="v2"/>
- </summary>
- <param name="v1">A vector</param>
- <param name="v2">A vector</param>
- <returns>The cross product of <paramref name="v1"/> and <paramref name="v2"/></returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.VectorMath.DotProduct(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Computes the dot product of <paramref name="v1"/> and <paramref name="v2"/>
- </summary>
- <param name="v1">A vector</param>
- <param name="v2">A vector</param>
- <returns>The dot product of <paramref name="v1"/> and <paramref name="v2"/></returns>
- </member>
- <member name="M:NetTopologySuite.Mathematics.VectorMath.Det(System.Double,System.Double,System.Double,System.Double)">
- <summary>
- Computes the determinant of a 2x2 matrix
- </summary>
- <param name="a1">The m[0,0] value</param>
- <param name="a2">The m[0,1] value</param>
- <param name="b1">The m[1,0] value</param>
- <param name="b2">The m[1,1] value</param>
- <returns>The determinant</returns>
- </member>
- <member name="T:NetTopologySuite.Noding.BasicSegmentString">
- <summary>
- Represents a read-only list of contiguous line segments.
- This can be used for detection of intersections or nodes.
- <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s can carry a context object, which is useful
- for preserving topological or parentage information.
- <para/>
- If adding nodes is required use <see cref="T:NetTopologySuite.Noding.NodedSegmentString"/>.
- </summary>
- <seealso cref="T:NetTopologySuite.Noding.NodedSegmentString"/>
- </member>
- <member name="M:NetTopologySuite.Noding.BasicSegmentString.#ctor(NetTopologySuite.Geometries.Coordinate[],System.Object)">
- <summary>
- Creates a new segment string from a list of vertices.
- </summary>
- <param name="pts">the vertices of the segment string</param>
- <param name="data">the user-defined data of this segment string (may be null)</param>
- </member>
- <member name="P:NetTopologySuite.Noding.BasicSegmentString.Context">
- <summary>Gets the user-defined data for this segment string.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.BasicSegmentString.GetCoordinate(System.Int32)">
- <inheritdoc/>
- </member>
- <member name="P:NetTopologySuite.Noding.BasicSegmentString.Coordinates">
- <inheritdoc/>
- </member>
- <member name="P:NetTopologySuite.Noding.BasicSegmentString.IsClosed">
- <inheritdoc/>
- </member>
- <member name="P:NetTopologySuite.Noding.BasicSegmentString.Count">
- <inheritdoc/>
- </member>
- <member name="M:NetTopologySuite.Noding.BasicSegmentString.GetSegmentOctant(System.Int32)">
- <summary>
- Gets the octant of the segment starting at vertex <c>index</c>
- </summary>
- <param name="index">the index of the vertex starting the segment. Must not be the last index in the vertex list</param>
- <returns>octant of the segment at the vertex</returns>
- </member>
- <member name="M:NetTopologySuite.Noding.BasicSegmentString.ToString">
- <inheritdoc cref="M:System.Object.ToString"/>
- </member>
- <member name="T:NetTopologySuite.Noding.BoundaryChainNoder">
- <summary>
- A noder which extracts chains of boundary segments
- as {@link SegmentString}s from a polygonal coverage.
- Boundary segments are those which are not duplicated in the input polygonal coverage.
- Extracting chains of segments minimize the number of segment strings created,
- which produces a more efficient topological graph structure.
- <para/>
- This enables fast overlay of polygonal coverages in <see cref="T:NetTopologySuite.Coverage.CoverageUnion"/>.
- Using this noder is faster than <see cref="T:NetTopologySuite.Noding.SegmentExtractingNoder"/>
- and <see cref="T:NetTopologySuite.Noding.BoundarySegmentNoder"/>.
- <para/>
- No precision reduction is carried out.
- If that is required, another noder must be used (such as a snap-rounding noder),
- or the input must be precision-reduced beforehand.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Noding.BoundaryChainNoder.#ctor">
- <summary>
- Creates a new boundary-extracting noder.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.BoundaryChainNoder.ComputeNodes(System.Collections.Generic.IList{NetTopologySuite.Noding.ISegmentString})">
- <inheritdoc/>
- </member>
- <member name="M:NetTopologySuite.Noding.BoundaryChainNoder.GetNodedSubstrings">
- <inheritdoc/>
- </member>
- <member name="T:NetTopologySuite.Noding.BoundarySegmentNoder">
- <summary>
- A noder which extracts boundary line segments
- as <see cref="T:NetTopologySuite.Noding.ISegmentString"/>.
- Boundary segments are those which are not duplicated in the input.
- It is appropriate for use with valid polygonal coverages.
- <para/>
- No precision reduction is carried out.
- If that is required, another noder must be used (such as a snap-rounding noder),
- or the input must be precision-reduced beforehand.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Noding.BoundarySegmentNoder.#ctor">
- <summary>
- Creates a new segment-dissolving noder.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.BoundarySegmentNoder.ComputeNodes(System.Collections.Generic.IList{NetTopologySuite.Noding.ISegmentString})">
- <inheritdoc/>
- </member>
- <member name="M:NetTopologySuite.Noding.BoundarySegmentNoder.GetNodedSubstrings">
- <inheritdoc/>
- </member>
- <member name="T:NetTopologySuite.Noding.FastNodingValidator">
- <summary>
- Validates that a collection of <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s is correctly noded.
- Indexing is used to improve performance.
- </summary>
- <remarks>
- <para>
- By default validation stops after a single
- non-noded intersection is detected.
- Alternatively, it can be requested to detect all intersections
- by using the <see cref="P:NetTopologySuite.Noding.FastNodingValidator.FindAllIntersections"/> property.
- <para/>
- The validator does not check for topology collapse situations
- (e.g. where two segment strings are fully co-incident).
- <para/>
- The validator checks for the following situations which indicated incorrect noding:
- <list type="Bullen">
- <item><description>Proper intersections between segments (i.e. the intersection is interior to both segments)</description></item>
- <item><description>Intersections at an interior vertex (i.e. with an endpoint or another interior vertex)</description></item>
- </list>
- </para>
- <para>
- The client may either test the <see cref="P:NetTopologySuite.Noding.FastNodingValidator.IsValid"/> condition,
- or request that a suitable <see cref="T:NetTopologySuite.Geometries.TopologyException"/> be thrown.
- </para>
- </remarks>
- <seealso cref="T:NetTopologySuite.Noding.NodingValidator"/>
- </member>
- <member name="M:NetTopologySuite.Noding.FastNodingValidator.ComputeIntersections(System.Collections.Generic.IEnumerable{NetTopologySuite.Noding.ISegmentString})">
- <summary>
- Gets a list of all intersections found.
- Intersections are represented as <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s.
- List is empty if none were found.
- <param name="segStrings">A collection of SegmentStrings</param>
- <returns>a list of <see cref="T:NetTopologySuite.Geometries.Coordinate"/></returns>
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.FastNodingValidator.#ctor(System.Collections.Generic.IEnumerable{NetTopologySuite.Noding.ISegmentString})">
- <summary>
- Creates a new noding validator for a given set of linework.
- </summary>
- <param name="segStrings">A collection of <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s</param>
- </member>
- <member name="P:NetTopologySuite.Noding.FastNodingValidator.FindAllIntersections">
- <summary>
- Gets or sets whether all intersections should be found.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Noding.FastNodingValidator.Intersections">
- <summary>
- Gets a list of all intersections found.
- <remarks>
- Intersections are represented as <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s.
- List is empty if none were found.
- </remarks>
- </summary>
- </member>
- <member name="P:NetTopologySuite.Noding.FastNodingValidator.IsValid">
- <summary>
- Checks for an intersection and reports if one is found.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.FastNodingValidator.GetErrorMessage">
- <summary>
- Returns an error message indicating the segments containing the intersection.
- </summary>
- <returns>an error message documenting the intersection location</returns>
- </member>
- <member name="M:NetTopologySuite.Noding.FastNodingValidator.CheckValid">
- <summary>
- Checks for an intersection and throws
- a TopologyException if one is found.
- </summary>
- <exception cref="T:NetTopologySuite.Geometries.TopologyException">if an intersection is found</exception>
- </member>
- <member name="T:NetTopologySuite.Noding.FastSegmentSetIntersectionFinder">
- <summary>
- Finds if two sets of <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s intersect.
- </summary>
- <remarks>
- Uses indexing for fast performance and to optimize repeated tests
- against a target set of lines.
- Short-circuited to return as soon an intersection is found.
- <para/>
- Immutable and thread-safe.
- </remarks>
- </member>
- <member name="M:NetTopologySuite.Noding.FastSegmentSetIntersectionFinder.#ctor(System.Collections.Generic.IEnumerable{NetTopologySuite.Noding.ISegmentString})">
- <summary>
- Creates an intersection finder against a given set of segment strings.
- </summary>
- <param name="baseSegStrings">The segment strings to search for intersections</param>
- </member>
- <member name="M:NetTopologySuite.Noding.FastSegmentSetIntersectionFinder.#ctor(System.Collections.Generic.IEnumerable{NetTopologySuite.Noding.ISegmentString},NetTopologySuite.Algorithm.ElevationModel)">
- <summary>
- Creates an intersection finder against a given set of segment strings.
- </summary>
- <param name="baseSegStrings">The segment strings to search for intersections</param>
- <param name="em">An elevation model, may be <c>null</c></param>
- </member>
- <member name="P:NetTopologySuite.Noding.FastSegmentSetIntersectionFinder.SegmentSetIntersector">
- <summary>Gets the segment set intersector used by this class.</summary>
- <remarks>This allows other uses of the same underlying indexed structure.</remarks>
- </member>
- <member name="M:NetTopologySuite.Noding.FastSegmentSetIntersectionFinder.Intersects(System.Collections.Generic.IList{NetTopologySuite.Noding.ISegmentString})">
- <summary>
- Tests for intersections with a given set of target <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s.
- </summary>
- <param name="segStrings">The SegmentStrings to test</param>
- <returns><c>true</c> if an intersection was found</returns>
- </member>
- <member name="M:NetTopologySuite.Noding.FastSegmentSetIntersectionFinder.Intersects(System.Collections.Generic.IList{NetTopologySuite.Noding.ISegmentString},NetTopologySuite.Noding.SegmentIntersectionDetector)">
- <summary>
- Tests for intersections with a given set of target <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s.
- using a given SegmentIntersectionDetector.
- </summary>
- <param name="segStrings">The SegmentStrings to test</param>
- <param name="intDetector">The intersection detector to use</param>
- <returns><c>true</c> if the detector reports intersections</returns>
- </member>
- <member name="T:NetTopologySuite.Noding.INodableSegmentString">
- <summary>
- An interface for classes which support adding nodes to a segment string.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.INodableSegmentString.AddIntersection(NetTopologySuite.Geometries.Coordinate,System.Int32)">
- <summary>Adds an intersection node for a given point and segment to this segment string.
- </summary>
- <param name="intPt">the location of the intersection</param>
- <param name="segmentIndex">the index of the segment containing the intersection</param>
- </member>
- <member name="T:NetTopologySuite.Noding.INoder">
- <summary>
- Computes all intersections between segments in a set of <see cref="T:NetTopologySuite.Noding.ISegmentString" />s.
- Intersections found are represented as <see cref="T:NetTopologySuite.Noding.SegmentNode" />s and added to the
- <see cref="T:NetTopologySuite.Noding.ISegmentString" />s in which they occur.
- As a final step in the noding a new set of segment strings split at the nodes may be returned.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.INoder.ComputeNodes(System.Collections.Generic.IList{NetTopologySuite.Noding.ISegmentString})">
- <summary>
- Computes the noding for a collection of <see cref="T:NetTopologySuite.Noding.ISegmentString" />s.
- Some Noders may add all these nodes to the input <see cref="T:NetTopologySuite.Noding.ISegmentString" />s;
- others may only add some or none at all.
- </summary>
- <param name="segStrings"></param>
- </member>
- <member name="M:NetTopologySuite.Noding.INoder.GetNodedSubstrings">
- <summary>
- Returns a <see cref="T:System.Collections.Generic.IList`1" /> of fully noded <see cref="T:NetTopologySuite.Noding.ISegmentString" />s.
- The <see cref="T:NetTopologySuite.Noding.ISegmentString" />s have the same context as their parent.
- </summary>
- <returns></returns>
- </member>
- <member name="T:NetTopologySuite.Noding.InteriorIntersectionFinderAdder">
- <summary>
- Finds <b>interior</b> intersections
- between line segments in <see cref="T:NetTopologySuite.Noding.NodedSegmentString"/>s,
- and adds them as nodes
- using <see cref="M:NetTopologySuite.Noding.NodedSegmentString.AddIntersection(NetTopologySuite.Algorithm.LineIntersector,System.Int32,System.Int32,System.Int32)"/>.
- This class is used primarily for Snap-Rounding.
- For general-purpose noding, use <see cref="T:NetTopologySuite.Noding.IntersectionAdder"/>.
- </summary>
- <seealso cref="T:NetTopologySuite.Noding.IntersectionAdder"/>
- </member>
- <member name="M:NetTopologySuite.Noding.InteriorIntersectionFinderAdder.#ctor(NetTopologySuite.Algorithm.LineIntersector)">
- <summary>
- Creates an intersection finder which finds all proper intersections.
- </summary>
- <param name="li">The <see cref="T:NetTopologySuite.Algorithm.LineIntersector" /> to use.</param>
- </member>
- <member name="P:NetTopologySuite.Noding.InteriorIntersectionFinderAdder.InteriorIntersections">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.InteriorIntersectionFinderAdder.ProcessIntersections(NetTopologySuite.Noding.ISegmentString,System.Int32,NetTopologySuite.Noding.ISegmentString,System.Int32)">
- <summary>
- This method is called by clients
- of the <see cref="T:NetTopologySuite.Noding.ISegmentIntersector" /> class to process
- intersections for two segments of the <see cref="T:NetTopologySuite.Noding.ISegmentString" />s being intersected.<br/>
- Note that some clients (such as <c>MonotoneChain</c>s) may optimize away
- this call for segment pairs which they have determined do not intersect
- (e.g. by an disjoint envelope test).
- </summary>
- <param name="e0"></param>
- <param name="segIndex0"></param>
- <param name="e1"></param>
- <param name="segIndex1"></param>
- </member>
- <member name="P:NetTopologySuite.Noding.InteriorIntersectionFinderAdder.IsDone">
- <summary>
- Always process all intersections
- </summary>
- </member>
- <member name="T:NetTopologySuite.Noding.IntersectionAdder">
- <summary>
- Computes the possible intersections between two line segments in <see cref="T:NetTopologySuite.Noding.ISegmentString" />s
- and adds them to each string
- using <see cref="M:NetTopologySuite.Noding.NodedSegmentString.AddIntersection(NetTopologySuite.Algorithm.LineIntersector,System.Int32,System.Int32,System.Int32)"/>.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.IntersectionAdder.IsAdjacentSegments(System.Int32,System.Int32)">
- <summary>
-
- </summary>
- <param name="i1"></param>
- <param name="i2"></param>
- <returns></returns>
- </member>
- <member name="F:NetTopologySuite.Noding.IntersectionAdder.NumIntersections">
- <summary>
-
- </summary>
- </member>
- <member name="F:NetTopologySuite.Noding.IntersectionAdder.NumInteriorIntersections">
- <summary>
-
- </summary>
- </member>
- <member name="F:NetTopologySuite.Noding.IntersectionAdder.NumProperIntersections">
- <summary>
-
- </summary>
- </member>
- <member name="F:NetTopologySuite.Noding.IntersectionAdder.NumTests">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.IntersectionAdder.#ctor(NetTopologySuite.Algorithm.LineIntersector)">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.Noding.IntersectionAdder"/> class.
- </summary>
- <param name="li"></param>
- </member>
- <member name="P:NetTopologySuite.Noding.IntersectionAdder.LineIntersector">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.Noding.IntersectionAdder.ProperIntersectionPoint">
- <summary>
- Returns the proper intersection point, or <c>null</c> if none was found.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Noding.IntersectionAdder.HasIntersection">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.Noding.IntersectionAdder.HasProperIntersection">
- <summary>
- A proper intersection is an intersection which is interior to at least two
- line segments. Note that a proper intersection is not necessarily
- in the interior of the entire <see cref="T:NetTopologySuite.Geometries.Geometry" />, since another edge may have
- an endpoint equal to the intersection, which according to SFS semantics
- can result in the point being on the Boundary of the <see cref="T:NetTopologySuite.Geometries.Geometry" />.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Noding.IntersectionAdder.HasProperInteriorIntersection">
- <summary>
- A proper interior intersection is a proper intersection which is not
- contained in the set of boundary nodes set for this <see cref="T:NetTopologySuite.Noding.ISegmentIntersector" />.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Noding.IntersectionAdder.HasInteriorIntersection">
- <summary>
- An interior intersection is an intersection which is
- in the interior of some segment.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.IntersectionAdder.IsTrivialIntersection(NetTopologySuite.Noding.ISegmentString,System.Int32,NetTopologySuite.Noding.ISegmentString,System.Int32)">
- <summary>
- A trivial intersection is an apparent self-intersection which in fact
- is simply the point shared by adjacent line segments.
- Note that closed edges require a special check for the point shared by the beginning and end segments.
- </summary>
- <param name="e0"></param>
- <param name="segIndex0"></param>
- <param name="e1"></param>
- <param name="segIndex1"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Noding.IntersectionAdder.ProcessIntersections(NetTopologySuite.Noding.ISegmentString,System.Int32,NetTopologySuite.Noding.ISegmentString,System.Int32)">
- <summary>
- This method is called by clients
- of the <see cref="T:NetTopologySuite.Noding.ISegmentIntersector" /> class to process
- intersections for two segments of the <see cref="T:NetTopologySuite.Noding.ISegmentString" /> being intersected.<br/>
- Note that some clients (such as <c>MonotoneChain</c>") may optimize away
- this call for segment pairs which they have determined do not intersect
- (e.g. by an disjoint envelope test).
- </summary>
- <param name="e0"></param>
- <param name="segIndex0"></param>
- <param name="e1"></param>
- <param name="segIndex1"></param>
- </member>
- <member name="P:NetTopologySuite.Noding.IntersectionAdder.IsDone">
- <summary>
- Always process all intersections
- </summary>
- </member>
- <member name="T:NetTopologySuite.Noding.ISegmentIntersector">
- <summary>
- Processes possible intersections detected by a <see cref="T:NetTopologySuite.Noding.INoder"/>.
- </summary>
- <remarks>
- <para>
- The <see cref="T:NetTopologySuite.Noding.ISegmentIntersector" /> is passed to a <see cref="T:NetTopologySuite.Noding.INoder" />.
- </para>
- The <see cref="M:NetTopologySuite.Noding.ISegmentIntersector.ProcessIntersections(NetTopologySuite.Noding.ISegmentString,System.Int32,NetTopologySuite.Noding.ISegmentString,System.Int32)"/>
- method is called whenever the <see cref="T:NetTopologySuite.Noding.INoder" />
- detects that two <see cref="T:NetTopologySuite.Noding.ISegmentString" />s might intersect.
- <para>
- This class may be used either to find all intersections, or
- to detect the presence of an intersection. In the latter case,
- Noders may choose to short-circuit their computation by calling the
- <see cref="P:NetTopologySuite.Noding.ISegmentIntersector.IsDone"/> property.
- </para>
- <para>
- </para>
- This class is an example of the <i>Strategy</i> pattern.
- <para>
- This class may be used either to find all intersections, or
- to detect the presence of an intersection. In the latter case,
- Noders may choose to short-circuit their computation by calling the
- <see cref="P:NetTopologySuite.Noding.ISegmentIntersector.IsDone"/> property.
- </para>
- </remarks>
- </member>
- <member name="M:NetTopologySuite.Noding.ISegmentIntersector.ProcessIntersections(NetTopologySuite.Noding.ISegmentString,System.Int32,NetTopologySuite.Noding.ISegmentString,System.Int32)">
- <summary>
- This method is called by clients
- of the <see cref="T:NetTopologySuite.Noding.ISegmentIntersector" /> interface to process
- intersections for two segments of the <see cref="T:NetTopologySuite.Noding.ISegmentString" />s being intersected.
- </summary>
- <param name="e0"></param>
- <param name="segIndex0"></param>
- <param name="e1"></param>
- <param name="segIndex1"></param>
- </member>
- <member name="P:NetTopologySuite.Noding.ISegmentIntersector.IsDone">
- <summary>
- Reports whether the client of this class needs to continue testing
- all intersections in an arrangement.
- </summary>
- <returns>if there is no need to continue testing segments</returns>
- </member>
- <member name="T:NetTopologySuite.Noding.ISegmentString">
- <summary>
- An interface for classes which represent a sequence of contiguous line segments.
- SegmentStrings can carry a context object, which is useful
- for preserving topological or parentage information.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Noding.ISegmentString.Context">
- <summary>
- Gets/Sets the user-defined data for this segment string.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Noding.ISegmentString.Count">
- <summary>
- Gets the number of <c>Coordinate</c>s in this segment string.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Noding.ISegmentString.Coordinates">
- <summary>
- Points that make up <see cref="T:NetTopologySuite.Noding.ISegmentString"/>
- </summary>
- </member>
- <member name="P:NetTopologySuite.Noding.ISegmentString.IsClosed">
- <summary>
- States whether ISegmentString is closed
- </summary>
- </member>
- <member name="T:NetTopologySuite.Noding.SegmentStringEx">
- <summary>
- Extension methods to mimic JTS' default methods on SegmentString interface
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.SegmentStringEx.GetCoordinate(NetTopologySuite.Noding.ISegmentString,System.Int32)">
- <summary>
- Gets the segment string <c>Coordinate</c> at a given index
- </summary>
- <param name="self">A segment string forming a ring</param>
- <param name="idx">An index</param>
- <returns>The <c>Coordinate</c> at the index</returns>
- </member>
- <member name="M:NetTopologySuite.Noding.SegmentStringEx.PrevInRing(NetTopologySuite.Noding.ISegmentString,System.Int32)">
- <summary>
- Gets the previous vertex in a ring from a vertex index.
- </summary>
- <param name="self">A segment string forming a ring</param>
- <param name="index">The vertex index</param>
- <returns>The previous vertex in the ring</returns>
- <seealso cref="P:NetTopologySuite.Noding.ISegmentString.IsClosed"/>
- </member>
- <member name="M:NetTopologySuite.Noding.SegmentStringEx.NextInRing(NetTopologySuite.Noding.ISegmentString,System.Int32)">
- <summary>
- Gets the next vertex in a ring from a vertex index.
- </summary>
- <param name="self">A segment string forming a ring</param>
- <param name="index">The vertex index</param>
- <returns>The next vertex in the ring</returns>
- <seealso cref="P:NetTopologySuite.Noding.ISegmentString.IsClosed"/>
- </member>
- <member name="T:NetTopologySuite.Noding.IteratedNoder">
- <summary>
- Nodes a set of <see cref="T:NetTopologySuite.Noding.ISegmentString" />s completely.
- The set of <see cref="T:NetTopologySuite.Noding.ISegmentString" />s is fully noded;
- i.e. noding is repeated until no further intersections are detected.
- <para>
- Iterated noding using a <see cref="F:NetTopologySuite.Geometries.PrecisionModels.Floating" /> precision model is not guaranteed to converge,
- due to round off error. This problem is detected and an exception is thrown.
- Clients can choose to rerun the noding using a lower precision model.
- </para>
- </summary>
- </member>
- <member name="F:NetTopologySuite.Noding.IteratedNoder.MaxIterations">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.IteratedNoder.#ctor(NetTopologySuite.Geometries.PrecisionModel)">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.Noding.IteratedNoder"/> class.
- </summary>
- <param name="pm"></param>
- </member>
- <member name="P:NetTopologySuite.Noding.IteratedNoder.MaximumIterations">
- <summary>
- Gets/Sets the maximum number of noding iterations performed before
- the noding is aborted. Experience suggests that this should rarely need to be changed
- from the default. The default is <see cref="F:NetTopologySuite.Noding.IteratedNoder.MaxIterations" />.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.IteratedNoder.GetNodedSubstrings">
- <summary>
- Returns a <see cref="T:System.Collections.IList"/> of fully noded <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s.
- The <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s have the same context as their parent.
- </summary>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Noding.IteratedNoder.ComputeNodes(System.Collections.Generic.IList{NetTopologySuite.Noding.ISegmentString})">
- <summary>
- Fully nodes a list of <see cref="T:NetTopologySuite.Noding.ISegmentString" />s, i.e. performs noding iteratively
- until no intersections are found between segments.
- Maintains labelling of edges correctly through the noding.
- </summary>
- <param name="segStrings">A collection of SegmentStrings to be noded.</param>
- <exception cref="T:NetTopologySuite.Geometries.TopologyException">If the iterated noding fails to converge.</exception>
- </member>
- <member name="M:NetTopologySuite.Noding.IteratedNoder.Node(System.Collections.Generic.IList{NetTopologySuite.Noding.ISegmentString},System.Int32[])">
- <summary>
- Node the input segment strings once
- and create the split edges between the nodes.
- </summary>
- <param name="segStrings"></param>
- <param name="numInteriorIntersections"></param>
- </member>
- <member name="T:NetTopologySuite.Noding.MCIndexNoder">
- <summary>
- Nodes a set of <see cref="T:NetTopologySuite.Noding.ISegmentString" />s using a index based
- on <see cref="T:NetTopologySuite.Index.Chain.MonotoneChain" />s and a <see cref="T:NetTopologySuite.Index.ISpatialIndex`1" />.
- The <see cref="T:NetTopologySuite.Index.ISpatialIndex`1" /> used should be something that supports
- envelope (range) queries efficiently (such as a <c>Quadtree</c>"
- or <see cref="T:NetTopologySuite.Index.HPRtree.HPRtree`1" />.
- <para/>
- The noder supports using an overlap tolerance distance.
- This allows determining segment intersection using a buffer for uses
- involving snapping with a distance tolerance.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.MCIndexNoder.#ctor">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.Noding.MCIndexNoder"/> class.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.MCIndexNoder.#ctor(NetTopologySuite.Noding.ISegmentIntersector)">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.Noding.MCIndexNoder"/> class.
- </summary>
- <param name="si">The <see cref="T:NetTopologySuite.Noding.ISegmentIntersector"/> to use.</param>
- </member>
- <member name="M:NetTopologySuite.Noding.MCIndexNoder.#ctor(NetTopologySuite.Noding.ISegmentIntersector,System.Double)">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.Noding.MCIndexNoder"/> class.
- </summary>
- <param name="si">The <see cref="T:NetTopologySuite.Noding.ISegmentIntersector"/> to use.</param>
- <param name="overlapTolerance">The expansion distance for overlap tests</param>
- </member>
- <member name="P:NetTopologySuite.Noding.MCIndexNoder.MonotoneChains">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.Noding.MCIndexNoder.Index">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.MCIndexNoder.GetNodedSubstrings">
- <summary>
- Returns a <see cref="T:System.Collections.Generic.IList`1"/> of fully noded <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s.
- The <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s have the same context as their parent.
- </summary>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Noding.MCIndexNoder.ComputeNodes(System.Collections.Generic.IList{NetTopologySuite.Noding.ISegmentString})">
- <summary>
- Computes the noding for a collection of <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s.
- Some Noders may add all these nodes to the input <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s;
- others may only add some or none at all.
- </summary>
- <param name="inputSegStrings"></param>
- </member>
- <member name="M:NetTopologySuite.Noding.MCIndexNoder.IntersectChains">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.MCIndexNoder.Add(NetTopologySuite.Noding.ISegmentString)">
- <summary>
-
- </summary>
- <param name="segStr"></param>
- </member>
- <member name="T:NetTopologySuite.Noding.MCIndexNoder.SegmentOverlapAction">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.MCIndexNoder.SegmentOverlapAction.#ctor(NetTopologySuite.Noding.ISegmentIntersector)">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.Noding.MCIndexNoder.SegmentOverlapAction"/> class.
- </summary>
- <param name="si">The <see cref="T:NetTopologySuite.Noding.ISegmentIntersector" /></param>
- </member>
- <member name="M:NetTopologySuite.Noding.MCIndexNoder.SegmentOverlapAction.Overlap(NetTopologySuite.Index.Chain.MonotoneChain,System.Int32,NetTopologySuite.Index.Chain.MonotoneChain,System.Int32)">
- <summary>
-
- </summary>
- <param name="mc1"></param>
- <param name="start1"></param>
- <param name="mc2"></param>
- <param name="start2"></param>
- </member>
- <member name="T:NetTopologySuite.Noding.MCIndexSegmentSetMutualIntersector">
- <summary>
- Intersects two sets of <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s using a index based
- on <see cref="T:NetTopologySuite.Index.Chain.MonotoneChain"/>s and a <see cref="T:NetTopologySuite.Index.ISpatialIndex`1"/>.
- <para/>
- Thread-safe and immutable.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.MCIndexSegmentSetMutualIntersector.#ctor(System.Collections.Generic.IEnumerable{NetTopologySuite.Noding.ISegmentString})">
- <summary>
- Constructs a new intersector for a given set of <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s.
- </summary>
- <param name="baseSegStrings">The base segment strings to intersect</param>
- </member>
- <member name="M:NetTopologySuite.Noding.MCIndexSegmentSetMutualIntersector.#ctor(System.Collections.Generic.IEnumerable{NetTopologySuite.Noding.ISegmentString},NetTopologySuite.Geometries.Envelope)">
- <summary>
- Constructs a new intersector for a given set of <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s.
- </summary>
- <param name="baseSegStrings">The base segment strings to intersect</param>
- <param name="env">The envelope</param>
- </member>
- <member name="M:NetTopologySuite.Noding.MCIndexSegmentSetMutualIntersector.#ctor(System.Collections.Generic.IEnumerable{NetTopologySuite.Noding.ISegmentString},System.Double)">
- <summary>
- Constructs a new intersector for a given set of <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s.
- </summary>
- <param name="baseSegStrings">The base segment strings to intersect</param>
- <param name="overlapTolerance">A tolerance for overlapping segments</param>
- </member>
- <member name="P:NetTopologySuite.Noding.MCIndexSegmentSetMutualIntersector.Index">
- <summary>
- Gets the index constructed over the base segment strings
- </summary>
- <remarks>NOTE: To retain thread-safety, treat returned value as immutable</remarks>
- </member>
- <member name="M:NetTopologySuite.Noding.MCIndexSegmentSetMutualIntersector.Process(System.Collections.Generic.IEnumerable{NetTopologySuite.Noding.ISegmentString},NetTopologySuite.Noding.ISegmentIntersector)">
- <summary>
- Calls <see cref="M:NetTopologySuite.Noding.ISegmentIntersector.ProcessIntersections(NetTopologySuite.Noding.ISegmentString,System.Int32,NetTopologySuite.Noding.ISegmentString,System.Int32)"/>
- for all <i>candidate</i> intersections between
- the given collection of SegmentStrings and the set of indexed segments.
- </summary>
- <param name="segStrings">A set of segments to intersect</param>
- <param name="segInt">The <c>SegmentIntersector</c> to use</param>
- </member>
- <member name="T:NetTopologySuite.Noding.MCIndexSegmentSetMutualIntersector.SegmentOverlapAction">
- <summary>
- Segment overlap action class
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.MCIndexSegmentSetMutualIntersector.SegmentOverlapAction.#ctor(NetTopologySuite.Noding.ISegmentIntersector)">
- <summary>
- Creates an instance of this class using the provided <see cref="T:NetTopologySuite.Noding.ISegmentIntersector"/>
- </summary>
- <param name="si">The segment intersector to use</param>
- </member>
- <member name="T:NetTopologySuite.Noding.NodedSegmentString">
- <summary>
- Represents a list of contiguous line segments, and supports noding the segments.
- The line segments are represented by an array of <see cref="T:NetTopologySuite.Geometries.Coordinate" />s.
- Intended to optimize the noding of contiguous segments by
- reducing the number of allocated objects.
- <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s can carry a context object, which is useful
- for preserving topological or parentage information.
- All noded substrings are initialized with the same context object.
- <para/>
- For read-only applications use <see cref="T:NetTopologySuite.Noding.BasicSegmentString"/>,
- which is (slightly)more lightweight.
- </summary>
- <seealso cref="T:NetTopologySuite.Noding.BasicSegmentString"/>
- </member>
- <member name="M:NetTopologySuite.Noding.NodedSegmentString.GetNodedSubstrings(System.Collections.Generic.IEnumerable{NetTopologySuite.Noding.ISegmentString})">
- <summary>
- Gets the <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s which result from splitting this string at node points.
- </summary>
- <param name="segStrings">A collection of NodedSegmentStrings</param>
- <returns>A collection of NodedSegmentStrings representing the substrings</returns>
- </member>
- <member name="M:NetTopologySuite.Noding.NodedSegmentString.GetNodedSubstrings(System.Collections.Generic.IEnumerable{NetTopologySuite.Noding.ISegmentString},System.Collections.Generic.ICollection{NetTopologySuite.Noding.ISegmentString})">
- <summary>
- Adds the noded <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s which result from splitting this string at node points.
- </summary>
- <param name="segStrings">A collection of NodedSegmentStrings</param>
- <param name="resultEdgelist">A list which will collect the NodedSegmentStrings representing the substrings</param>
- </member>
- <member name="M:NetTopologySuite.Noding.NodedSegmentString.#ctor(NetTopologySuite.Geometries.Coordinate[],System.Object)">
- <summary>
- Creates an instance from a list of vertices and optional data object.
- </summary>
- <param name="pts">The vertices of the segment string.</param>
- <param name="context">The user-defined data of this segment string (may be null).</param>
- </member>
- <member name="M:NetTopologySuite.Noding.NodedSegmentString.#ctor(NetTopologySuite.Noding.ISegmentString)">
- <summary>
- Creates a new instance from a <see cref="T:NetTopologySuite.Noding.ISegmentString"/>.
- </summary>
- <param name="ss">The segment string to use.</param>
- </member>
- <member name="P:NetTopologySuite.Noding.NodedSegmentString.Context">
- <summary>
- Gets/Sets the user-defined data for this segment string.
- </summary>
- <remarks>In JTS this property is called <i>Data</i></remarks>
- </member>
- <member name="P:NetTopologySuite.Noding.NodedSegmentString.NodeList">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.Noding.NodedSegmentString.Count">
- <summary>
-
- </summary>
- <value></value>
- </member>
- <member name="M:NetTopologySuite.Noding.NodedSegmentString.GetCoordinate(System.Int32)">
- <summary>
-
- </summary>
- <param name="i"></param>
- <returns></returns>
- </member>
- <member name="P:NetTopologySuite.Noding.NodedSegmentString.Coordinates">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.Noding.NodedSegmentString.NodedCoordinates">
- <summary>
- Gets a list of coordinates with all nodes included.
- </summary>
- <returns>An array of coordinates including nodes</returns>
- </member>
- <member name="P:NetTopologySuite.Noding.NodedSegmentString.IsClosed">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.Noding.NodedSegmentString.HasNodes">
- <summary>
- Gets a value indicating if any nodes have been added.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.NodedSegmentString.GetSegmentOctant(System.Int32)">
- <summary>
- Gets the octant of the segment starting at vertex <c>index</c>.
- </summary>
- <param name="index">
- The index of the vertex starting the segment.
- Must not be the last index in the vertex list
- </param>
- <returns>The octant of the segment at the vertex</returns>
- </member>
- <member name="M:NetTopologySuite.Noding.NodedSegmentString.AddIntersections(NetTopologySuite.Algorithm.LineIntersector,System.Int32,System.Int32)">
- <summary>
- Adds EdgeIntersections for one or both
- intersections found for a segment of an edge to the edge intersection list.
- </summary>
- <param name="li"></param>
- <param name="segmentIndex"></param>
- <param name="geomIndex"></param>
- </member>
- <member name="M:NetTopologySuite.Noding.NodedSegmentString.AddIntersection(NetTopologySuite.Algorithm.LineIntersector,System.Int32,System.Int32,System.Int32)">
- <summary>
- Add an <see cref="T:NetTopologySuite.Noding.SegmentNode" /> for intersection intIndex.
- An intersection that falls exactly on a vertex
- of the <see cref="T:NetTopologySuite.Noding.NodedSegmentString" /> is normalized
- to use the higher of the two possible segmentIndexes.
- </summary>
- <param name="li"></param>
- <param name="segmentIndex"></param>
- <param name="geomIndex"></param>
- <param name="intIndex"></param>
- </member>
- <member name="M:NetTopologySuite.Noding.NodedSegmentString.AddIntersection(NetTopologySuite.Geometries.Coordinate,System.Int32)">
- <summary>
-
- </summary>
- <param name="intPt"></param>
- <param name="segmentIndex"></param>
- </member>
- <member name="M:NetTopologySuite.Noding.NodedSegmentString.AddIntersectionNode(NetTopologySuite.Geometries.Coordinate,System.Int32)">
- <summary>
- Adds an intersection node for a given point and segment to this segment string.
- If an intersection already exists for this exact location, the existing
- node will be returned.
- </summary>
- <param name="intPt">The location of the intersection</param>
- <param name="segmentIndex">The index of the segment containing the intersection</param>
- <returns>the intersection node for the point</returns>
- </member>
- <member name="M:NetTopologySuite.Noding.NodedSegmentString.ToString">
- <inheritdoc cref="M:System.Object.ToString"/>
- </member>
- <member name="T:NetTopologySuite.Noding.NodingIntersectionFinder">
- <summary>
- Finds non-noded intersections in a set of {@link SegmentString}s,
- if any exist.
- <para/>
- Non-noded intersections include:
- <list type="Bullet">
- <item><term>Interior intersections</term><description>which lie in the interior of a segment
- (with another segment interior or with a vertex or endpoint)</description></item>
- <item><term>Vertex intersections</term><description>which occur at vertices in the interior of <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s
- (with a segment string endpoint or with another interior vertex)</description></item>
- </list>
- The finder can be limited to finding only interior intersections
- by setting <see cref="P:NetTopologySuite.Noding.NodingIntersectionFinder.InteriorIntersectionsOnly"/>.
- <para/>
- By default only the first intersection is found,
- but all can be found by setting <see cref="P:NetTopologySuite.Noding.NodingIntersectionFinder.FindAllIntersections"/>.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.NodingIntersectionFinder.CreateAnyIntersectionFinder(NetTopologySuite.Algorithm.LineIntersector)">
- <summary>
- Creates a finder which tests if there is at least one intersection.
- Uses short-circuiting for efficient performance.
- The intersection found is recorded.
- </summary>
- <param name="li">A line intersector.</param>
- <returns>A finder which tests if there is at least one intersection.</returns>
- </member>
- <member name="M:NetTopologySuite.Noding.NodingIntersectionFinder.CreateAllIntersectionsFinder(NetTopologySuite.Algorithm.LineIntersector)">
- <summary>
- Creates a finder which tests if there is at least one intersection.
- The intersections are recorded for later inspection.
- </summary>
- <param name="li">A line intersector.</param>
- <returns>A finder which finds all intersections.</returns>
- </member>
- <member name="M:NetTopologySuite.Noding.NodingIntersectionFinder.CreateInteriorIntersectionsFinder(NetTopologySuite.Algorithm.LineIntersector)">
- <summary>
- Creates a finder which finds all interior intersections.
- The intersections are recorded for later inspection.
- </summary>
- <param name="li">A line intersector</param>
- <returns>A finder which finds all interior intersections.</returns>
- </member>
- <member name="M:NetTopologySuite.Noding.NodingIntersectionFinder.CreateIntersectionCounter(NetTopologySuite.Algorithm.LineIntersector)">
- <summary>
- Creates a finder which counts all intersections.
- The intersections are note recorded to reduce memory usage.
- </summary>
- <param name="li">A line intersector.</param>
- <returns>A finder which counts all intersections.</returns>
- </member>
- <member name="M:NetTopologySuite.Noding.NodingIntersectionFinder.CreateInteriorIntersectionCounter(NetTopologySuite.Algorithm.LineIntersector)">
- <summary>
- Creates a finder which counts all interior intersections.
- The intersections are note recorded to reduce memory usage.
- </summary>
- <param name="li">A line intersector.</param>
- <returns>A finder which counts all interior intersections.</returns>
- </member>
- <member name="M:NetTopologySuite.Noding.NodingIntersectionFinder.#ctor(NetTopologySuite.Algorithm.LineIntersector)">
- <summary>
- Creates an intersection finder which finds an interior intersection if one exists
- </summary>
- <param name="li">the LineIntersector to use</param>
- </member>
- <member name="P:NetTopologySuite.Noding.NodingIntersectionFinder.FindAllIntersections">
- <summary>
- Gets/Sets whether all intersections should be computed.
- <remarks>
- When this is <c>false</c> (the default value), the value of <see cref="P:NetTopologySuite.Noding.NodingIntersectionFinder.IsDone"/>
- is <c>true</c> after the first intersection is found.
- Default is <c>false</c>.
- </remarks>
- </summary>
- </member>
- <member name="P:NetTopologySuite.Noding.NodingIntersectionFinder.InteriorIntersectionsOnly">
- <summary>
- Gets or sets a value indicating whether only interior (proper) intersections will be found.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Noding.NodingIntersectionFinder.KeepIntersections">
- <summary>
- Gets/Sets whether intersection points are recorded.
- <remarks>
- If the only need is to count intersection points, this can be set to <c>false</c>.
- Default is <c>true</c>.
- </remarks>
- </summary>
- </member>
- <member name="P:NetTopologySuite.Noding.NodingIntersectionFinder.CheckEndSegmentsOnly">
- <summary>
- Gets/Sets whether only end segments should be tested for intersection.
- This is a performance optimization that may be used if
- the segments have been previously noded by an appropriate algorithm.
- It may be known that any potential noding failures will occur only in
- end segments.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Noding.NodingIntersectionFinder.HasIntersection">
- <summary>
- Tests whether an intersection was found.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Noding.NodingIntersectionFinder.Intersections">
- <summary>
- Gets the intersections found.
- </summary>
- <returns>A list of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>.</returns>
- </member>
- <member name="P:NetTopologySuite.Noding.NodingIntersectionFinder.Count">
- <summary>
- Gets the count of intersections found.
- </summary>
- <returns>The intersection count.</returns>
- </member>
- <member name="P:NetTopologySuite.Noding.NodingIntersectionFinder.InteriorIntersection">
- <summary>
- Gets the computed location of the intersection.
- Due to round-off, the location may not be exact.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Noding.NodingIntersectionFinder.Intersection">
- <summary>
- Gets the computed location of the intersection.
- Due to round-off, the location may not be exact.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Noding.NodingIntersectionFinder.IntersectionSegments">
- <summary>
- Gets the endpoints of the intersecting segments.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.NodingIntersectionFinder.ProcessIntersections(NetTopologySuite.Noding.ISegmentString,System.Int32,NetTopologySuite.Noding.ISegmentString,System.Int32)">
- <summary>
- This method is called by clients of the <see cref="T:NetTopologySuite.Noding.ISegmentIntersector"/> class to process
- intersections for two segments of the <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s being intersected.<br/>
- Note that some clients (such as <c>MonotoneChain</c>s) may optimize away
- this call for segment pairs which they have determined do not intersect
- (e.g. by an disjoint envelope test).
- </summary>
- <param name="e0"></param>
- <param name="segIndex0"></param>
- <param name="e1"></param>
- <param name="segIndex1"></param>
- </member>
- <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)">
- <summary>
- Tests if an intersection occurs between a segmentString interior vertex and another vertex.
- Note that intersections between two endpoint vertices are valid noding,
- and are not flagged.
- </summary>
- <param name="p00">A segment vertex</param>
- <param name="p01">A segment vertex</param>
- <param name="p10">A segment vertex</param>
- <param name="p11">A segment vertex</param>
- <param name="isEnd00">true if vertex is a segmentString endpoint</param>
- <param name="isEnd01">true if vertex is a segmentString endpoint</param>
- <param name="isEnd10">true if vertex is a segmentString endpoint</param>
- <param name="isEnd11">true if vertex is a segmentString endpoint</param>
- <returns><c>true</c> if an intersection is found/</returns>
- </member>
- <member name="M:NetTopologySuite.Noding.NodingIntersectionFinder.IsInteriorVertexIntersection(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,System.Boolean,System.Boolean)">
- <summary>
- Tests if two vertices with at least one in a segmentString interior
- are equal.
- </summary>
- <param name="p0">A segment vertex</param>
- <param name="p1">A segment vertex</param>
- <param name="isEnd0"><c>true</c> if vertex is a segmentString endpoint</param>
- <param name="isEnd1"><c>true</c> if vertex is a segmentString endpoint</param>
- <returns><c>true</c> if an intersection is found</returns>
- </member>
- <member name="M:NetTopologySuite.Noding.NodingIntersectionFinder.IsEndSegment(NetTopologySuite.Noding.ISegmentString,System.Int32)">
- <summary>
- Tests whether a segment in a <see cref="T:NetTopologySuite.Noding.ISegmentString" /> is an end segment.
- (either the first or last).
- </summary>
- <param name="segStr">a segment string</param>
- <param name="index">the index of a segment in the segment string</param>
- <returns>true if the segment is an end segment</returns>
- </member>
- <member name="P:NetTopologySuite.Noding.NodingIntersectionFinder.IsDone">
- <summary>
-
- </summary>
- </member>
- <member name="T:NetTopologySuite.Noding.NodingValidator">
- <summary>
- Validates that a collection of <see cref="T:NetTopologySuite.Noding.ISegmentString" />s is correctly noded.
- Throws an appropriate exception if an noding error is found.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.NodingValidator.#ctor(System.Collections.Generic.IList{NetTopologySuite.Noding.ISegmentString})">
- <summary>
- Creates a new validator for the given collection
- of <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s.
- </summary>
- <param name="segStrings">The seg strings.</param>
- </member>
- <member name="M:NetTopologySuite.Noding.NodingValidator.CheckValid">
- <summary>
- Checks whether the supplied segment strings
- are correctly noded. Throws an exception if they are not.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.NodingValidator.CheckCollapses">
- <summary>
- Checks if a segment string contains a segment pattern a-b-a (which implies a self-intersection).
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.NodingValidator.CheckInteriorIntersections">
- <summary>
- Checks all pairs of segments for intersections at an interior point of a segment.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.NodingValidator.CheckEndPtVertexIntersections">
- <summary>
- Checks for intersections between an endpoint of a segment string
- and an interior vertex of another segment string
- </summary>
- </member>
- <member name="T:NetTopologySuite.Noding.Octants">
- <summary>
- Octants in the Cartesian plane.
- Octants are numbered as follows:
- <para>
- \2|1/
- 3 \|/ 0
- ---+--
- 4 /|\ 7
- /5|6\
- </para>
- If line segments lie along a coordinate axis, the octant is the lower of the two possible values.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Noding.Octants.Null">
- <summary>
-
- </summary>
- </member>
- <member name="F:NetTopologySuite.Noding.Octants.Zero">
- <summary>
-
- </summary>
- </member>
- <member name="F:NetTopologySuite.Noding.Octants.One">
- <summary>
-
- </summary>
- </member>
- <member name="F:NetTopologySuite.Noding.Octants.Two">
- <summary>
-
- </summary>
- </member>
- <member name="F:NetTopologySuite.Noding.Octants.Three">
- <summary>
-
- </summary>
- </member>
- <member name="F:NetTopologySuite.Noding.Octants.Four">
- <summary>
-
- </summary>
- </member>
- <member name="F:NetTopologySuite.Noding.Octants.Five">
- <summary>
-
- </summary>
- </member>
- <member name="F:NetTopologySuite.Noding.Octants.Six">
- <summary>
-
- </summary>
- </member>
- <member name="F:NetTopologySuite.Noding.Octants.Seven">
- <summary>
-
- </summary>
- </member>
- <member name="T:NetTopologySuite.Noding.Octant">
- <summary>
- Methods for computing and working with <see cref="T:NetTopologySuite.Noding.Octants"/> of the Cartesian plane.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.Octant.GetOctant(System.Double,System.Double)">
- <summary>
- Returns the octant of a directed line segment (specified as x and y
- displacements, which cannot both be 0).
- </summary>
- <param name="dx"></param>
- <param name="dy"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Noding.Octant.GetOctant(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Returns the octant of a directed line segment from p0 to p1.
- </summary>
- <param name="p0"></param>
- <param name="p1"></param>
- <returns></returns>
- </member>
- <member name="T:NetTopologySuite.Noding.OrientedCoordinateArray">
- <summary>
- Allows comparing <see cref="T:NetTopologySuite.Geometries.Coordinate" /> arrays in an orientation-independent way.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.OrientedCoordinateArray.#ctor(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Creates a new <see cref="T:NetTopologySuite.Noding.OrientedCoordinateArray" />}
- for the given <see cref="T:NetTopologySuite.Geometries.Coordinate" /> array.
- </summary>
- <param name="pts"></param>
- </member>
- <member name="M:NetTopologySuite.Noding.OrientedCoordinateArray.Orientation(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Computes the canonical orientation for a coordinate array.
- </summary>
- <param name="pts"></param>
- <returns>
- <c>true</c> if the points are oriented forwards <br/>
- or <c>false</c>if the points are oriented in reverse.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Noding.OrientedCoordinateArray.CompareTo(System.Object)">
- <summary>
- Compares two <see cref="T:NetTopologySuite.Noding.OrientedCoordinateArray" />s for their relative order.
- </summary>
- <param name="o1"></param>
- <returns>
- -1 this one is smaller;<br/>
- 0 the two objects are equal;<br/>
- 1 this one is greater.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Noding.OrientedCoordinateArray.CompareOriented(NetTopologySuite.Geometries.Coordinate[],System.Boolean,NetTopologySuite.Geometries.Coordinate[],System.Boolean)">
- <summary>
-
- </summary>
- <param name="pts1"></param>
- <param name="orientation1"></param>
- <param name="pts2"></param>
- <param name="orientation2"></param>
- <returns></returns>
- </member>
- <member name="T:NetTopologySuite.Noding.ScaledNoder">
- <summary>
- Wraps a <see cref="T:NetTopologySuite.Noding.INoder" /> and transforms its input into the integer domain.
- This is intended for use with Snap-Rounding noders,
- which typically are only intended to work in the integer domain.
- <para>
- Clients should be aware that rescaling can involve loss of precision,
- which can cause zero-length line segments to be created.
- These in turn can cause problems when used to build a planar graph.
- This situation should be checked for and collapsed segments removed if necessary.
- </para>
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.ScaledNoder.#ctor(NetTopologySuite.Noding.INoder,System.Double)">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.Noding.ScaledNoder"/> class.
- </summary>
- <param name="noder">The noder to use</param>
- <param name="scaleFactor">The scale factor to use</param>
- </member>
- <member name="P:NetTopologySuite.Noding.ScaledNoder.IsIntegerPrecision">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.ScaledNoder.GetNodedSubstrings">
- <summary>
-
- </summary>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Noding.ScaledNoder.ComputeNodes(System.Collections.Generic.IList{NetTopologySuite.Noding.ISegmentString})">
- <summary>
-
- </summary>
- <param name="inputSegStrings"></param>
- </member>
- <member name="M:NetTopologySuite.Noding.ScaledNoder.Scale(System.Collections.Generic.IList{NetTopologySuite.Noding.ISegmentString})">
- <summary>
-
- </summary>
- <param name="segStrings"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Noding.ScaledNoder.Scale(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
-
- </summary>
- <param name="pts"></param>
- <returns></returns>
- </member>
- <member name="T:NetTopologySuite.Noding.SegmentExtractingNoder">
- <summary>
- A noder which extracts all line segments
- as <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s.
- This enables fast overlay of geometries which are known to be already fully noded.
- In particular, it provides fast union of polygonal and linear coverages.
- Unioning a noded set of lines is an effective way
- to perform line merging and line dissolving.
- <para/>
- No precision reduction is carried out.
- If that is required, another noder must be used (such as a snap-rounding noder),
- or the input must be precision-reduced beforehand.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="T:NetTopologySuite.Noding.SegmentIntersectionDetector">
- <summary>
- Detects and records an intersection between two <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s,
- if one exists. Only a single intersection is recorded.
- </summary>
- <remarks>
- This strategy can be configured to search for <b>proper</b> intersections.
- In this case, the presence of <i>any</i> intersection will still be recorded,
- but searching will continue until either a proper intersection has been found
- or no intersections are detected.
- </remarks>
- </member>
- <member name="M:NetTopologySuite.Noding.SegmentIntersectionDetector.#ctor">
- <summary>
- Creates an intersection finder using a <see cref="T:NetTopologySuite.Algorithm.RobustLineIntersector"/>
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.SegmentIntersectionDetector.#ctor(NetTopologySuite.Algorithm.ElevationModel)">
- <summary>
- Creates an intersection finder using a <see cref="T:NetTopologySuite.Algorithm.RobustLineIntersector"/>
- with an <see cref="T:NetTopologySuite.Algorithm.ElevationModel"/>
- </summary>
- <param name="em">An elevation model. May be <c>null</c></param>
- </member>
- <member name="M:NetTopologySuite.Noding.SegmentIntersectionDetector.#ctor(NetTopologySuite.Algorithm.LineIntersector)">
- <summary>
- Creates an intersection finder using a given <see cref="T:NetTopologySuite.Algorithm.LineIntersector"/>
- </summary>
- <param name="li">The LineIntersector to use</param>
- </member>
- <member name="P:NetTopologySuite.Noding.SegmentIntersectionDetector.FindProper">
- <summary>
- Gets or sets whether processing must continue until a proper intersection is found
- </summary>
- </member>
- <member name="P:NetTopologySuite.Noding.SegmentIntersectionDetector.FindAllIntersectionTypes">
- <summary>
- Gets or sets whether processing can terminate once any intersection is found.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Noding.SegmentIntersectionDetector.HasIntersection">
- <summary>
- Tests whether an intersection was found.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Noding.SegmentIntersectionDetector.HasProperIntersection">
- <summary>
- Tests whether a proper intersection was found.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Noding.SegmentIntersectionDetector.HasNonProperIntersection">
- <summary>
- Tests whether a non-proper intersection was found.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Noding.SegmentIntersectionDetector.Intersection">
- <summary>
- Gets the computed location of the intersection. Due to round-off, the location may not be exact.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Noding.SegmentIntersectionDetector.IntersectionSegments">
- <summary>Gets the endpoints of the intersecting segments.
- </summary>
- <remarks>An array of the segment endpoints (p00, p01, p10, p11)</remarks>
- </member>
- <member name="M:NetTopologySuite.Noding.SegmentIntersectionDetector.ProcessIntersections(NetTopologySuite.Noding.ISegmentString,System.Int32,NetTopologySuite.Noding.ISegmentString,System.Int32)">
- <summary>
- This method is called by clients of the <see cref="T:NetTopologySuite.Noding.ISegmentIntersector"/> class to process
- intersections for two segments of the <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s being intersected.
- </summary>
- <remarks>
- Note that some clients (such as <c>MonotoneChain</c>s) may optimize away
- this call for segment pairs which they have determined do not intersect
- (e.g. by an disjoint envelope test).
- </remarks>
- </member>
- <member name="P:NetTopologySuite.Noding.SegmentIntersectionDetector.IsDone">
- <summary>
- Tests whether processing can terminate,
- because all required information has been obtained
- (e.g. an intersection of the desired type has been detected).
- </summary>
- </member>
- <member name="T:NetTopologySuite.Noding.SegmentNode">
- <summary>
- Represents an intersection point between two <see cref="T:NetTopologySuite.Noding.ISegmentString" />s.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Noding.SegmentNode.Coord">
- <summary>
-
- </summary>
- </member>
- <member name="F:NetTopologySuite.Noding.SegmentNode.SegmentIndex">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.SegmentNode.#ctor(NetTopologySuite.Noding.INodableSegmentString,NetTopologySuite.Geometries.Coordinate,System.Int32,NetTopologySuite.Noding.Octants)">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.Noding.SegmentNode"/> class.
- </summary>
- <param name="segString"></param>
- <param name="coord"></param>
- <param name="segmentIndex"></param>
- <param name="segmentOctant"></param>
- </member>
- <member name="P:NetTopologySuite.Noding.SegmentNode.Coordinate">
- <summary>
- Gets the <see cref="T:NetTopologySuite.Geometries.Coordinate"/> giving the location of this node.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Noding.SegmentNode.IsInterior">
- <summary>
-
- </summary>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Noding.SegmentNode.IsEndPoint(System.Int32)">
- <summary>
-
- </summary>
- <param name="maxSegmentIndex"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Noding.SegmentNode.CompareTo(System.Object)">
- <summary>
- </summary>
- <param name="obj"></param>
- <returns>
- -1 this SegmentNode is located before the argument location;<br/>
- 0 this SegmentNode is at the argument location;<br/>
- 1 this SegmentNode is located after the argument location.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Noding.SegmentNode.Write(System.IO.StreamWriter)">
- <summary>
-
- </summary>
- <param name="outstream"></param>
- </member>
- <member name="M:NetTopologySuite.Noding.SegmentNode.ToString">
- <inheritdoc cref="M:System.Object.ToString"/>>
- </member>
- <member name="T:NetTopologySuite.Noding.SegmentNodeList">
- <summary>
- A list of the <see cref="T:NetTopologySuite.Noding.SegmentNode" />s present along a noded <see cref="T:NetTopologySuite.Noding.ISegmentString"/>.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.SegmentNodeList.#ctor(NetTopologySuite.Noding.NodedSegmentString)">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.Noding.SegmentNodeList"/> class.
- </summary>
- <param name="edge">The edge.</param>
- </member>
- <member name="P:NetTopologySuite.Noding.SegmentNodeList.Count">
- <summary>
- Gets a value indicating the number of nodes in the list.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Noding.SegmentNodeList.Edge">
- <summary>
-
- </summary>
- <value></value>
- </member>
- <member name="M:NetTopologySuite.Noding.SegmentNodeList.Add(NetTopologySuite.Geometries.Coordinate,System.Int32)">
- <summary>
- Adds an intersection into the list, if it isn't already there.
- The input segmentIndex and dist are expected to be normalized.
- </summary>
- <param name="intPt"></param>
- <param name="segmentIndex"></param>
- <returns>The SegmentIntersection found or added.</returns>
- </member>
- <member name="M:NetTopologySuite.Noding.SegmentNodeList.GetEnumerator">
- <summary>
- Returns an iterator of SegmentNodes.
- </summary>
- <returns>An iterator of SegmentNodes.</returns>
- </member>
- <member name="M:NetTopologySuite.Noding.SegmentNodeList.AddEndpoints">
- <summary>
- Adds nodes for the first and last points of the edge.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.SegmentNodeList.AddCollapsedNodes">
- <summary>
- Adds nodes for any collapsed edge pairs.
- Collapsed edge pairs can be caused by inserted nodes, or they can be
- pre-existing in the edge vertex list.
- In order to provide the correct fully noded semantics,
- the vertex at the base of a collapsed pair must also be added as a node.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.SegmentNodeList.FindCollapsesFromExistingVertices(System.Collections.Generic.List{System.Int32})">
- <summary>
- Adds nodes for any collapsed edge pairs
- which are pre-existing in the vertex list.
- </summary>
- <param name="collapsedVertexIndexes"></param>
- </member>
- <member name="M:NetTopologySuite.Noding.SegmentNodeList.FindCollapsesFromInsertedNodes(System.Collections.Generic.List{System.Int32})">
- <summary>
- Adds nodes for any collapsed edge pairs caused by inserted nodes
- Collapsed edge pairs occur when the same coordinate is inserted as a node
- both before and after an existing edge vertex.
- To provide the correct fully noded semantics,
- the vertex must be added as a node as well.
- </summary>
- <param name="collapsedVertexIndexes"></param>
- </member>
- <member name="M:NetTopologySuite.Noding.SegmentNodeList.FindCollapseIndex(NetTopologySuite.Noding.SegmentNode,NetTopologySuite.Noding.SegmentNode,System.Int32@)">
- <summary>
-
- </summary>
- <param name="ei0"></param>
- <param name="ei1"></param>
- <param name="collapsedVertexIndex"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Noding.SegmentNodeList.AddSplitEdges(System.Collections.Generic.ICollection{NetTopologySuite.Noding.ISegmentString})">
- <summary>
- Creates new edges for all the edges that the intersections in this
- list split the parent edge into.
- Adds the edges to the provided argument list
- (this is so a single list can be used to accumulate all split edges
- for a set of <see cref="T:NetTopologySuite.Noding.ISegmentString" />s).
- </summary>
- <param name="edgeList"></param>
- </member>
- <member name="M:NetTopologySuite.Noding.SegmentNodeList.CreateSplitEdge(NetTopologySuite.Noding.SegmentNode,NetTopologySuite.Noding.SegmentNode)">
- <summary>
- Create a new "split edge" with the section of points between
- (and including) the two intersections.
- The label for the new edge is the same as the label for the parent edge.
- </summary>
- <param name="ei0"></param>
- <param name="ei1"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Noding.SegmentNodeList.CreateSplitEdgePts(NetTopologySuite.Noding.SegmentNode,NetTopologySuite.Noding.SegmentNode)">
- <summary>
- Extracts the points for a split edge running between two nodes.
- The extracted points should contain no duplicate points.
- There should always be at least two points extracted
- (which will be the given nodes).
- </summary>
- <param name="ei0">The start node of the split edge</param>
- <param name="ei1">The end node of the split edge</param>
- <returns>The points for the split edge</returns>
- </member>
- <member name="M:NetTopologySuite.Noding.SegmentNodeList.GetSplitCoordinates">
- <summary>Gets the list of coordinates for the fully noded segment string,
- including all original segment string vertices and vertices
- introduced by nodes in this list.
- Repeated coordinates are collapsed.
- </summary>
- <returns>An array of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s</returns>
- </member>
- <member name="M:NetTopologySuite.Noding.SegmentNodeList.Write(System.IO.StreamWriter)">
- <summary>
-
- </summary>
- <param name="outstream"></param>
- </member>
- <member name="T:NetTopologySuite.Noding.NodeVertexIterator">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.NodeVertexIterator.#ctor(NetTopologySuite.Noding.SegmentNodeList)">
- <summary>
-
- </summary>
- <param name="nodeList"></param>
- </member>
- <member name="M:NetTopologySuite.Noding.NodeVertexIterator.ReadNextNode">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.Noding.NodeVertexIterator.Current">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.NodeVertexIterator.MoveNext">
- <summary>
-
- </summary>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Noding.NodeVertexIterator.Reset">
- <summary>
-
- </summary>
- </member>
- <member name="T:NetTopologySuite.Noding.SegmentPointComparator">
- <summary>
- Implements a robust method of comparing the relative position of two points along the same segment.
- The coordinates are assumed to lie "near" the segment.
- This means that this algorithm will only return correct results
- if the input coordinates have the same precision and correspond to rounded values
- of exact coordinates lying on the segment.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.SegmentPointComparator.Compare(NetTopologySuite.Noding.Octants,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Compares two <see cref="T:NetTopologySuite.Geometries.Coordinate" />s for their relative position along a segment
- lying in the specified <see cref="T:NetTopologySuite.Noding.Octant" />.
- </summary>
- <param name="octant"></param>
- <param name="p0"></param>
- <param name="p1"></param>
- <returns>
- -1 if node0 occurs first, or<br/>
- 0 if the two nodes are equal, or <br/>
- 1 if node1 occurs first.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Noding.SegmentPointComparator.RelativeSign(System.Double,System.Double)">
- <summary>
-
- </summary>
- <param name="x0"></param>
- <param name="x1"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Noding.SegmentPointComparator.CompareValue(System.Int32,System.Int32)">
- <summary>
-
- </summary>
- <param name="compareSign0"></param>
- <param name="compareSign1"></param>
- <returns></returns>
- </member>
- <member name="T:NetTopologySuite.Noding.ISegmentSetMutualIntersector">
- <summary>
- An intersector for the red-blue intersection problem.
- In this class of line arrangement problem,
- two disjoint sets of linestrings are intersected.
- <para/>
- Implementing classes must provide a way
- of supplying the base set of segment strings to
- test against (e.g. in the constructor,
- for straightforward thread-safety).
- <para/>
- In order to allow optimizing processing,
- the following condition is assumed to hold for each set:
- <list Type="Bullet">
- <item><description>the only intersection between any two linestrings occurs at their endpoints.</description></item>
- </list>
- Implementations can take advantage of this fact to optimize processing
- (i.e. by avoiding testing for intersections between linestrings
- belonging to the same set).
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.ISegmentSetMutualIntersector.Process(System.Collections.Generic.IEnumerable{NetTopologySuite.Noding.ISegmentString},NetTopologySuite.Noding.ISegmentIntersector)">
- <summary>
- Computes the intersections with a given set of <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s,
- using the supplied <see cref="T:NetTopologySuite.Noding.ISegmentIntersector"/>.
- </summary>
- <param name="segmentStrings">A collection of <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s to node</param>
- <param name="segmentIntersector">The intersection detector to either record intersection occurrences
- or add intersection nodes to the input segment strings.</param>
- </member>
- <member name="T:NetTopologySuite.Noding.SegmentStringDissolver">
- <summary>
- Dissolves a noded collection of <see cref="T:NetTopologySuite.Noding.ISegmentString" />s to produce
- a set of merged linework with unique segments.
- </summary>
- <remarks>
- A custom <see cref="T:NetTopologySuite.Noding.SegmentStringDissolver.ISegmentStringMerger"/> merging strategy
- can be supplied.
- This strategy will be called when two identical (up to orientation)
- strings are dissolved together.
- The default merging strategy is simply to discard one of the merged strings.
- <para>
- A common use for this class is to merge noded edges
- while preserving topological labelling.
- This requires a custom merging strategy to be supplied
- to merge the topology labels appropriately.
- </para>
- </remarks>
- </member>
- <member name="T:NetTopologySuite.Noding.SegmentStringDissolver.ISegmentStringMerger">
- <summary>
- A merging strategy which can be used to update the context data of <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s
- which are merged during the dissolve process.
- </summary>
- <author>mbdavis</author>
- </member>
- <member name="M:NetTopologySuite.Noding.SegmentStringDissolver.ISegmentStringMerger.Merge(NetTopologySuite.Noding.ISegmentString,NetTopologySuite.Noding.ISegmentString,System.Boolean)">
- <summary>
- Updates the context data of a <see cref="T:NetTopologySuite.Noding.ISegmentString" />
- when an identical (up to orientation) one is found during dissolving.
- </summary>
- <param name="mergeTarget">The segment string to update.</param>
- <param name="ssToMerge">The segment string being dissolved.</param>
- <param name="isSameOrientation">
- <c>true</c> if the strings are in the same direction,
- <c>false</c> if they are opposite.
- </param>
- </member>
- <member name="M:NetTopologySuite.Noding.SegmentStringDissolver.#ctor(NetTopologySuite.Noding.SegmentStringDissolver.ISegmentStringMerger)">
- <summary>
- Creates a dissolver with a user-defined merge strategy.
- </summary>
- <param name="merger"></param>
- </member>
- <member name="M:NetTopologySuite.Noding.SegmentStringDissolver.#ctor">
- <summary>
- Creates a dissolver with the default merging strategy.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.SegmentStringDissolver.Dissolve(System.Collections.Generic.IEnumerable{NetTopologySuite.Noding.ISegmentString})">
- <summary>
- Dissolve all <see cref="T:NetTopologySuite.Noding.ISegmentString" />s in the input <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
- </summary>
- <param name="segStrings"></param>
- </member>
- <member name="M:NetTopologySuite.Noding.SegmentStringDissolver.Add(NetTopologySuite.Noding.OrientedCoordinateArray,NetTopologySuite.Noding.ISegmentString)">
- <summary>
-
- </summary>
- <param name="oca"></param>
- <param name="segString"></param>
- </member>
- <member name="M:NetTopologySuite.Noding.SegmentStringDissolver.Dissolve(NetTopologySuite.Noding.ISegmentString)">
- <summary>
- Dissolve the given <see cref="T:NetTopologySuite.Noding.ISegmentString" />.
- </summary>
- <param name="segString"></param>
- </member>
- <member name="M:NetTopologySuite.Noding.SegmentStringDissolver.FindMatching(NetTopologySuite.Noding.OrientedCoordinateArray)">
- <returns></returns>
- </member>
- <member name="P:NetTopologySuite.Noding.SegmentStringDissolver.Dissolved">
- <summary>
- Gets the collection of dissolved (i.e. unique) <see cref="T:NetTopologySuite.Noding.ISegmentString" />s
- </summary>
- </member>
- <member name="T:NetTopologySuite.Noding.SegmentStringUtil">
- <summary>
- Utility methods for processing <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Noding.SegmentStringUtil.ExtractSegmentStrings(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Extracts all linear components from a given <see cref="T:NetTopologySuite.Geometries.Geometry"/>
- to <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s.<br/>
- The <see cref="T:NetTopologySuite.Noding.ISegmentString"/>'s data item is set to be the source <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
- </summary>
- <param name="geom">The <see cref="T:NetTopologySuite.Geometries.Geometry"/> to extract from.</param>
- <returns>a list of <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s.</returns>
- </member>
- <member name="M:NetTopologySuite.Noding.SegmentStringUtil.ExtractNodedSegmentStrings(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Extracts all linear components from a given <see cref="T:NetTopologySuite.Geometries.Geometry"/>
- to <see cref="T:NetTopologySuite.Noding.NodedSegmentString"/>s.<br/>
- The <see cref="T:NetTopologySuite.Noding.NodedSegmentString"/>'s data item is set to be the source <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
- </summary>
- <param name="geom">The <see cref="T:NetTopologySuite.Geometries.Geometry"/> to extract from.</param>
- <returns>a list of <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s.</returns>
- </member>
- <member name="M:NetTopologySuite.Noding.SegmentStringUtil.ExtractBasicSegmentStrings(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Extracts all linear components from a given <see cref="T:NetTopologySuite.Geometries.Geometry"/> to <see cref="T:NetTopologySuite.Noding.BasicSegmentString"/>s.
- The <see cref="T:NetTopologySuite.Noding.BasicSegmentString"/>'s data item is set to be the source Geometry.
- </summary>
- <param name="geom">The <see cref="T:NetTopologySuite.Geometries.Geometry"/> to extract from.</param>
- <returns>a list of <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s.</returns>
- </member>
- <member name="M:NetTopologySuite.Noding.SegmentStringUtil.ToGeometry(System.Collections.Generic.IList{NetTopologySuite.Noding.ISegmentString},NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
- Converts a collection of <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s into a <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
- The geometry will be either a <see cref="T:NetTopologySuite.Geometries.LineString"/>
- or a <see cref="T:NetTopologySuite.Geometries.MultiLineString"/> (possibly empty).
- </summary>
- <param name="segStrings">A collection of <see cref="T:NetTopologySuite.Noding.ISegmentString"/>.</param>
- <param name="geomFact">A geometry factory</param>
- <returns>A <see cref="T:NetTopologySuite.Geometries.LineString"/> or a <see cref="T:NetTopologySuite.Geometries.MultiLineString"/>.</returns>
- </member>
- <member name="T:NetTopologySuite.Noding.SimpleNoder">
- <summary>
- Nodes a set of <see cref="T:NetTopologySuite.Noding.ISegmentString" />s by
- performing a brute-force comparison of every segment to every other one.
- This has n^2 performance, so is too slow for use on large numbers of segments.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.SimpleNoder.#ctor">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.Noding.SimpleNoder"/> class.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.SimpleNoder.#ctor(NetTopologySuite.Noding.ISegmentIntersector)">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.Noding.SimpleNoder"/> class.
- </summary>
- <param name="segInt"></param>
- </member>
- <member name="M:NetTopologySuite.Noding.SimpleNoder.GetNodedSubstrings">
- <summary>
- Returns a <see cref="T:System.Collections.Generic.IList`1"/> of fully noded <see cref="T:NetTopologySuite.Noding.NodedSegmentString"/>s.
- The <see cref="T:NetTopologySuite.Noding.NodedSegmentString"/>s have the same context as their parent.
- </summary>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Noding.SimpleNoder.ComputeNodes(System.Collections.Generic.IList{NetTopologySuite.Noding.ISegmentString})">
- <summary>
- Computes the noding for a collection of <see cref="T:NetTopologySuite.Noding.ISegmentString" />s.
- Some Noders may add all these nodes to the input <see cref="T:NetTopologySuite.Noding.ISegmentString" />s;
- others may only add some or none at all.
- </summary>
- <param name="inputSegStrings"></param>
- </member>
- <member name="M:NetTopologySuite.Noding.SimpleNoder.ComputeIntersects(NetTopologySuite.Noding.ISegmentString,NetTopologySuite.Noding.ISegmentString)">
- <summary>
-
- </summary>
- <param name="e0"></param>
- <param name="e1"></param>
- </member>
- <member name="T:NetTopologySuite.Noding.SimpleSegmentSetMutualIntersector">
- <summary>
- Intersects two sets of <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s using
- brute-force comparison.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.SimpleSegmentSetMutualIntersector.#ctor(System.Collections.Generic.IEnumerable{NetTopologySuite.Noding.ISegmentString})">
- <summary>
- Constructs a new intersector for a given set of <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s.
- </summary>
- <param name="baseSegStrings">The base segment strings to intersect</param>
- </member>
- <member name="M:NetTopologySuite.Noding.SimpleSegmentSetMutualIntersector.Process(System.Collections.Generic.IEnumerable{NetTopologySuite.Noding.ISegmentString},NetTopologySuite.Noding.ISegmentIntersector)">
- <summary>
- Calls <see cref="M:NetTopologySuite.Noding.ISegmentIntersector.ProcessIntersections(NetTopologySuite.Noding.ISegmentString,System.Int32,NetTopologySuite.Noding.ISegmentString,System.Int32)"/>
- for all <i>candidate</i> intersections between
- the given collection of SegmentStrings and the set of base segments.
- </summary>
- <param name="segmentStrings">A collection of <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s to node</param>
- <param name="segmentIntersector">The intersection detector to either record intersection occurences
- or add intersection nodes to the input segment strings.</param>
- </member>
- <member name="M:NetTopologySuite.Noding.SimpleSegmentSetMutualIntersector.Intersect(NetTopologySuite.Noding.ISegmentString,NetTopologySuite.Noding.ISegmentString,NetTopologySuite.Noding.ISegmentIntersector)">
- <summary>
- Processes all of the segment pairs in the given segment strings
- using the given <paramref name="segInt">SegmentIntersector</paramref>.
- </summary>
- <param name="ss0">A segment string</param>
- <param name="ss1">A segment string</param>
- <param name="segInt">The segment intersector to use</param>
- </member>
- <member name="T:NetTopologySuite.Noding.SinglePassNoder">
- <summary>
- Base class for <see cref="T:NetTopologySuite.Noding.INoder" />s which make a single pass to find intersections.
- This allows using a custom <see cref="T:NetTopologySuite.Noding.ISegmentIntersector" />
- (which for instance may simply identify intersections, rather than insert them).
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.SinglePassNoder.#ctor">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.Noding.SinglePassNoder"/> class.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.SinglePassNoder.#ctor(NetTopologySuite.Noding.ISegmentIntersector)">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.Noding.SinglePassNoder"/> class.
- </summary>
- <param name="segInt">The <see cref="T:NetTopologySuite.Noding.ISegmentIntersector" /> to use.</param>
- </member>
- <member name="P:NetTopologySuite.Noding.SinglePassNoder.SegmentIntersector">
- <summary>
- Gets/sets the <see cref="T:NetTopologySuite.Noding.ISegmentIntersector" /> to use with this noder.
- A <see cref="T:NetTopologySuite.Noding.ISegmentIntersector" /> will normally add intersection nodes
- to the input segment strings, but it may not - it may
- simply record the presence of intersections.
- However, some <see cref="T:NetTopologySuite.Noding.INoder" />s may require that intersections be added.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.SinglePassNoder.ComputeNodes(System.Collections.Generic.IList{NetTopologySuite.Noding.ISegmentString})">
- <summary>
- Computes the noding for a collection of <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s.
- Some Noders may add all these nodes to the input <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s;
- others may only add some or none at all.
- </summary>
- <param name="segStrings"></param>
- </member>
- <member name="M:NetTopologySuite.Noding.SinglePassNoder.GetNodedSubstrings">
- <summary>
- Returns a <see cref="T:System.Collections.Generic.IList`1"/> of fully noded <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s.
- The <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s have the same context as their parent.
- </summary>
- <returns></returns>
- </member>
- <member name="T:NetTopologySuite.Noding.Snap.SnappingIntersectionAdder">
- <summary>
- Finds intersections between line segments which are being snapped,
- and adds them as nodes.
- </summary>
- <version>1.17</version>
- </member>
- <member name="M:NetTopologySuite.Noding.Snap.SnappingIntersectionAdder.#ctor(System.Double,NetTopologySuite.Noding.Snap.SnappingPointIndex)">
- <summary>
- Creates an intersector which finds all snapped intersections,
- and adds them as nodes.
- </summary>
- <param name="snapTolerance">The snapping tolerance distance</param>
- <param name="snapPointIndex">A snap index to use</param>
- </member>
- <member name="M:NetTopologySuite.Noding.Snap.SnappingIntersectionAdder.#ctor(System.Double,NetTopologySuite.Noding.Snap.SnappingPointIndex,NetTopologySuite.Algorithm.ElevationModel)">
- <summary>
- Creates an intersector which finds all snapped intersections,
- and adds them as nodes.
- </summary>
- <param name="snapTolerance">The snapping tolerance distance</param>
- <param name="snapPointIndex">A snap index to use</param>
- <param name="em">An elevation model. May be <c>null</c></param>
- </member>
- <member name="M:NetTopologySuite.Noding.Snap.SnappingIntersectionAdder.ProcessIntersections(NetTopologySuite.Noding.ISegmentString,System.Int32,NetTopologySuite.Noding.ISegmentString,System.Int32)">
- <summary>
- This method is called by clients
- of the <see cref="T:NetTopologySuite.Noding.ISegmentIntersector"/> class to process
- intersections for two segments of the <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s being intersected.
- Note that some clients (such as <c>MonotoneChain</c>s) may optimize away
- this call for segment pairs which they have determined do not intersect
- (e.g. by an disjoint envelope test).
- </summary>
- </member>
- <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)">
- <summary>
- If an endpoint of one segment is near
- the <i>interior</i> of the other segment, add it as an intersection.
- EXCEPT if the endpoint is also close to a segment endpoint
- (since this can introduce "zigs" in the linework).
- <para/>
- This resolves situations where
- a segment A endpoint is extremely close to another segment B,
- but is not quite crossing. Due to robustness issues
- in orientation detection, this can
- result in the snapped segment A crossing segment B
- without a node being introduced.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.Snap.SnappingIntersectionAdder.IsAdjacent(NetTopologySuite.Noding.ISegmentString,System.Int32,NetTopologySuite.Noding.ISegmentString,System.Int32)">
- <summary>
- Test if two segments are adjacent segments on the same SegmentString.
- Note that closed edges require a special check for the point shared by the beginning
- and end segments.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Noding.Snap.SnappingIntersectionAdder.IsDone">
- <inheritdoc cref="P:NetTopologySuite.Noding.ISegmentIntersector.IsDone"/>>
- <remarks>Always process all intersections</remarks>>
- <returns><c>false</c></returns>
- </member>
- <member name="T:NetTopologySuite.Noding.Snap.SnappingNoder">
- <summary>
- Nodes a set of segment strings
- snapping vertices and intersection points together if
- they lie within the given snap tolerance distance.
- Vertices take priority over intersection points for snapping.
- Input segment strings are generally only split at true node points
- (i.e.the output segment strings are of maximal length in the output arrangement).
- <para/>
- The snap tolerance should be chosen to be as small as possible
- while still producing a correct result.
- It probably only needs to be small enough to eliminate
- "nearly-coincident" segments, for which intersection points cannot be computed accurately.
- This implies a factor of about 10e-12
- smaller than the magnitude of the segment coordinates.
- <para/>
- With an appropriate snap tolerance this algorithm appears to be very robust.
- So far no failure cases have been found,
- given a small enough snap tolerance.
- <para/>
- The correctness of the output is not verified by this noder.
- If required this can be done by <see cref="T:NetTopologySuite.Noding.ValidatingNoder"/>.
- </summary>
- <version>1.17</version>
- </member>
- <member name="M:NetTopologySuite.Noding.Snap.SnappingNoder.#ctor(System.Double)">
- <summary>
- Creates a snapping noder using the given snap distance tolerance.
- </summary>
- <param name="snapTolerance">Points are snapped if within this distance</param>
- </member>
- <member name="M:NetTopologySuite.Noding.Snap.SnappingNoder.#ctor(System.Double,NetTopologySuite.Algorithm.ElevationModel)">
- <summary>
- Creates a snapping noder using the given snap distance tolerance.
- </summary>
- <param name="snapTolerance">Points are snapped if within this distance</param>
- <param name="em">An elevation model. May be <c>null</c></param>
- </member>
- <member name="M:NetTopologySuite.Noding.Snap.SnappingNoder.GetNodedSubstrings">
- <inheritdoc cref="M:NetTopologySuite.Noding.INoder.GetNodedSubstrings"/>>
- <returns>A collection of <see cref="T:NetTopologySuite.Noding.NodedSegmentString"/>s representing the substrings</returns>
- </member>
- <member name="M:NetTopologySuite.Noding.Snap.SnappingNoder.ComputeNodes(System.Collections.Generic.IList{NetTopologySuite.Noding.ISegmentString})">
- <summary>Computes the noding of a set of <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s</summary>
- <param name="inputSegmentStrings">A Collection of <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s</param>
- </member>
- <member name="M:NetTopologySuite.Noding.Snap.SnappingNoder.SeedSnapIndex(System.Collections.Generic.IEnumerable{NetTopologySuite.Noding.ISegmentString})">
- <summary>
- Seeds the snap index with a small set of vertices
- chosen quasi-randomly using a low-discrepancy sequence.
- Seeding the snap index KdTree induces a more balanced tree.
- This prevents monotonic runs of vertices
- unbalancing the tree and causing poor query performance.
- </summary>
- <param name="segStrings">The segStrings to be noded</param>
- </member>
- <member name="M:NetTopologySuite.Noding.Snap.SnappingNoder.ComputeIntersections(System.Collections.Generic.IList{NetTopologySuite.Noding.ISegmentString})">
- <summary>
- Computes all interior intersections in the collection of <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s,
- and returns their <see cref="T:NetTopologySuite.Noding.NodedSegmentString"/>s.
- <para/>
- Also adds the intersection nodes to the segments.
- </summary>
- <returns>A list of noded substrings</returns>
- </member>
- <member name="T:NetTopologySuite.Noding.Snap.SnappingPointIndex">
- <summary>
- An index providing fast creation and lookup of snap points.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Noding.Snap.SnappingPointIndex._snapPointIndex">
- <summary>
- Since points are added incrementally, this index needs to be dynamic.
- This class also makes use of the KdTree support for a tolerance distance
- for point equality.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.Snap.SnappingPointIndex.#ctor(System.Double)">
- <summary>
- Creates a snap point index using a specified distance tolerance.
- </summary>
- <param name="snapTolerance">Points are snapped if within this distance</param>
- </member>
- <member name="M:NetTopologySuite.Noding.Snap.SnappingPointIndex.Snap(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Snaps a coordinate to an existing snap point,
- if it is within the snap tolerance distance.
- Otherwise adds the coordinate to the snap point index.
- </summary>
- <param name="p">The point to snap</param>
- <returns>The point it snapped to, or the input point</returns>
- </member>
- <member name="P:NetTopologySuite.Noding.Snap.SnappingPointIndex.Tolerance">
- <summary>
- Gets a value indicating the snapping tolerance value for the index
- </summary>
- </member>
- <member name="P:NetTopologySuite.Noding.Snap.SnappingPointIndex.Depth">
- <summary>
- Gets a value indicating the depth of the tree
- </summary>
- </member>
- <member name="T:NetTopologySuite.Noding.Snapround.GeometryNoder">
- <summary>
- Nodes the linework in a list of <see cref="T:NetTopologySuite.Geometries.Geometry"/>s using Snap-Rounding
- to a given <see cref="T:NetTopologySuite.Geometries.PrecisionModel"/>.
- <para>
- The input coordinates do not need to be rounded to the
- precision model.
- All output coordinates are rounded to the precision model.
- </para><para>
- This class does <b>not</b> dissolve the output linework,
- so there may be duplicate linestrings in the output.
- Subsequent processing (e.g. polygonization) may require
- the linework to be unique. Using <c>UnaryUnion</c> is one way
- to do this (although this is an inefficient approach).
- </para></summary>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.GeometryNoder.#ctor(NetTopologySuite.Geometries.PrecisionModel)">
- <summary>
- Creates a new noder which snap-rounds to a grid specified by the given <see cref="T:NetTopologySuite.Geometries.PrecisionModel"/>
- </summary>
- <param name="pm">The precision model for the grid to snap-round to.</param>
- </member>
- <member name="P:NetTopologySuite.Noding.Snapround.GeometryNoder.IsValidityChecked">
- <summary>
- Gets or sets whether noding validity is checked after noding is performed.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.GeometryNoder.Node(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})">
- <summary>
- Nodes the linework of a set of Geometrys using SnapRounding.
- </summary>
- <param name="geoms">A collection of Geometrys of any type</param>
- <returns>A list of LineStrings representing the noded linework of the input</returns>
- </member>
- <member name="T:NetTopologySuite.Noding.Snapround.HotPixel">
- <summary>
- Implements a "hot pixel" as used in the Snap Rounding algorithm.
- A hot pixel is a square region centred
- on the rounded valud of the coordinate given,
- and of width equal to the size of the scale factor.
- It is a partially open region, which contains
- the interior of the tolerance square and
- the boundary
- <b>minus</b> the top and right segments.
- This ensures that every point of the space lies in a unique hot pixel.
- It also matches the rounding semantics for numbers.
- <para/>
- The hot pixel operations are all computed in the integer domain
- to avoid rounding problems.
- <para/>
- Hot Pixels support being marked as nodes.
- This is used to prevent introducing nodes at line vertices
- which do not have other lines snapped to them.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Noding.Snapround.HotPixel._hpx">
- <summary>The <b>scaled</b> x-ordinate of the hot pixel point (<see cref="P:NetTopologySuite.Noding.Snapround.HotPixel.Coordinate"/>)</summary>
- </member>
- <member name="F:NetTopologySuite.Noding.Snapround.HotPixel._hpy">
- <summary>The <b>scaled</b> y-ordinate of the hot pixel point (<see cref="P:NetTopologySuite.Noding.Snapround.HotPixel.Coordinate"/>)</summary>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.HotPixel.#ctor(NetTopologySuite.Geometries.Coordinate,System.Double,NetTopologySuite.Algorithm.LineIntersector)">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.Noding.Snapround.HotPixel"/> class.
- </summary>
- <param name="pt">The coordinate at the center of the hot pixel</param>
- <param name="scaleFactor">The scale factor determining the pixel size</param>
- <param name="li">The intersector to use for testing intersection with line segments</param>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.HotPixel.#ctor(NetTopologySuite.Geometries.Coordinate,System.Double)">
- <summary>
- Creates a new hot pixel centered on a rounded point, using a given scale factor.
- The scale factor must be strictly positive(non-zero).
- </summary>
- <param name="pt">The coordinate at the center of the hot pixel (already rounded)</param>
- <param name="scaleFactor">The scale factor determining the pixel size</param>
- </member>
- <member name="P:NetTopologySuite.Noding.Snapround.HotPixel.Coordinate">
- <summary>
- Gets the coordinate this hot pixel is based at.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Noding.Snapround.HotPixel.ScaleFactor">
- <summary>
- Gets the scale factor for the precision grid for this pixel.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Noding.Snapround.HotPixel.Width">
- <summary>
- Gets the width of the hot pixel in the original coordinate system.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Noding.Snapround.HotPixel.IsNode">
- <summary>
- Gets or sets a value indicating whether this pixel has been marked as a node.
- </summary>
- <returns><c>true</c> if the pixel is marked as a node</returns>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.HotPixel.Scale(System.Double)">
- <summary>
- Scale without rounding.
- This ensures intersections are checked against original
- linework.
- This is required to ensure that intersections are not missed
- because the segment is moved by snapping.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.HotPixel.GetSafeEnvelope">
- <summary>
- Returns a "safe" envelope that is guaranteed to contain the hot pixel.
- The envelope returned will be larger than the exact envelope of the pixel.
- </summary>
- <returns>An envelope which contains the pixel</returns>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.HotPixel.Intersects(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Tests whether a coordinate lies in (intersects) this hot pixel.
- </summary>
- <param name="p">The coordinate to test</param>
- <returns><c>true</c> if the coordinate intersects this hot pixel</returns>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.HotPixel.Intersects(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Tests whether the line segment (p0-p1)
- intersects this hot pixel.
- </summary>
- <param name="p0">The first coordinate of the line segment to test</param>
- <param name="p1">The second coordinate of the line segment to test</param>
- <returns>true if the line segment intersects this hot pixel.</returns>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.HotPixel.IntersectsScaled(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
-
- </summary>
- <param name="p0"></param>
- <param name="p1"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.HotPixel.IntersectsPixelClosure(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Test whether the given segment intersects
- the closure of this hot pixel.
- This is NOT the test used in the standard snap-rounding
- algorithm, which uses the partially closed tolerance square instead.
- This routine is provided for testing purposes only.
- </summary>
- <param name="p0"></param>
- <param name="p1"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.HotPixel.AddSnappedNode(NetTopologySuite.Noding.INodableSegmentString,System.Int32)">
- <summary>
- Adds a new node (equal to the snap pt) to the specified segment
- if the segment passes through the hot pixel
- </summary>
- <param name="segStr"></param>
- <param name="segIndex"></param>
- <returns><c>true</c> if a node was added to the segment</returns>
- </member>
- <member name="T:NetTopologySuite.Noding.Snapround.HotPixelIndex">
- <summary>
- An index which creates unique <see cref="T:NetTopologySuite.Noding.Snapround.HotPixel"/>s for provided points,
- and performs range queries on them.
- The points passed to the index do not needed to be
- rounded to the specified scale factor; this is done internally
- when creating the HotPixels for them.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.HotPixelIndex.#ctor(NetTopologySuite.Geometries.PrecisionModel)">
- <summary>
- Creates a new hot pixel index using the provided <see cref="T:NetTopologySuite.Geometries.PrecisionModel"/>.
- </summary>
- <param name="pm">The precision model</param>
- </member>
- <member name="T:NetTopologySuite.Noding.Snapround.HotPixelIndex.ShuffledCoordinates">
- <summary>
- Utility class to enumerate through a shuffled array of
- <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s using the
- <a href="https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle">Fisher-Yates shuffle algorithm</a>
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.HotPixelIndex.ShuffledCoordinates.#ctor(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Creates an instance of this class using the provided <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s.
- </summary>
- <param name="pts">An array of coordinates</param>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.HotPixelIndex.ShuffledCoordinates.ShuffledCoordinatesEnumerator.#ctor(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Creates an instance of this class using the provided <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s.
- </summary>
- <param name="pts">An array of coordinates</param>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.HotPixelIndex.ShuffledCoordinates.ShuffledCoordinatesEnumerator.MoveNext">
- <inheritdoc cref="M:System.Collections.IEnumerator.MoveNext"/>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.HotPixelIndex.ShuffledCoordinates.ShuffledCoordinatesEnumerator.Reset">
- <inheritdoc cref="M:System.Collections.IEnumerator.Reset"/>
- </member>
- <member name="P:NetTopologySuite.Noding.Snapround.HotPixelIndex.ShuffledCoordinates.ShuffledCoordinatesEnumerator.Current">
- <inheritdoc cref="P:System.Collections.Generic.IEnumerator`1.Current"/>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.HotPixelIndex.ShuffledCoordinates.ShuffledCoordinatesEnumerator.Dispose">
- <inheritdoc cref="M:System.IDisposable.Dispose"/>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.HotPixelIndex.ShuffledCoordinates.GetEnumerator">
- <inheritdoc cref="M:System.Collections.Generic.IEnumerable`1.GetEnumerator"/>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.HotPixelIndex.Add(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Coordinate})">
- <summary>
- Adds a series of points as non-node pixels
- </summary>
- <param name="pts">The points to add</param>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.HotPixelIndex.AddNodes(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Coordinate})">
- <summary>
- Adds a list of points as node pixels.
- </summary>
- <param name="pts">The points to add</param>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.HotPixelIndex.Add(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Adds a point as a Hot Pixel. <br/>
- If the point has been added already, it is marked as a node.
- </summary>
- <param name="p">The point to add</param>
- <returns>The hot-pixel for the point</returns>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.HotPixelIndex.Query(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Index.KdTree.IKdNodeVisitor{NetTopologySuite.Noding.Snapround.HotPixel})">
- <summary>
- Visits all the hot pixels which may intersect a segment (p0-p1).
- The visitor must determine whether each hot pixel actually intersects
- the segment.
- </summary>
- <param name="p0">The segment start point</param>
- <param name="p1">The segment end point</param>
- <param name="visitor">The visitor to apply</param>
- </member>
- <member name="T:NetTopologySuite.Noding.Snapround.MCIndexPointSnapper">
- <summary>
- "Snaps" all <see cref="T:NetTopologySuite.Noding.ISegmentString" />s in a <see cref="T:NetTopologySuite.Index.ISpatialIndex`1" /> containing
- <see cref="T:NetTopologySuite.Index.Chain.MonotoneChain" />s to a given <see cref="T:NetTopologySuite.Noding.Snapround.HotPixel" />.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.MCIndexPointSnapper.#ctor(NetTopologySuite.Index.ISpatialIndex{NetTopologySuite.Index.Chain.MonotoneChain})">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.Noding.Snapround.MCIndexPointSnapper"/> class.
- </summary>
- <param name="index"></param>
- </member>
- <member name="T:NetTopologySuite.Noding.Snapround.MCIndexPointSnapper.QueryVisitor">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.MCIndexPointSnapper.QueryVisitor.#ctor(NetTopologySuite.Geometries.Envelope,NetTopologySuite.Noding.Snapround.MCIndexPointSnapper.HotPixelSnapAction)">
- <summary>
-
- </summary>
- <param name="env"></param>
- <param name="action"></param>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.MCIndexPointSnapper.QueryVisitor.VisitItem(NetTopologySuite.Index.Chain.MonotoneChain)">
- <summary>
- </summary>
- <param name="item"></param>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.MCIndexPointSnapper.Snap(NetTopologySuite.Noding.Snapround.HotPixel,NetTopologySuite.Noding.ISegmentString,System.Int32)">
- <summary>
- Snaps (nodes) all interacting segments to this hot pixel.
- The hot pixel may represent a vertex of an edge,
- in which case this routine uses the optimization
- of not noding the vertex itself
- </summary>
- <param name="hotPixel">The hot pixel to snap to.</param>
- <param name="parentEdge">The edge containing the vertex, if applicable, or <c>null</c>.</param>
- <param name="hotPixelVertexIndex"></param>
- <returns><c>true</c> if a node was added for this pixel.</returns>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.MCIndexPointSnapper.Snap(NetTopologySuite.Noding.Snapround.HotPixel)">
- <summary>
- Snaps (nodes) all interacting segments to this hot pixel.
- The hot pixel may represent a vertex of an edge,
- in which case this routine uses the optimization
- of not noding the vertex itself
- </summary>
- <param name="hotPixel">The hot pixel to snap to.</param>
- <returns><c>true</c> if a node was added for this pixel.</returns>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.MCIndexPointSnapper.GetSafeEnvelope(NetTopologySuite.Noding.Snapround.HotPixel)">
- <summary>
- Returns a "safe" envelope that is guaranteed to contain the hot pixel.
- The envelope returned is larger than the exact envelope of the
- pixel by a safe margin.
- </summary>
- <returns>An envelope which contains the hot pixel</returns>
- </member>
- <member name="T:NetTopologySuite.Noding.Snapround.MCIndexPointSnapper.HotPixelSnapAction">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.MCIndexPointSnapper.HotPixelSnapAction.#ctor(NetTopologySuite.Noding.Snapround.HotPixel,NetTopologySuite.Noding.ISegmentString,System.Int32)">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.Noding.Snapround.MCIndexPointSnapper.HotPixelSnapAction"/> class.
- </summary>
- <param name="hotPixel"></param>
- <param name="parentEdge"></param>
- <param name="hotPixelVertexIndex"></param>
- </member>
- <member name="P:NetTopologySuite.Noding.Snapround.MCIndexPointSnapper.HotPixelSnapAction.IsNodeAdded">
- <summary>
- Reports whether the HotPixel caused a node to be added in any target
- segmentString(including its own). If so, the HotPixel must be added as a
- node as well.
- </summary>
- <returns>
- <c>true</c> if a node was added in any target segmentString.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.MCIndexPointSnapper.HotPixelSnapAction.Select(NetTopologySuite.Index.Chain.MonotoneChain,System.Int32)">
- <summary>
- Check if a segment of the monotone chain intersects
- the hot pixel vertex and introduce a snap node if so.
- Optimized to avoid noding segments which
- contain the vertex (which otherwise
- would cause every vertex to be noded).
- </summary>
- <param name="mc">A monotone chain</param>
- <param name="startIndex">A start index</param>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.MCIndexPointSnapper.HotPixelSnapAction.AddSnappedNode(NetTopologySuite.Noding.Snapround.HotPixel,NetTopologySuite.Noding.INodableSegmentString,System.Int32)">
- <summary>
- Adds a new node (equal to the snap pt) to the specified segment
- if the segment passes through the hot pixel
- </summary>
- <returns><see langword="true"/> if a node was added to the segment</returns>
- </member>
- <member name="T:NetTopologySuite.Noding.Snapround.MCIndexSnapRounder">
- <summary>
- Uses Snap Rounding to compute a rounded,
- fully noded arrangement from a set of <see cref="T:NetTopologySuite.Noding.ISegmentString" />s.
- Implements the Snap Rounding technique described in
- papers by Hobby, Guibas and Marimont, and Goodrich et al.
- Snap Rounding assumes that all vertices lie on a uniform grid;
- hence the precision model of the input must be fixed precision,
- and all the input vertices must be rounded to that precision.
- <para/>
- This implementation uses a monotone chains and a spatial index to
- speed up the intersection tests.
- <para/>
- <h3>KNOWN BUGS</h3>
- This implementation is not fully robust.
- instead.
- </summary>
- <seealse cref="T:NetTopologySuite.Noding.Snapround.SnapRoundingNoder"/>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.MCIndexSnapRounder.#ctor(NetTopologySuite.Geometries.PrecisionModel)">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.Noding.Snapround.MCIndexSnapRounder"/> class.
- </summary>
- <param name="pm">The <see cref="T:NetTopologySuite.Geometries.PrecisionModel" /> to use.</param>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.MCIndexSnapRounder.GetNodedSubstrings">
- <summary>
- Returns a <see cref="T:System.Collections.Generic.IList`1"/> of fully noded <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s.
- The <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s have the same context as their parent.
- </summary>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.MCIndexSnapRounder.ComputeNodes(System.Collections.Generic.IList{NetTopologySuite.Noding.ISegmentString})">
- <summary>
- Computes the noding for a collection of <see cref="T:NetTopologySuite.Noding.ISegmentString" />s.
- Some Noders may add all these nodes to the input <see cref="T:NetTopologySuite.Noding.ISegmentString" />s;
- others may only add some or none at all.
- </summary>
- <param name="inputSegmentStrings"></param>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.MCIndexSnapRounder.SnapRound(System.Collections.Generic.IList{NetTopologySuite.Noding.ISegmentString},NetTopologySuite.Algorithm.LineIntersector)">
- <summary>
-
- </summary>
- <param name="segStrings"></param>
- <param name="li"></param>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.MCIndexSnapRounder.FindInteriorIntersections(System.Collections.Generic.IList{NetTopologySuite.Noding.ISegmentString},NetTopologySuite.Algorithm.LineIntersector)">
- <summary>
- Computes all interior intersections in the collection of <see cref="T:NetTopologySuite.Noding.ISegmentString" />s,
- and returns their <see cref="T:NetTopologySuite.Geometries.Coordinate" />s.
- <para/>
- Does NOT node the segStrings.
- </summary>
- <param name="segStrings"></param>
- <param name="li"></param>
- <returns>A list of Coordinates for the intersections.</returns>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.MCIndexSnapRounder.ComputeIntersectionSnaps(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Coordinate})">
- <summary>
- Snaps segments to nodes created by segment intersections.
- </summary>
- <param name="snapPts"></param>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.MCIndexSnapRounder.ComputeVertexSnaps(System.Collections.Generic.IList{NetTopologySuite.Noding.ISegmentString})">
- <summary>
- Snaps segments to all vertices
- </summary>
- <param name="edges">The list of segment strings to snap together</param>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.MCIndexSnapRounder.ComputeVertexSnaps(NetTopologySuite.Noding.INodableSegmentString)">
- <summary>
- Snaps segments to the vertices of a Segment String.
- </summary>
- <param name="e"></param>
- </member>
- <member name="T:NetTopologySuite.Noding.Snapround.SimpleSnapRounder">
- <summary>
- Uses Snap Rounding to compute a rounded,
- fully noded arrangement from a set of <see cref="T:NetTopologySuite.Noding.ISegmentString" />s.
- <para/>
- Implements the Snap Rounding technique described in
- the papers by Hobby, Guibas & Marimont, and Goodrich et al.
- Snap Rounding enforces that all vertices lie on a uniform grid,
- which is determined by the provided <seealso cref="T:NetTopologySuite.Geometries.PrecisionModel"/>.
- Input vertices do not have to be rounded to this grid;
- this will be done during the snap-rounding process.
- <para/>
- This implementation uses simple iteration over the line segments.
- This is not an efficient approach for large sets of segments.
- This implementation appears to be fully robust using an integer precision model.
- It will function with non-integer precision models, but the
- results are not 100% guaranteed to be correctly noded.
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.SimpleSnapRounder.#ctor(NetTopologySuite.Geometries.PrecisionModel)">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.Noding.Snapround.SimpleSnapRounder"/> class.
- </summary>
- <param name="pm">The <see cref="T:NetTopologySuite.Geometries.PrecisionModel" /> to use.</param>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.SimpleSnapRounder.GetNodedSubstrings">
- <summary>
- Returns a <see cref="T:System.Collections.IList"/> of fully noded <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s.
- The <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s have the same context as their parent.
- </summary>
- <returns>A Collection of NodedSegmentStrings representing the substrings</returns>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.SimpleSnapRounder.ComputeNodes(System.Collections.Generic.IList{NetTopologySuite.Noding.ISegmentString})">
- <summary>
- Computes the noding for a collection of <see cref="T:NetTopologySuite.Noding.ISegmentString" />s.
- Some Noders may add all these nodes to the input <see cref="T:NetTopologySuite.Noding.ISegmentString" />s;
- others may only add some or none at all.
- </summary>
- <param name="inputSegmentStrings">A collection of NodedSegmentStrings</param>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.SimpleSnapRounder.SnapRound(System.Collections.Generic.IList{NetTopologySuite.Noding.ISegmentString})">
- <summary>
-
- </summary>
- <param name="segStrings"></param>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.SimpleSnapRounder.Round(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Coordinate})">
- <summary>
- Gets a list of the rounded coordinates.
- Duplicate (collapsed) coordinates are removed.
- </summary>
- <param name="pts">The coordinates to round</param>
- <returns>An array of rounded coordinates</returns>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.SimpleSnapRounder.FindInteriorIntersections(System.Collections.Generic.IList{NetTopologySuite.Noding.ISegmentString})">
- <summary>
- Computes all interior intersections in the collection of <see cref="T:NetTopologySuite.Noding.ISegmentString" />s,
- and returns their <see cref="T:NetTopologySuite.Geometries.Coordinate" />s.
- <para/>
- Also adds the intersection nodes to the segments.
- </summary>
- <param name="segStrings"></param>
- <returns>A list of <see cref="T:NetTopologySuite.Geometries.Coordinate" />s for the intersections.</returns>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.SimpleSnapRounder.ComputeSnaps(System.Collections.Generic.IEnumerable{NetTopologySuite.Noding.ISegmentString})">
- <summary>
- Computes nodes introduced as a result of snapping segments to snap points (hot pixels).
- </summary>
- <param name="segStrings"></param>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.SimpleSnapRounder.ComputeSnaps(NetTopologySuite.Noding.NodedSegmentString)">
- <summary>
-
- </summary>
- <param name="ss"></param>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.SimpleSnapRounder.SnapSegment(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Noding.NodedSegmentString,System.Int32)">
- <summary>
- This is where all the work of snapping to hot pixels gets done
- (in a very inefficient brute-force way).
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.SimpleSnapRounder.ComputeVertexSnaps(System.Collections.Generic.IList{NetTopologySuite.Noding.ISegmentString})">
- <summary>
- Computes nodes introduced as a result of
- snapping segments to vertices of other segments.
- </summary>
- <param name="edges">The list of segment strings to snap together</param>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.SimpleSnapRounder.ComputeVertexSnaps(NetTopologySuite.Noding.INodableSegmentString,NetTopologySuite.Noding.INodableSegmentString)">
- <summary>
- Performs a brute-force comparison of every segment in each <see cref="T:NetTopologySuite.Noding.ISegmentString" />.
- This has n^2 performance.
- </summary>
- <param name="e0"></param>
- <param name="e1"></param>
- </member>
- <member name="T:NetTopologySuite.Noding.Snapround.SnapRoundingIntersectionAdder">
- <summary>
- Finds intersections between line segments which will be snap-rounded,
- and adds them as nodes to the segments.
- <para/>
- Intersections are detected and computed using full precision.
- Snapping takes place in a subsequent phase.
- <para/>
- The intersection points are recorded, so that HotPixels can be created for them.
- <para/>
- To avoid robustness issues with vertices which lie very close to line segments
- a heuristic is used:
- nodes are created if a vertex lies within a tolerance distance
- of the interior of a segment.
- The tolerance distance is chosen to be significantly below the snap-rounding grid size.
- This has empirically proven to eliminate noding failures.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.SnapRoundingIntersectionAdder.#ctor(NetTopologySuite.Geometries.PrecisionModel)">
- <summary>
- Creates an intersector which finds all snapped interior intersections,
- and adds them as nodes.
- </summary>
- <param name="pm">The precision model to use</param>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.SnapRoundingIntersectionAdder.#ctor(System.Double)">
- <summary>
- Creates an intersector which finds all snapped interior intersections,
- and adds them as nodes.
- </summary>
- <param name="nearnessTol">the intersection distance tolerance</param>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.SnapRoundingIntersectionAdder.#ctor(System.Double,NetTopologySuite.Algorithm.ElevationModel)">
- <summary>
- Creates an intersector which finds all snapped interior intersections,
- and adds them as nodes.
- </summary>
- <param name="nearnessTol">the intersection distance tolerance</param>
- <param name="em">An elevation model. May be <c>null</c></param>
- </member>
- <member name="P:NetTopologySuite.Noding.Snapround.SnapRoundingIntersectionAdder.Intersections">
- <summary>
- Gets the created intersection nodes,
- so they can be processed as hot pixels.
- </summary>
- <returns>A list of intersection points</returns>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.SnapRoundingIntersectionAdder.ProcessIntersections(NetTopologySuite.Noding.ISegmentString,System.Int32,NetTopologySuite.Noding.ISegmentString,System.Int32)">
- <summary>
- This method is called by clients
- of the <see cref="T:NetTopologySuite.Noding.ISegmentIntersector"/> class to process
- intersections for two segments of the <see cref="T:NetTopologySuite.Noding.ISegmentString"/>
- s being intersected.
- Note that some clients (such as <c>MonotoneChain</c> s) may optimize away
- this call for segment pairs which they have determined do not intersect
- (e.g.by an disjoint envelope test).
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.SnapRoundingIntersectionAdder.ProcessNearVertex(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Noding.ISegmentString,System.Int32,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- If an endpoint of one segment is near
- the <i>interior</i> of the other segment, add it as an intersection.
- EXCEPT if the endpoint is also close to a segment endpoint
- (since this can introduce "zigs" in the linework).
- <para/>
- This resolves situations where
- a segment A endpoint is extremely close to another segment B,
- but is not quite crossing.Due to robustness issues
- in orientation detection, this can
- result in the snapped segment A crossing segment B
- without a node being introduced.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Noding.Snapround.SnapRoundingIntersectionAdder.IsDone">
- <summary>
- Always process all intersections
- </summary>
- <returns>Always <c>false</c></returns>
- </member>
- <member name="T:NetTopologySuite.Noding.Snapround.SnapRoundingNoder">
- <summary>
- Uses Snap Rounding to compute a rounded,
- fully noded arrangement from a set of <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s,
- in a performant way, and avoiding unnecessary noding.
- <para/>
- Implements the Snap Rounding technique described in
- the papers by Hobby, Guibas & Marimont, and Goodrich et al.
- Snap Rounding enforces that all output vertices lie on a uniform grid,
- which is determined by the provided <see cref="T:NetTopologySuite.Geometries.PrecisionModel"/>.
- <para/>
- Input vertices do not have to be rounded to the grid beforehand;
- this is done during the snap-rounding process.
- In fact, rounding cannot be done a priori,
- since rounding vertices by themselves can distort the rounded topology
- of the arrangement (i.e. by moving segments away from hot pixels
- that would otherwise intersect them, or by moving vertices
- across segments).
- <para/>
- To minimize the number of introduced nodes,
- the Snap-Rounding Noder avoids creating nodes
- at edge vertices if there is no intersection or snap at that location.
- However, if two different input edges contain identical segments,
- each of the segment vertices will be noded.
- This still provides fully-noded output.
- This is the same behaviour provided by other noders,
- such as <see cref="T:NetTopologySuite.Noding.MCIndexNoder"/>
- and <see cref="T:NetTopologySuite.Noding.Snap.SnappingNoder"/>.
- </summary>
- <version>1.17</version>
- </member>
- <member name="F:NetTopologySuite.Noding.Snapround.SnapRoundingNoder.NEARNESS_FACTOR">
- <summary>
- The division factor used to determine
- nearness distance tolerance for intersection detection.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.SnapRoundingNoder.GetNodedSubstrings">
- <summary>
- Gets a Collection of NodedSegmentStrings representing the substrings
- </summary>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.SnapRoundingNoder.ComputeNodes(System.Collections.Generic.IList{NetTopologySuite.Noding.ISegmentString})">
- <summary>
- Computes the nodes in the snap-rounding line arrangement.
- The nodes are added to the <see cref="T:NetTopologySuite.Noding.NodedSegmentString"/>s provided as the input.
- </summary>
- <param name="inputSegmentStrings">A Collection of NodedSegmentStrings</param>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.SnapRoundingNoder.AddIntersectionPixels(System.Collections.Generic.IList{NetTopologySuite.Noding.ISegmentString})">
- <summary>
- Detects interior intersections in the collection of {@link SegmentString}s,
- and adds nodes for them to the segment strings.
- Also creates HotPixel nodes for the intersection points.
- </summary>
- <param name="segStrings">The input NodedSegmentStrings</param>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.SnapRoundingNoder.AddVertexPixels(System.Collections.Generic.IEnumerable{NetTopologySuite.Noding.ISegmentString})">
- <summary>
- Creates HotPixels for each vertex in the input segStrings.
- The HotPixels are not marked as nodes, since they will
- only be nodes in the final line arrangement
- if they interact with other segments(or they are already
- created as intersection nodes).
- </summary>
- <param name="segStrings">The input NodedSegmentStrings</param>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.SnapRoundingNoder.Round(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Gets a list of the rounded coordinates.
- Duplicate (collapsed) coordinates are removed.
- </summary>
- <param name="pts">The coordinates to round</param>
- <returns>Array of rounded coordinates</returns>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.SnapRoundingNoder.ComputeSnaps(System.Collections.Generic.IEnumerable{NetTopologySuite.Noding.ISegmentString})">
- <summary>
- Computes new segment strings which are rounded and contain
- intersections added as a result of snapping segments to snap points (hot pixels).
- </summary>
- <param name="segStrings">Segments to snap</param>
- <returns>The snapped segment strings</returns>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.SnapRoundingNoder.ComputeSegmentSnaps(NetTopologySuite.Noding.NodedSegmentString)">
- <summary>
- Add snapped vertices to a segment string.
- If the segment string collapses completely due to rounding,
- null is returned.
- </summary>
- <param name="ss">The segment string to snap</param>
- <returns>
- The snapped segment string, or null if it collapses completely
- </returns>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.SnapRoundingNoder.SnapSegment(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Noding.NodedSegmentString,System.Int32)">
- <summary>
- Snaps a segment in a segmentString to HotPixels that it intersects.
- </summary>
- <param name="p0">The segment start coordinate</param>
- <param name="p1">The segment end coordinate</param>
- <param name="ss">The segment string to add intersections to</param>
- <param name="segIndex">The index of the segment/</param>
- </member>
- <member name="M:NetTopologySuite.Noding.Snapround.SnapRoundingNoder.AddVertexNodeSnaps(NetTopologySuite.Noding.NodedSegmentString)">
- <summary>
- Add nodes for any vertices in hot pixels that were
- added as nodes during segment noding.
- </summary>
- <param name="ss">A noded segment string</param>
- </member>
- <member name="T:NetTopologySuite.Noding.ValidatingNoder">
- <summary>
- A wrapper for <see cref="T:NetTopologySuite.Noding.INoder"/>s which validates
- the output arrangement is correctly noded.
- An arrangement of line segments is fully noded if
- there is no line segment
- which has another segment intersecting its interior.
- If the noding is not correct, a <see cref="T:NetTopologySuite.Geometries.TopologyException"/> is thrown
- with details of the first invalid location found.
- </summary>
- <author>Martin Davis</author>
- <seealso cref="T:NetTopologySuite.Noding.FastNodingValidator"/>
- </member>
- <member name="M:NetTopologySuite.Noding.ValidatingNoder.#ctor(NetTopologySuite.Noding.INoder)">
- <summary>
- Creates a noding validator wrapping the given <paramref name="noder"/>
- </summary>
- <param name="noder">The noder to validate</param>
- </member>
- <member name="M:NetTopologySuite.Noding.ValidatingNoder.ComputeNodes(System.Collections.Generic.IList{NetTopologySuite.Noding.ISegmentString})">
- <summary>
- Checks whether the output of the wrapped noder is fully noded.
- Throws an exception if it is not.
- </summary>
- <exception cref="T:NetTopologySuite.Geometries.TopologyException"></exception>
- </member>
- <member name="M:NetTopologySuite.Noding.ValidatingNoder.GetNodedSubstrings">
- <inheritdoc cref="M:NetTopologySuite.Noding.INoder.GetNodedSubstrings"/>
- </member>
- <member name="T:NetTopologySuite.NtsGeometryServices">
- <summary>
- A geometry service provider class
- </summary>
- <remarks>
- When overriding this class, you need to provide a public constructor with the following arguments:
- <list type="number">
- <item><c>CoordinateSequenceFactory</c><description>A factory to create coordinate sequences</description></item>
- <item><term><c>PrecisionModel</c></term><description>A precision model</description></item>
- <item><term><c>int</c></term><description>spatial reference id (srid)</description></item>
- <item><term><c>GeometryOverlay</c></term><description>A class that bundles an overlay operation function set</description></item>
- <item><term><c>CoordinateEqualityComparer</c></term><description>A class that performs checks <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s for equality.</description></item>
- </list>
- <see cref="M:NetTopologySuite.NtsGeometryServices.#ctor(NetTopologySuite.Geometries.CoordinateSequenceFactory,NetTopologySuite.Geometries.PrecisionModel,System.Int32,NetTopologySuite.Geometries.GeometryOverlay,NetTopologySuite.Geometries.CoordinateEqualityComparer)"/>
- </remarks>
- </member>
- <member name="M:NetTopologySuite.NtsGeometryServices.#ctor">
- <summary>
- Creates an instance of this class, using the <see cref="T:NetTopologySuite.Geometries.Implementation.CoordinateArraySequenceFactory"/>
- as default and a <see cref="F:NetTopologySuite.Geometries.PrecisionModels.Floating"/> precision model.<br/>
- No <see cref="P:NetTopologySuite.NtsGeometryServices.DefaultSRID"/> is specified.<br/>
- The <see cref="P:NetTopologySuite.Geometries.GeometryOverlay.Legacy"/> function set for overlay operations is being used.
- </summary>
- </member>
- <member name="M:NetTopologySuite.NtsGeometryServices.#ctor(NetTopologySuite.Geometries.GeometryOverlay)">
- <summary>
- Creates an instance of this class, using the <see cref="T:NetTopologySuite.Geometries.Implementation.CoordinateArraySequenceFactory"/>
- as default and a <see cref="F:NetTopologySuite.Geometries.PrecisionModels.Floating"/> precision model.
- No <see cref="P:NetTopologySuite.NtsGeometryServices.DefaultSRID"/> is specified
- </summary>
- <param name="geometryOverlay">The function set to perform overlay operations</param>
- </member>
- <member name="M:NetTopologySuite.NtsGeometryServices.#ctor(NetTopologySuite.Geometries.GeometryRelate)">
- <summary>
- Creates an instance of this class, using the <see cref="T:NetTopologySuite.Geometries.Implementation.CoordinateArraySequenceFactory"/>
- as default and a <see cref="F:NetTopologySuite.Geometries.PrecisionModels.Floating"/> precision model.
- No <see cref="P:NetTopologySuite.NtsGeometryServices.DefaultSRID"/> is specified
- </summary>
- <param name="geometryRelate">The geometry relate function set to use.</param>
- </member>
- <member name="M:NetTopologySuite.NtsGeometryServices.#ctor(NetTopologySuite.Geometries.GeometryOverlay,NetTopologySuite.Geometries.GeometryRelate)">
- <summary>
- Creates an instance of this class, using the <see cref="T:NetTopologySuite.Geometries.Implementation.CoordinateArraySequenceFactory"/>
- as default and a <see cref="F:NetTopologySuite.Geometries.PrecisionModels.Floating"/> precision model.
- No <see cref="P:NetTopologySuite.NtsGeometryServices.DefaultSRID"/> is specified
- </summary>
- <param name="geometryOverlay">The function set to perform overlay operations</param>
- <param name="geometryRelate">The geometry relate function set to use.</param>
- </member>
- <member name="M:NetTopologySuite.NtsGeometryServices.#ctor(NetTopologySuite.Geometries.PrecisionModel)">
- <summary>
- Creates an instance of this class, using the <see cref="T:NetTopologySuite.Geometries.Implementation.CoordinateArraySequenceFactory"/> as default.<br/>
- No <see cref="P:NetTopologySuite.NtsGeometryServices.DefaultSRID"/> is specified.<br/>
- The default precision model is defined by <paramref name="precisionModel"/>.<br/>
- The <see cref="P:NetTopologySuite.Geometries.GeometryOverlay.Legacy"/> function set for overlay operations is being used.
- </summary>
- </member>
- <member name="M:NetTopologySuite.NtsGeometryServices.#ctor(NetTopologySuite.Geometries.PrecisionModel,System.Int32)">
- <summary>
- Creates an instance of this class, using the <see cref="T:NetTopologySuite.Geometries.Implementation.CoordinateArraySequenceFactory"/> as default.<br/>
- A value of <paramref name="srid"/> is assigned to <see cref="P:NetTopologySuite.NtsGeometryServices.DefaultSRID"/>.<br/>
- The default precision model is defined by <paramref name="precisionModel"/>.<br/>
- The <see cref="P:NetTopologySuite.Geometries.GeometryOverlay.Legacy"/> function set for overlay operations is being used.
- </summary>
- </member>
- <member name="M:NetTopologySuite.NtsGeometryServices.#ctor(NetTopologySuite.Geometries.CoordinateSequenceFactory)">
- <summary>
- Creates an instance of this class, using a <see cref="F:NetTopologySuite.Geometries.PrecisionModels.Floating"/> precision model as default.<br/>
- No <see cref="P:NetTopologySuite.NtsGeometryServices.DefaultSRID"/> is specified.<br/>
- The default coordinate sequence factory is defined by <paramref name="coordinateSequenceFactory"/>.<br/>
- The <see cref="P:NetTopologySuite.Geometries.GeometryOverlay.Legacy"/> function set for overlay operations is being used.
- </summary>
- </member>
- <member name="M:NetTopologySuite.NtsGeometryServices.#ctor(NetTopologySuite.Geometries.CoordinateSequenceFactory,NetTopologySuite.Geometries.PrecisionModel,System.Int32)">
- <summary>
- Creates an instance of this class, using the provided <see cref="T:NetTopologySuite.Geometries.CoordinateSequenceFactory"/>,
- <see cref="T:NetTopologySuite.Geometries.PrecisionModel"/> and spatial reference Id (<paramref name="srid"/>).
- </summary>
- <param name="coordinateSequenceFactory">The coordinate sequence factory to use.</param>
- <param name="precisionModel">The precision model.</param>
- <param name="srid">The default spatial reference ID</param>
- </member>
- <member name="M:NetTopologySuite.NtsGeometryServices.#ctor(NetTopologySuite.Geometries.CoordinateSequenceFactory,NetTopologySuite.Geometries.PrecisionModel,System.Int32,NetTopologySuite.Geometries.GeometryOverlay,NetTopologySuite.Geometries.CoordinateEqualityComparer)">
- <summary>
- Creates an instance of this class, using the provided <see cref="T:NetTopologySuite.Geometries.CoordinateSequenceFactory"/>,
- <see cref="T:NetTopologySuite.Geometries.PrecisionModel"/>, a spatial reference Id (<paramref name="srid"/>) and
- a <see cref="T:NetTopologySuite.Geometries.GeometryOverlay"/>.
- </summary>
- <param name="coordinateSequenceFactory">The coordinate sequence factory to use.</param>
- <param name="precisionModel">The precision model.</param>
- <param name="srid">The default spatial reference ID</param>
- <param name="geometryOverlay">The geometry overlay function set to use.</param>
- <param name="coordinateEqualityComparer">The equality comparer for coordinates</param>
- </member>
- <member name="M:NetTopologySuite.NtsGeometryServices.#ctor(NetTopologySuite.Geometries.CoordinateSequenceFactory,NetTopologySuite.Geometries.PrecisionModel,System.Int32,NetTopologySuite.Geometries.GeometryOverlay,NetTopologySuite.Geometries.GeometryRelate,NetTopologySuite.Geometries.CoordinateEqualityComparer)">
- <summary>
- Creates an instance of this class, using the provided <see cref="T:NetTopologySuite.Geometries.CoordinateSequenceFactory"/>,
- <see cref="T:NetTopologySuite.Geometries.PrecisionModel"/>, a spatial reference Id (<paramref name="srid"/>) and
- a <see cref="T:NetTopologySuite.Geometries.GeometryOverlay"/>.
- </summary>
- <param name="coordinateSequenceFactory">The coordinate sequence factory to use.</param>
- <param name="precisionModel">The precision model.</param>
- <param name="srid">The default spatial reference ID</param>
- <param name="geometryOverlay">The geometry overlay function set to use.</param>
- <param name="geometryRelate">The geometry relate function set to use.</param>
- <param name="coordinateEqualityComparer">The equality comparer for coordinates</param>
- </member>
- <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)">
- <summary>
- Creates an instance of this class, using the provided <see cref="T:NetTopologySuite.Geometries.CoordinateSequenceFactory"/>,
- <see cref="T:NetTopologySuite.Geometries.PrecisionModel"/>, a spatial reference Id (<paramref name="srid"/>) and
- a <see cref="T:NetTopologySuite.Geometries.GeometryOverlay"/>.
- </summary>
- <param name="coordinateSequenceFactory">The coordinate sequence factory to use.</param>
- <param name="precisionModel">The precision model.</param>
- <param name="srid">The default spatial reference ID</param>
- <param name="geometryOverlay">The geometry overlay function set to use.</param>
- <param name="geometryRelate">The geometry relate function set to use.</param>
- <param name="coordinateEqualityComparer">The equality comparer for coordinates</param>
- <param name="elevationModel">The elevation model that is used as default. May be <c>null</c></param>
- </member>
- <member name="P:NetTopologySuite.NtsGeometryServices.Instance">
- <summary>
- Gets or sets the default instance of <see cref="T:NetTopologySuite.NtsGeometryServices"/>.
- </summary>
- <exception cref="T:System.ArgumentNullException">
- Thrown when trying to set the value to <see langword="null"/>.
- </exception>
- </member>
- <member name="P:NetTopologySuite.NtsGeometryServices.GeometryOverlay">
- <summary>
- Gets a value indicating the operations to use for geometry overlay.
- </summary>
- <returns>A set of geometry overlay functions.</returns>
- </member>
- <member name="P:NetTopologySuite.NtsGeometryServices.GeometryRelate">
- <summary>
- Gets a value indicating the operations to use for geometry relation determination.
- </summary>
- <returns>A set of geometry relation functions.</returns>
- </member>
- <member name="P:NetTopologySuite.NtsGeometryServices.CoordinateEqualityComparer">
- <summary>
- Gets an object that is used to test 2 coordinates for equality.
- </summary>
- <returns>A coordinate equality tester object</returns>
- </member>
- <member name="P:NetTopologySuite.NtsGeometryServices.DefaultSRID">
- <summary>
- Gets the default spatial reference id
- </summary>
- </member>
- <member name="P:NetTopologySuite.NtsGeometryServices.DefaultCoordinateSequenceFactory">
- <summary>
- Gets the default coordiate sequence factory to use
- </summary>
- </member>
- <member name="P:NetTopologySuite.NtsGeometryServices.DefaultPrecisionModel">
- <summary>
- Gets the default precision model
- </summary>
- </member>
- <member name="P:NetTopologySuite.NtsGeometryServices.DefaultElevationModel">
- <summary>
- Gets the default elevation model
- </summary>
- </member>
- <member name="M:NetTopologySuite.NtsGeometryServices.CreatePrecisionModel(NetTopologySuite.Geometries.PrecisionModels)">
- <summary>
- Creates a precision model based on given precision model type
- </summary>
- <returns>The precision model type</returns>
- </member>
- <member name="M:NetTopologySuite.NtsGeometryServices.CreatePrecisionModel(NetTopologySuite.Geometries.PrecisionModel)">
- <summary>
- Creates a precision model based on given precision model.
- </summary>
- <returns>The precision model</returns>
- </member>
- <member name="M:NetTopologySuite.NtsGeometryServices.CreatePrecisionModel(System.Double)">
- <summary>
- Creates a precision model based on the given scale factor.
- </summary>
- <param name="scale">The scale factor</param>
- <returns>The precision model.</returns>
- </member>
- <member name="M:NetTopologySuite.NtsGeometryServices.CreateGeometryFactory">
- <summary>
- Creates or retrieves a geometry factory using <see cref="P:NetTopologySuite.NtsGeometryServices.DefaultSRID"/>, <see cref="P:NetTopologySuite.NtsGeometryServices.DefaultPrecisionModel"/> and
- <see cref="P:NetTopologySuite.NtsGeometryServices.DefaultCoordinateSequenceFactory"/>.
- </summary>
- <returns>A geometry factory</returns>
- </member>
- <member name="M:NetTopologySuite.NtsGeometryServices.CreateGeometryFactory(System.Int32)">
- <summary>
- Creates or retrieves a geometry factory using <paramref name="srid"/>, <see cref="P:NetTopologySuite.NtsGeometryServices.DefaultPrecisionModel"/> and
- <see cref="P:NetTopologySuite.NtsGeometryServices.DefaultCoordinateSequenceFactory"/>.
- </summary>
- <returns>A geometry factory</returns>
- </member>
- <member name="M:NetTopologySuite.NtsGeometryServices.CreateGeometryFactory(NetTopologySuite.Geometries.CoordinateSequenceFactory)">
- <summary>
- Creates or retrieves a geometry factory using <see cref="P:NetTopologySuite.NtsGeometryServices.DefaultSRID"/>, <see cref="P:NetTopologySuite.NtsGeometryServices.DefaultPrecisionModel"/> and
- <paramref name="coordinateSequenceFactory"/>.
- </summary>
- <returns>A geometry factory</returns>
- </member>
- <member name="M:NetTopologySuite.NtsGeometryServices.CreateGeometryFactory(NetTopologySuite.Geometries.PrecisionModel)">
- <summary>
- Creates or retrieves a geometry factory using <see cref="P:NetTopologySuite.NtsGeometryServices.DefaultSRID"/>, <paramref name="precisionModel"/> and
- <see cref="P:NetTopologySuite.NtsGeometryServices.DefaultCoordinateSequenceFactory"/>.
- </summary>
- <param name="precisionModel">The precision model to use.</param>
- <returns>A geometry factory</returns>
- </member>
- <member name="M:NetTopologySuite.NtsGeometryServices.CreateGeometryFactory(NetTopologySuite.Geometries.PrecisionModel,System.Int32)">
- <summary>
- Creates or retrieves a geometry factory using <paramref name="srid"/>, <paramref name="precisionModel"/> and
- <see cref="P:NetTopologySuite.NtsGeometryServices.DefaultCoordinateSequenceFactory"/>.
- </summary>
- <param name="precisionModel">The precision model to use.</param>
- <param name="srid">The spatial reference id.</param>
- <returns>A geometry factory</returns>
- </member>
- <member name="M:NetTopologySuite.NtsGeometryServices.CreateGeometryFactory(NetTopologySuite.Geometries.PrecisionModel,System.Int32,NetTopologySuite.Geometries.CoordinateSequenceFactory)">
- <summary>
- Creates or retrieves a geometry factory using <paramref name="srid"/>, <paramref name="precisionModel"/> and
- <paramref name="coordinateSequenceFactory"/>.
- </summary>
- <param name="precisionModel">The precision model to use.</param>
- <param name="srid">The spatial reference id.</param>
- <param name="coordinateSequenceFactory"></param>
- <returns>A geometry factory</returns>
- </member>
- <member name="M:NetTopologySuite.NtsGeometryServices.CreateGeometryFactory(NetTopologySuite.Geometries.PrecisionModel,NetTopologySuite.Algorithm.ElevationModel,System.Int32,NetTopologySuite.Geometries.CoordinateSequenceFactory)">
- <summary>
- Creates or retrieves a geometry factory using <paramref name="srid"/>, <paramref name="precisionModel"/>
- <paramref name="elevationModel"/> and <paramref name="coordinateSequenceFactory"/>.
- </summary>
- <param name="precisionModel">The precision model to use.</param>
- <param name="elevationModel">The elevation model to use. May be <c>null</c></param>
- <param name="srid">The spatial reference id.</param>
- <param name="coordinateSequenceFactory"></param>
- <returns>A geometry factory</returns>
- </member>
- <member name="M:NetTopologySuite.NtsGeometryServices.CreateGeometryFactoryCore(NetTopologySuite.Geometries.PrecisionModel,System.Int32,NetTopologySuite.Geometries.CoordinateSequenceFactory)">
- <summary>
- Creates a <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/> based on the given parameters.
- </summary>
- <param name="precisionModel">
- The value for <see cref="P:NetTopologySuite.Geometries.GeometryFactory.PrecisionModel"/>.
- </param>
- <param name="srid">
- The value for <see cref="P:NetTopologySuite.Geometries.GeometryFactory.SRID"/>.
- </param>
- <param name="coordinateSequenceFactory">
- The value for <see cref="P:NetTopologySuite.Geometries.GeometryFactory.CoordinateSequenceFactory"/>.
- </param>
- <returns>
- A <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/> that has the given values.
- </returns>
- <remarks>
- <para>
- This method is expected to be safe to call from any number of threads at once.
- </para>
- <para>
- Implementations <strong>must</strong> make sure to use a constructor which
- is properly assigning <see cref="P:NetTopologySuite.NtsGeometryServices.GeometryOverlay"/> to the factory.
- </para>
- <para>
- Although the result for a given set of parameters is cached, there is no guarantee that,
- once this method is called with some set of parameters, it will never be called again
- with an exactly equal set of parameters. When this does happen, an arbitrary result is
- chosen as the winner (not necessarily the first one to start or finish), and all other
- results are discarded.
- </para>
- </remarks>
- </member>
- <member name="M:NetTopologySuite.NtsGeometryServices.CreateGeometryFactoryCore(NetTopologySuite.Geometries.PrecisionModel,NetTopologySuite.Algorithm.ElevationModel,System.Int32,NetTopologySuite.Geometries.CoordinateSequenceFactory)">
- <summary>
- Creates a <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/> based on the given parameters.
- </summary>
- <param name="precisionModel">
- The value for <see cref="P:NetTopologySuite.Geometries.GeometryFactory.PrecisionModel"/>.
- </param>
- <param name="elevationModel">
- The value for <see cref="P:NetTopologySuite.Geometries.GeometryFactory.ElevationModel"/>. May be <c>null</c></param>
- <param name="srid">
- The value for <see cref="P:NetTopologySuite.Geometries.GeometryFactory.SRID"/>.
- </param>
- <param name="coordinateSequenceFactory">
- The value for <see cref="P:NetTopologySuite.Geometries.GeometryFactory.CoordinateSequenceFactory"/>.
- </param>
- <returns>
- A <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/> that has the given values.
- </returns>
- <remarks>
- <para>
- This method is expected to be safe to call from any number of threads at once.
- </para>
- <para>
- Implementations <strong>must</strong> make sure to use a constructor which
- is properly assigning <see cref="P:NetTopologySuite.NtsGeometryServices.GeometryOverlay"/> to the factory.
- </para>
- <para>
- Although the result for a given set of parameters is cached, there is no guarantee that,
- once this method is called with some set of parameters, it will never be called again
- with an exactly equal set of parameters. When this does happen, an arbitrary result is
- chosen as the winner (not necessarily the first one to start or finish), and all other
- results are discarded.
- </para>
- </remarks>
- </member>
- <member name="T:NetTopologySuite.Operation.BoundaryOp">
- <summary>
- Computes the boundary of a <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
- Allows specifying the <see cref="T:NetTopologySuite.Algorithm.IBoundaryNodeRule"/> to be used.
- This operation will always return a <see cref="T:NetTopologySuite.Geometries.Geometry"/> of the appropriate
- dimension for the boundary (even if the input geometry is empty).
- The boundary of zero-dimensional geometries (Points) is
- always the empty <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/>.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Operation.BoundaryOp.GetBoundary(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes a geometry representing the boundary of a geometry.
- </summary>
- <param name="g">The input geometry.</param>
- <returns>The computed boundary.</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.BoundaryOp.GetBoundary(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Algorithm.IBoundaryNodeRule)">
- <summary>
- Computes a geometry representing the boundary of a geometry,
- using an explicit <see cref="T:NetTopologySuite.Algorithm.IBoundaryNodeRule"/>.
- </summary>
- <param name="g">The input geometry.</param>
- <param name="bnRule">The Boundary Node Rule to use.</param>
- <returns>The computed boundary.</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.BoundaryOp.HasBoundary(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Algorithm.IBoundaryNodeRule)">
- <summary>
- Tests if a geometry has a boundary (it is non-empty).<br/>
- The semantics are:
- <list type="bullet">
- <item><description>Empty geometries do not have boundaries.</description></item>
- <item><description>Points do not have boundaries.</description></item>
- <item><description>For linear geometries the existence of the boundary
- is determined by the <see cref="T:NetTopologySuite.Algorithm.IBoundaryNodeRule"/>.</description></item>
- <item><description>Non-empty polygons always have a boundary.</description></item>
- </list>
- </summary>
- <param name="geom">The geometry providing the boundary</param>
- <param name="boundaryNodeRule">The Boundary Node Rule to use</param>
- <returns><c>true</c> if the boundary exists</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.BoundaryOp.#ctor(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.Operation.BoundaryOp"/> class for the given geometry.
- </summary>
- <param name="geom">The input geometry.</param>
- </member>
- <member name="M:NetTopologySuite.Operation.BoundaryOp.#ctor(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Algorithm.IBoundaryNodeRule)">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.Operation.BoundaryOp"/> class for the given geometry.
- </summary>
- <param name="geom">The input geometry.</param>
- <param name="bnRule">Tthe Boundary Node Rule to use.</param>
- </member>
- <member name="M:NetTopologySuite.Operation.BoundaryOp.GetBoundary">
- <summary>
- Gets the computed boundary.
- </summary>
- <returns>The boundary geometry.</returns>
- </member>
- <member name="F:NetTopologySuite.Operation.BoundaryOp._endpointMap">
- <summary>
- A map which maintains the edges in sorted order around the node.
- </summary>
- </member>
- <member name="T:NetTopologySuite.Operation.Counter">
- <summary>
- Stores an integer count, for use as a Map entry.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="T:NetTopologySuite.Operation.Buffer.BufferBuilder">
- <summary>
- Builds the buffer geometry for a given input geometry and precision model.
- Allows setting the level of approximation for circular arcs,
- and the precision model in which to carry out the computation.
- </summary>
- <remarks>
- When computing buffers in floating point double-precision
- it can happen that the process of iterated noding can fail to converge (terminate).
- In this case a <see cref="T:NetTopologySuite.Geometries.TopologyException"/> will be thrown.
- Retrying the computation in a fixed precision
- can produce more robust results.
- </remarks>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.BufferBuilder.DepthDelta(NetTopologySuite.GeometriesGraph.Label)">
- <summary>Compute the change in depth as an edge is crossed from R to L</summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.BufferBuilder.#ctor(NetTopologySuite.Operation.Buffer.BufferParameters)">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.Operation.Buffer.BufferBuilder"/> class using the given parameters.
- </summary>
- <param name="bufParams">The buffer parameters to use.</param>
- </member>
- <member name="P:NetTopologySuite.Operation.Buffer.BufferBuilder.WorkingPrecisionModel">
- <summary>
- Sets the precision model to use during the curve computation and noding,
- if it is different to the precision model of the Geometry.
- </summary>
- <remarks>
- If the precision model is less than the precision of the Geometry precision model,
- the Geometry must have previously been rounded to that precision.
- </remarks>
- </member>
- <member name="P:NetTopologySuite.Operation.Buffer.BufferBuilder.WorkingElevationModel">
- <summary>
- Gets or sets the elevation model to use during the curve computation and noding,
- if it is different to the elevation model of the Geometry.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Operation.Buffer.BufferBuilder.Noder">
- <summary>
- Sets the <see cref="T:NetTopologySuite.Noding.INoder"/> to use during noding.
- This allows choosing fast but non-robust noding, or slower
- but robust noding.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Operation.Buffer.BufferBuilder.InvertOrientation">
- <summary>
- Sets whether the offset curve is generated
- using the inverted orientation of input rings.
- This allows generating a buffer(0) polygon from the smaller lobes
- of self-crossing rings.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.BufferBuilder.InsertUniqueEdge(NetTopologySuite.GeometriesGraph.Edge)">
- <summary>
- Inserted edges are checked to see if an identical edge already exists.
- If so, the edge is not inserted, but its label is merged
- with the existing edge.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.BufferBuilder.BuildSubgraphs(System.Collections.Generic.IEnumerable{NetTopologySuite.Operation.Buffer.BufferSubgraph},NetTopologySuite.Operation.Overlay.PolygonBuilder)">
- <summary>
- Completes the building of the input subgraphs by depth-labelling them,
- and adds them to the PolygonBuilder.
- </summary>
- <remarks>
- The subgraph list must be sorted in rightmost-coordinate order.
- </remarks>
- <param name="subgraphList"> the subgraphs to build</param>
- <param name="polyBuilder"> the PolygonBuilder which will build the final polygons</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.BufferBuilder.CreateEmptyResultGeometry">
- <summary>
- Gets the standard result for an empty buffer.
- Since buffer always returns a polygonal result, this is chosen to be an empty polygon.
- </summary>
- <returns>The empty result geometry</returns>
- </member>
- <member name="T:NetTopologySuite.Operation.Buffer.BufferCurveSetBuilder">
- <summary>
- Creates all the raw offset curves for a buffer of a <c>Geometry</c>.
- Raw curves need to be noded together and polygonized to form the final buffer area.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.BufferCurveSetBuilder.#ctor(NetTopologySuite.Geometries.Geometry,System.Double,NetTopologySuite.Geometries.PrecisionModel,NetTopologySuite.Operation.Buffer.BufferParameters)">
- <summary>
-
- </summary>
- <param name="inputGeom">The input geometry</param>
- <param name="distance">The offset distance</param>
- <param name="precisionModel">A precision model</param>
- <param name="parameters">The buffer parameters</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.BufferCurveSetBuilder.#ctor(NetTopologySuite.Geometries.Geometry,System.Double,NetTopologySuite.Geometries.PrecisionModel,NetTopologySuite.Algorithm.ElevationModel,NetTopologySuite.Operation.Buffer.BufferParameters)">
- <summary>
-
- </summary>
- <param name="inputGeom">The input geometry</param>
- <param name="distance">The offset distance</param>
- <param name="precisionModel">A precision model</param>
- <param name="em">An elevation model model. May be <c>null</c></param>
- <param name="parameters">The buffer parameters</param>
- </member>
- <member name="P:NetTopologySuite.Operation.Buffer.BufferCurveSetBuilder.InvertOrientation">
- <summary>
- Gets or sets a value indicating whether the offset curve is generated
- using the inverted orientation of input rings.
- This allows generating a buffer(0) polygon from the smaller lobes
- of self-crossing rings.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.BufferCurveSetBuilder.IsRingCCW(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Computes orientation of a ring using a signed-area orientation test.
- For invalid (self-crossing) rings this ensures the largest enclosed area
- is taken to be the interior of the ring.
- This produces a more sensible result when
- used for repairing polygonal geometry via buffer-by-zero.
- For buffer use the lower robustness of orientation-by-area
- doesn't matter, since narrow or flat rings
- produce an acceptable offset curve for either orientation.
- </summary>
- <param name="coord">The ring coordinates</param>
- <returns>true if the ring is CCW</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.BufferCurveSetBuilder.GetCurves">
- <summary>
- Computes the set of raw offset curves for the buffer.
- Each offset curve has an attached {Label} indicating
- its left and right location.
- </summary>
- <returns>A Collection of SegmentStrings representing the raw buffer curves.</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.BufferCurveSetBuilder.AddCurve(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Location)">
- <summary>
- Creates a {SegmentString} for a coordinate list which is a raw offset curve,
- and adds it to the list of buffer curves.
- The SegmentString is tagged with a Label giving the topology of the curve.
- The curve may be oriented in either direction.
- If the curve is oriented CW, the locations will be:
- Left: Location.Exterior.
- Right: Location.Interior.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.BufferCurveSetBuilder.Add(NetTopologySuite.Geometries.Geometry)">
- <summary>
-
- </summary>
- <param name="g"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.BufferCurveSetBuilder.AddCollection(NetTopologySuite.Geometries.Geometry)">
- <summary>
-
- </summary>
- <param name="gc"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.BufferCurveSetBuilder.AddPoint(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Add a Point to the graph.
- </summary>
- <param name="p"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.BufferCurveSetBuilder.Clean(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Keeps only valid coordinates, and removes repeated points.
- </summary>
- <param name="coords">The coordinates to clean</param>
- <returns>An array of clean coordinates</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.BufferCurveSetBuilder.AddPolygon(NetTopologySuite.Geometries.Polygon)">
- <summary>
-
- </summary>
- <param name="p"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.BufferCurveSetBuilder.AddRingSide(NetTopologySuite.Geometries.Coordinate[],System.Double,NetTopologySuite.Geometries.Position,NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Location)">
- <summary>
- Adds an offset curve for a polygon ring.
- The side and left and right topological location arguments
- assume that the ring is oriented CW.
- If the ring is in the opposite orientation,
- the left and right locations must be interchanged and the side flipped.
- </summary>
- <param name="coord">The coordinates of the ring (must not contain repeated points).</param>
- <param name="offsetDistance">The distance at which to create the buffer.</param>
- <param name="side">The side of the ring on which to construct the buffer line.</param>
- <param name="cwLeftLoc">The location on the L side of the ring (if it is CW).</param>
- <param name="cwRightLoc">The location on the R side of the ring (if it is CW).</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.BufferCurveSetBuilder.IsRingCurveInverted(NetTopologySuite.Geometries.Coordinate[],System.Double,NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Tests whether the offset curve for a ring is fully inverted.
- An inverted ("inside-out") curve occurs in some specific situations
- involving a buffer distance which should result in a fully-eroded (empty) buffer.
- It can happen that the sides of a small, convex polygon
- produce offset segments which all cross one another to form
- a curve with inverted orientation.<br/>
- This happens at buffer distances slightly greater than the distance at
- which the buffer should disappear.<br/>
- The inverted curve will produce an incorrect non-empty buffer (for a shell)
- or an incorrect hole (for a hole).
- It must be discarded from the set of offset curves used in the buffer.
- Heuristics are used to reduce the number of cases which area checked,
- for efficiency and correctness.
- <para/>
- See <a href="https://github.com/locationtech/jts/issues/472"/>
- </summary>
- <param name="inputRing">the input ring</param>
- <param name="distance">the buffer distance</param>
- <param name="curveRing">the generated offset curve</param>
- <returns>true if the offset curve is inverted</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.BufferCurveSetBuilder.hasPointOnBuffer(NetTopologySuite.Geometries.Coordinate[],System.Double,NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Tests if there are points on the raw offset curve which may
- lie on the final buffer curve
- (i.e.they are (approximately) at the buffer distance from the input ring).
- For efficiency this only tests a limited set of points on the curve.
- </summary>
- <param name="inputRing">The input ring</param>
- <param name="distance">The distance</param>
- <param name="curveRing">The curve ring</param>
- <returns><c>true</c> if the curve contains points lying at the required buffer distance</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.BufferCurveSetBuilder.IsErodedCompletely(NetTopologySuite.Geometries.Coordinate[],System.Double)">
- <summary>
- Tests whether a ring buffer is eroded completely (is empty)
- based on simple heuristics.
- <para/>
- The <paramref name="ringCoord"/> is assumed to contain no repeated points.
- It may be degenerate (i.e. contain only 1, 2, or 3 points).
- In this case it has no area, and hence has a minimum diameter of 0.
- </summary>
- <param name="ringCoord"></param>
- <param name="bufferDistance"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.BufferCurveSetBuilder.IsTriangleErodedCompletely(NetTopologySuite.Geometries.Coordinate[],System.Double)">
- <summary>
- Tests whether a triangular ring would be eroded completely by the given
- buffer distance.
- This is a precise test. It uses the fact that the inner buffer of a
- triangle converges on the inCentre of the triangle (the point
- equidistant from all sides). If the buffer distance is greater than the
- distance of the inCentre from a side, the triangle will be eroded completely.
- This test is important, since it removes a problematic case where
- the buffer distance is slightly larger than the inCentre distance.
- In this case the triangle buffer curve "inverts" with incorrect topology,
- producing an incorrect hole in the buffer.
- </summary>
- <param name="triangleCoord"></param>
- <param name="bufferDistance"></param>
- <returns></returns>
- </member>
- <member name="T:NetTopologySuite.Operation.Buffer.BufferInputLineSimplifier">
- <summary>
- Simplifies a buffer input line to remove concavities with shallow depth.
- </summary>
- <remarks>
- <para>
- The major benefit of doing this
- is to reduce the number of points and the complexity of
- shape which will be buffered.
- This improves performance and robustness.
- It also reduces the risk of gores created by
- the quantized fillet arcs (although this issue
- should be eliminated by the
- offset curve generation logic).
- </para>
- <para>
- A key aspect of the simplification is that it
- affects inside (concave or inward) corners only.
- Convex (outward) corners are preserved, since they
- are required to ensure that the generated buffer curve
- lies at the correct distance from the input geometry.
- </para>
- <para>
- Another important heuristic used is that the end segments
- of linear inputs are never simplified. This ensures that
- the client buffer code is able to generate end caps faithfully.
- Ring inputs can have end segments removed by simplification.
- </para>
- <para>
- No attempt is made to avoid self-intersections in the output.
- This is acceptable for use for generating a buffer offset curve,
- since the buffer algorithm is insensitive to invalid polygonal
- geometry. However,
- this means that this algorithm
- cannot be used as a general-purpose polygon simplification technique.
- </para>
- </remarks>
- <author> Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.BufferInputLineSimplifier.Simplify(NetTopologySuite.Geometries.Coordinate[],System.Double)">
- <summary>
- Simplify the input coordinate list.
- If the distance tolerance is positive,
- concavities on the LEFT side of the line are simplified.
- If the supplied distance tolerance is negative,
- concavities on the RIGHT side of the line are simplified.
- </summary>
- <param name="inputLine">The coordinate list to simplify</param>
- <param name="distanceTol">simplification distance tolerance to use</param>
- <returns>The simplified coordinate list</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.BufferInputLineSimplifier.Simplify(System.Double)">
- <summary>
- Simplify the input coordinate list.
- </summary>
- <remarks>
- If the distance tolerance is positive, concavities on the LEFT side of the line are simplified.
- If the supplied distance tolerance is negative, concavities on the RIGHT side of the line are simplified.
- </remarks>
- <param name="distanceTol">Simplification distance tolerance to use</param>
- <returns>
- The simplified coordinates list
- </returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.BufferInputLineSimplifier.DeleteShallowConcavities">
- <summary>
- Uses a sliding window containing 3 vertices to detect shallow angles
- in which the middle vertex can be deleted, since it does not
- affect the shape of the resulting buffer in a significant way.
- </summary>
- <returns><c>true</c> if any vertices were deleted</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.BufferInputLineSimplifier.NextIndex(System.Int32)">
- <summary>
- Finds the next non-deleted index, or the end of the point array if none
- </summary>
- <param name="index">The start index to search from</param>
- <returns>The next non-deleted index, if any <br/>
- or <c>_inputLine.Length</c> if there are no more non-deleted indices
- </returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.BufferInputLineSimplifier.IsShallowSampled(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,System.Int32,System.Int32,System.Double)">
- <summary>
- Checks for shallowness over a sample of points in the given section.
- This helps to prevent the simplification from incrementally
- "skipping" over points which are in fact non-shallow.
- </summary>
- <param name="p0">A coordinate of section</param>
- <param name="p2">A coordinate of section</param>
- <param name="i0">The start index of section</param>
- <param name="i2">The end index of section</param>
- <param name="distanceTol">The tolerated distance</param>
- </member>
- <member name="T:NetTopologySuite.Operation.Buffer.BufferOp">
- <summary>
- Computes the buffer of a geometry, for both positive and negative buffer distances.
- </summary>
- <remarks>
- <para>
- In GIS, the positive (or negative) buffer of a geometry is defined as
- the Minkowski sum (or difference) of the geometry
- with a circle of radius equal to the absolute value of the buffer distance.
- In the CAD/CAM world buffers are known as <i>offset curves</i>.
- In morphological analysis the
- operation of positive and negative buffering
- is referred to as <i>erosion</i> and <i>dilation</i>
- </para>
- <para>
- The buffer operation always returns a polygonal result.
- The negative or zero-distance buffer of lines and points is always an empty <see cref="T:NetTopologySuite.Geometries.Polygon" />.
- </para>
- <para>
- Since true buffer curves may contain circular arcs,
- computed buffer polygons are only approximations to the true geometry.
- The user can control the accuracy of the approximation by specifying
- the number of linear segments used to approximate arcs.
- This is specified via <see cref="P:NetTopologySuite.Operation.Buffer.BufferParameters.QuadrantSegments"/>
- or <see cref="P:NetTopologySuite.Operation.Buffer.BufferOp.QuadrantSegments"/>.
- </para>
- <para>
- The <see cref="P:NetTopologySuite.Operation.Buffer.BufferParameters.EndCapStyle"/> of a linear buffer may be specified.
- The following end cap styles are supported:
- <ul>
- <li><see cref="F:NetTopologySuite.Operation.Buffer.EndCapStyle.Round" /> - the usual round end caps</li>
- <li><see cref="F:NetTopologySuite.Operation.Buffer.EndCapStyle.Flat" /> - end caps are truncated flat at the line ends</li>
- <li><see cref="F:NetTopologySuite.Operation.Buffer.EndCapStyle.Square" /> - end caps are squared off at the buffer distance beyond the line ends</li>
- </ul>
- </para>
- <para>
- The <see cref="P:NetTopologySuite.Operation.Buffer.BufferParameters.JoinStyle"/> of the corners in a buffer may be specified.
- The following join styles are supported:
- <ul>
- <li><see cref="F:NetTopologySuite.Operation.Buffer.JoinStyle.Round" /> - the usual round join</li>
- <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>
- <li><see cref="F:NetTopologySuite.Operation.Buffer.JoinStyle.Bevel" /> - corners are beveled (clipped off)</li>
- </ul>
- </para>
- <para>
- The buffer algorithm may perform simplification on the input to increase performance.
- The simplification is performed a way that always increases the buffer area
- (so that the simplified input covers the original input).
- The degree of simplification can be specified with <see cref="P:NetTopologySuite.Operation.Buffer.BufferParameters.SimplifyFactor"/>,
- with a <see cref="F:NetTopologySuite.Operation.Buffer.BufferParameters.DefaultSimplifyFactor"/> used otherwise.
- Note that if the buffer distance is zero then so is the computed simplify tolerance,
- no matter what the simplify factor.
- </para>
- <para>
- Buffer results are always valid geometry.
- Given this, computing a zero-width buffer of an invalid polygonal geometry is
- an effective way to "validify" the geometry.
- Note however that in the case of self-intersecting "bow-tie" geometries,
- only the largest enclosed area will be retained.
- </para>
- </remarks>
- </member>
- <member name="F:NetTopologySuite.Operation.Buffer.BufferOp.MaxPrecisionDigits">
- <summary>
- A number of digits of precision which leaves some computational "headroom"
- for floating point operations.
- </summary>
- <remarks>
- This value should be less than the decimal precision of double-precision values (16).
- </remarks>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.BufferOp.PrecisionScaleFactor(NetTopologySuite.Geometries.Geometry,System.Double,System.Int32)">
- <summary>
- Compute a scale factor to limit the precision of
- a given combination of Geometry and buffer distance.
- The scale factor is determined by
- the number of digits of precision in the (geometry + buffer distance),
- limited by the supplied <paramref name="maxPrecisionDigits"/> value.
- <para/>
- The scale factor is based on the absolute magnitude of the (geometry + buffer distance).
- since this determines the number of digits of precision which must be handled.
- </summary>
- <param name="g"> the Geometry being buffered</param>
- <param name="distance"> the buffer distance</param>
- <param name="maxPrecisionDigits"> the max # of digits that should be allowed by
- the precision determined by the computed scale factor</param>
-
- <returns> a scale factor for the buffer computation</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.BufferOp.Buffer(NetTopologySuite.Geometries.Geometry,System.Double)">
- <summary>
- Computes the buffer of a geometry for a given buffer distance.
- </summary>
- <param name="g"> the geometry to buffer</param>
- <param name="distance"> the buffer distance</param>
- <returns> the buffer of the input geometry</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.BufferOp.Buffer(NetTopologySuite.Geometries.Geometry,System.Double,NetTopologySuite.Operation.Buffer.BufferParameters)">
- <summary>
- Computes the buffer for a geometry for a given buffer distance
- and accuracy of approximation.
- </summary>
- <param name="g"> the geometry to buffer</param>
- <param name="distance"> the buffer distance</param>
- <param name="parameters"> the buffer parameters to use</param>
- <returns> the buffer of the input geometry</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.BufferOp.Buffer(NetTopologySuite.Geometries.Geometry,System.Double,System.Int32)">
- <summary>
- Computes the buffer for a geometry for a given buffer distance
- and accuracy of approximation.
- </summary>
- <param name="g"> the geometry to buffer</param>
- <param name="distance"> the buffer distance</param>
- <param name="quadrantSegments"> the number of segments used to approximate a quarter circle</param>
- <returns> the buffer of the input geometry</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.BufferOp.BufferByZero(NetTopologySuite.Geometries.Geometry,System.Boolean)">
- <summary>
- Buffers a geometry with distance zero.
- The result can be computed using the maximum-signed-area orientation,
- or by combining both orientations.
- <para/>
- This can be used to fix an invalid polygonal geometry to be valid
- (i.e.with no self-intersections).
- For some uses(e.g.fixing the result of a simplification)
- a better result is produced by using only the max-area orientation.
- Other uses (e.g.fixing geometry) require both orientations to be used.
- <para/>
- This function is for INTERNAL use only.
- </summary>
- <param name="geom">The polygonal geometry to buffer by zero</param>
- <param name="isBothOrientations">A flag indicating if both orientations of input rings should be used</param>
- <returns>The buffered polygonal geometry</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.BufferOp.Combine(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Combines the elements of two polygonal geometries together.
- The input geometries must be non-adjacent, to avoid
- creating an invalid result.
- </summary>
- <param name="poly0">A polygonal geometry (which may be empty)</param>
- <param name="poly1">Another polygonal geometry (which may be empty)</param>
- <returns>A combined polygonal geometry</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.BufferOp.#ctor(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Initializes a buffer computation for the given geometry
- </summary>
- <param name="g"> the geometry to buffer</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.BufferOp.#ctor(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Operation.Buffer.BufferParameters)">
- <summary>
- Initializes a buffer computation for the given geometry
- with the given set of parameters
- </summary>
- <param name="g"> the geometry to buffer</param>
- <param name="bufParams"> the buffer parameters to use</param>
- </member>
- <member name="P:NetTopologySuite.Operation.Buffer.BufferOp.QuadrantSegments">
- <summary>
- Gets or sets the number of line segments in a quarter-circle
- used to approximate angle fillets for round end caps and joins.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.BufferOp.GetResultGeometry(System.Double)">
- <summary>
- Returns the buffer computed for a geometry for a given buffer distance.
- </summary>
- <param name="distance"> the buffer distance</param>
- <returns> the buffer of the input geometry</returns>
- </member>
- <member name="T:NetTopologySuite.Operation.Buffer.BufferParameters">
- <summary>
- A value class containing the parameters which
- specify how a buffer should be constructed.
- <para/>
- The parameters allow control over:
- <list type="bullet">
- <item><description>Quadrant segments (accuracy of approximation for circular arcs)</description></item>
- <item><description>End Cap style</description></item>
- <item><description>Join style</description></item>
- <item><description>Mitre limit</description></item>
- <item><description>whether the buffer is single-sided</description></item>
- </list>
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="F:NetTopologySuite.Operation.Buffer.BufferParameters.DefaultQuadrantSegments">
- <summary>
- The default number of facets into which to divide a fillet of 90 degrees.<br/>
- A value of 8 gives less than 2% max error in the buffer distance.<para/>
- For a max error of < 1%, use QS = 12.<para/>
- For a max error of < 0.1%, use QS = 18.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.Buffer.BufferParameters.DefaultJoinStyle">
- <summary>
- The default number of facets into which to divide a fillet of 90 degrees.<br/>
- A value of 8 gives less than 2% max error in the buffer distance.<para/>
- For a max error of < 1%, use QS = 12.<para/>
- For a max error of < 0.1%, use QS = 18.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.Buffer.BufferParameters.DefaultMitreLimit">
- <summary>
- The default mitre limit
- Allows fairly pointy mitres.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.Buffer.BufferParameters.DefaultSimplifyFactor">
- <summary>
- The default simplify factor.
- Provides an accuracy of about 1%, which matches
- the accuracy of the <see cref="F:NetTopologySuite.Operation.Buffer.BufferParameters.DefaultQuadrantSegments"/> parameter.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.BufferParameters.#ctor">
- <summary>
- Creates a default set of parameters
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.BufferParameters.#ctor(System.Int32)">
- <summary>
- Creates a set of parameters with the given quadrantSegments value.
- </summary>
- <param name="quadrantSegments">The number of quadrant segments to use</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.BufferParameters.#ctor(System.Int32,NetTopologySuite.Operation.Buffer.EndCapStyle)">
- <summary>
- Creates a set of parameters with the
- given quadrantSegments and endCapStyle values.
- </summary>
- <param name="quadrantSegments"> the number of quadrant segments to use</param>
- <param name="endCapStyle"> the end cap style to use</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.BufferParameters.#ctor(System.Int32,NetTopologySuite.Operation.Buffer.EndCapStyle,NetTopologySuite.Operation.Buffer.JoinStyle,System.Double)">
- <summary>
- Creates a set of parameters with the
- given parameter values.
- </summary>
- <param name="quadrantSegments"> the number of quadrant segments to use</param>
- <param name="endCapStyle"> the end cap style to use</param>
- <param name="joinStyle"> the join style to use</param>
- <param name="mitreLimit"> the mitre limit to use</param>
- </member>
- <member name="P:NetTopologySuite.Operation.Buffer.BufferParameters.QuadrantSegments">
- <summary>
- Gets or sets the number of line segments in a quarter-circle
- used to approximate angle fillets in round endcaps and joins.
- The value should be at least 1.
- <para/>
- This determines the
- error in the approximation to the true buffer curve.<br/>
- The default value of 8 gives less than 2% error in the buffer distance.<para/>
- For an error of < 1%, use QS = 12.<para/>
- For an error of < 0.1%, use QS = 18.<para/>
- The error is always less than the buffer distance
- (in other words, the computed buffer curve is always inside the true
- curve).
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.BufferParameters.BufferDistanceError(System.Int32)">
- <summary>
- Computes the maximum distance error due to a given level of approximation to a true arc.
- </summary>
- <param name="quadSegs">The number of segments used to approximate a quarter-circle</param>
- <returns>The error of approximation</returns>
- </member>
- <member name="P:NetTopologySuite.Operation.Buffer.BufferParameters.EndCapStyle">
- <summary>
- Gets or sets the end cap style of the generated buffer.
- </summary>
- <remarks>
- <para>
- The styles supported are <see cref="F:NetTopologySuite.Operation.Buffer.EndCapStyle.Round"/>,
- <see cref="F:NetTopologySuite.Operation.Buffer.EndCapStyle.Flat"/>, and
- <see cref="F:NetTopologySuite.Operation.Buffer.EndCapStyle.Square"/>.
- </para>
- <para>The default is <see cref="F:NetTopologySuite.Operation.Buffer.EndCapStyle.Round"/>.</para>
- </remarks>
- </member>
- <member name="P:NetTopologySuite.Operation.Buffer.BufferParameters.JoinStyle">
- <summary>
- Gets/Sets the join style for outside (reflex) corners between line segments.
- </summary>
- <remarks>
- <para>The styles supported are <see cref="F:NetTopologySuite.Operation.Buffer.JoinStyle.Round"/>,
- <see cref="F:NetTopologySuite.Operation.Buffer.JoinStyle.Mitre"/> and <see cref="F:NetTopologySuite.Operation.Buffer.JoinStyle.Bevel"/></para>
- The default is <see cref="F:NetTopologySuite.Operation.Buffer.JoinStyle.Round"/>
- </remarks>
- </member>
- <member name="P:NetTopologySuite.Operation.Buffer.BufferParameters.MitreLimit">
- <summary>
- Sets the limit on the mitre ratio used for very sharp corners.
- </summary>
- <remarks>
- <para>
- The mitre ratio is the ratio of the distance from the corner
- to the end of the mitred offset corner.
- When two line segments meet at a sharp angle,
- a miter join will extend far beyond the original geometry.
- (and in the extreme case will be infinitely far.)
- To prevent unreasonable geometry, the mitre limit
- allows controlling the maximum length of the join corner.
- Corners with a ratio which exceed the limit will be beveled.
- </para>
- </remarks>
- </member>
- <member name="P:NetTopologySuite.Operation.Buffer.BufferParameters.IsSingleSided">
- <summary>
- Gets or sets whether the computed buffer should be single-sided.
- A single-sided buffer is constructed on only one side of each input line.
- <para>
- The side used is determined by the sign of the buffer distance:
- <list type="bullet">
- <item><description>a positive distance indicates the left-hand side</description></item>
- <item><description>a negative distance indicates the right-hand side</description></item>
- </list>
- The single-sided buffer of point geometries is the same as the regular buffer.
- </para><para>
- The End Cap Style for single-sided buffers is always ignored,
- and forced to the equivalent of <see cref="F:NetTopologySuite.Operation.Buffer.EndCapStyle.Flat"/>.
- </para>
- </summary>
- </member>
- <member name="P:NetTopologySuite.Operation.Buffer.BufferParameters.SimplifyFactor">
- <summary>
- Factor used to determine the simplify distance tolerance
- for input simplification.
- Simplifying can increase the performance of computing buffers.
- Generally the simplify factor should be greater than 0.
- Values between 0.01 and .1 produce relatively good accuracy for the generate buffer.
- Larger values sacrifice accuracy in return for performance.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.BufferParameters.Copy">
- <summary>
- Creates a copy
- </summary>
- <returns></returns>
- </member>
- <member name="T:NetTopologySuite.Operation.Buffer.BufferSubgraph">
- <summary>
- A connected subset of the graph of
- <c>DirectedEdges</c> and <c>Node</c>s.
- Its edges will generate either
- a single polygon in the complete buffer, with zero or more holes, or
- one or more connected holes.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.BufferSubgraph.#ctor">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.Operation.Buffer.BufferSubgraph.DirectedEdges">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.Operation.Buffer.BufferSubgraph.Nodes">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.Operation.Buffer.BufferSubgraph.RightMostCoordinate">
- <summary>
- Gets the rightmost coordinate in the edges of the subgraph.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.BufferSubgraph.Create(NetTopologySuite.GeometriesGraph.Node)">
- <summary>
- Creates the subgraph consisting of all edges reachable from this node.
- Finds the edges in the graph and the rightmost coordinate.
- </summary>
- <param name="node">A node to start the graph traversal from.</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.BufferSubgraph.AddReachable(NetTopologySuite.GeometriesGraph.Node)">
- <summary>
- Adds all nodes and edges reachable from this node to the subgraph.
- Uses an explicit stack to avoid a large depth of recursion.
- </summary>
- <param name="startNode">A node known to be in the subgraph.</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.BufferSubgraph.Add(NetTopologySuite.GeometriesGraph.Node,System.Collections.Generic.Stack{NetTopologySuite.GeometriesGraph.Node})">
- <summary>
- Adds the argument node and all its out edges to the subgraph
- </summary>
- <param name="node">The node to add.</param>
- <param name="nodeStack">The current set of nodes being traversed.</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.BufferSubgraph.ClearVisitedEdges">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.BufferSubgraph.ComputeDepth(System.Int32)">
- <summary>
-
- </summary>
- <param name="outsideDepth"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.BufferSubgraph.ComputeDepths(NetTopologySuite.GeometriesGraph.DirectedEdge)">
- <summary>
- Compute depths for all dirEdges via breadth-first traversal of nodes in graph.
- </summary>
- <param name="startEdge">Edge to start processing with.</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.BufferSubgraph.ComputeNodeDepth(NetTopologySuite.GeometriesGraph.Node)">
- <summary>
-
- </summary>
- <param name="n"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.BufferSubgraph.CopySymDepths(NetTopologySuite.GeometriesGraph.DirectedEdge)">
- <summary>
-
- </summary>
- <param name="de"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.BufferSubgraph.FindResultEdges">
- <summary>
- Find all edges whose depths indicates that they are in the result area(s).
- Since we want polygon shells to be
- oriented CW, choose dirEdges with the interior of the result on the RHS.
- Mark them as being in the result.
- Interior Area edges are the result of dimensional collapses.
- They do not form part of the result area boundary.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.BufferSubgraph.CompareTo(System.Object)">
- <summary>
- BufferSubgraphs are compared on the x-value of their rightmost Coordinate.
- This defines a partial ordering on the graphs such that:
- g1 >= g2 - Ring(g2) does not contain Ring(g1)
- where Polygon(g) is the buffer polygon that is built from g.
- This relationship is used to sort the BufferSubgraphs so that shells are guaranteed to
- be built before holes.
- </summary>
- </member>
- <member name="T:NetTopologySuite.Operation.Buffer.EndCapStyle">
- <summary>
- End cap style constants
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.Buffer.EndCapStyle.Round">
- <summary>
- Specifies a round line buffer end cap style.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.Buffer.EndCapStyle.Flat">
- <summary>
- Specifies a flat line buffer end cap style.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.Buffer.EndCapStyle.Square">
- <summary>
- Specifies a square line buffer end cap style.
- </summary>
- </member>
- <member name="T:NetTopologySuite.Operation.Buffer.JoinStyle">
- <summary>
- Join style constants
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.Buffer.JoinStyle.Round">
- <summary>
- Specifies a round join style.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.Buffer.JoinStyle.Mitre">
- <summary>
- Specifies a mitre join style.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.Buffer.JoinStyle.Bevel">
- <summary>
- Specifies a bevel join style.
- </summary>
- </member>
- <member name="T:NetTopologySuite.Operation.Buffer.OffsetCurve">
- <summary>
- Computes an offset curve from a geometry.
- An offset curve is a linear geometry which is offset a given distance
- from the input.
- If the offset distance is positive the curve lies on the left side of the input;
- if it is negative the curve is on the right side.
- The curve(s) have the same direction as the input line(s).
- The result for a zero offset distance is a copy of the input linework.
- <para/>
- The offset curve is based on the boundary of the buffer for the geometry
- at the offset distance(see <see cref="T:NetTopologySuite.Operation.Buffer.BufferOp"/>.
- The normal mode of operation is to return the sections of the buffer boundarywhich lie on the raw offset curve
- (obtained via <see cref="M:NetTopologySuite.Operation.Buffer.OffsetCurve.RawOffset(NetTopologySuite.Geometries.LineString,System.Double)"/>.
- The offset curve will contain multiple sections
- if the input self-intersects or has close approaches.The computed sections are ordered along the raw offset curve.
- Sections are disjoint.They never self-intersect, but may be rings.
- <list type="bullet">
- <item><description>For a <see cref="T:NetTopologySuite.Geometries.LineString"/> the offset curve is a linear geometry
- (<see cref="T:NetTopologySuite.Geometries.LineString"/> or <see cref="T:NetTopologySuite.Geometries.MultiLineString"/>).</description></item>
- <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>
- <item><description>For a <see cref="T:NetTopologySuite.Geometries.Polygon"/> the offset curve is the boundary of the polygon buffer (which
- may be a <see cref="T:NetTopologySuite.Geometries.MultiLineString"/>).</description></item>
- <item><description>For a collection the output is a <see cref="T:NetTopologySuite.Geometries.MultiLineString"/> containing the offset curves of the elements.</description></item>
- </list>
- <para/>
- In "joined" mode (see {@link #setJoined(boolean)}
- the sections computed for each input line are joined into a single offset curve line.
- The joined curve may self-intersect.
- At larger offset distances the curve may contain "flat-line" artifacts
- in places where the input self-intersects.
- <para/>
- Offset curves support setting the number of quadrant segments,
- the join style, and the mitre limit(if applicable) via
- the <see cref="T:NetTopologySuite.Operation.Buffer.BufferParameters"/>.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="F:NetTopologySuite.Operation.Buffer.OffsetCurve.MatchDistanceFactor">
- <summary>
- The nearness tolerance for matching the raw offset linework and the buffer curve.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.Buffer.OffsetCurve.MinQuadrantSegments">
- <summary>
- A QuadSegs minimum value that will prevent generating
- unwanted offset curve artifacts near end caps.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurve.GetCurve(NetTopologySuite.Geometries.Geometry,System.Double)">
- <summary>
- Computes the offset curve of a geometry at a given distance.
- </summary>
- <param name="geom">A geometry</param>
- <param name="distance">the offset distance (positive for left, negative for right)</param>
- <returns>The offset curve</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurve.GetCurve(NetTopologySuite.Geometries.Geometry,System.Double,System.Int32,NetTopologySuite.Operation.Buffer.JoinStyle,System.Double)">
- <summary>
- Computes the offset curve of a geometry at a given distance,
- with specified quadrant segments, join style and mitre limit.
- </summary>
- <param name="geom">A geometry</param>
- <param name="distance">The offset distance (positive for left, negative for right)</param>
- <param name="quadSegs">The quadrant segments</param>
- <param name="joinStyle">The join style</param>
- <param name="mitreLimit">The mitre limit</param>
- <returns>The offset curve</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurve.GetCurveJoined(NetTopologySuite.Geometries.Geometry,System.Double)">
- <summary>
- Computes the offset curve of a geometry at a given distance,
- joining curve sections into a single line for each input line.
- </summary>
- <param name="geom">A geometry</param>
- <param name="distance">the offset distance (positive for left, negative for right)</param>
- <returns>The joined offset curve</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurve.#ctor(NetTopologySuite.Geometries.Geometry,System.Double)">
- <summary>
- Creates a new instance for computing an offset curve for a geometry at a given distance.
- with default quadrant segments(<see cref="F:NetTopologySuite.Operation.Buffer.BufferParameters.DefaultQuadrantSegments"/>
- and join style (<see cref="F:NetTopologySuite.Operation.Buffer.BufferParameters.DefaultJoinStyle"/>).
- </summary>
- <param name="geom">The geometry</param>
- <param name="distance">The offset distance (positive for left, negative for right)</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurve.#ctor(NetTopologySuite.Geometries.Geometry,System.Double,NetTopologySuite.Operation.Buffer.BufferParameters)">
- <summary>
- Creates a new instance for computing an offset curve for a geometry at a given distance.
- setting the quadrant segments, join style and mitre limit
- via <see cref="T:NetTopologySuite.Operation.Buffer.BufferParameters"/>.
- </summary>
- <param name="geom">The geometry</param>
- <param name="distance">The offset distance (positive for left, negative for right)</param>
- <param name="bufParams">The buffer paramters to use</param>
- </member>
- <member name="P:NetTopologySuite.Operation.Buffer.OffsetCurve.Joined">
- <summary>
- Gets or sets a value indicating if a single curve line for
- each input linear component is computed
- by joining curve sections in order along the raw offset curve.
- The default mode is to compute separate curve sections.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurve.GetCurve">
- <summary>
- Gets the computed offset curve.
- </summary>
- <returns>The offset curve geometry</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurve.OffsetCurveMapOp.ToLineString(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Force LinearRings to be LineStrings.
- </summary>
- <param name="geom">A geometry, which may be a <c>LinearRing</c></param>
- <returns>A geometry which will be a <c>LineString</c> or <c>MulitLineString</c></returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurve.RawOffset(NetTopologySuite.Geometries.LineString,System.Double,NetTopologySuite.Operation.Buffer.BufferParameters)">
- <summary>
- Gets the raw offset curve for a line at a given distance.
- The quadrant segments, join style and mitre limit can be specified
- via <see cref="T:NetTopologySuite.Operation.Buffer.BufferParameters"/>.
- <para/>
- The raw offset line may contain loops and other artifacts which are
- not present in the true offset curve.
- </summary>
- <param name="line">The <c>LineString</c> to offset</param>
- <param name="distance">The offset distance (positive for left, negative for right)</param>
- <param name="bufParams">The buffer parameters to use</param>
- <returns>The raw offset curve points</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurve.RawOffset(NetTopologySuite.Geometries.LineString,System.Double)">
- <summary>
- Gets the raw offset curve for a line at a given distance,
- with default buffer parameters.
- </summary>
- <param name="line">The <c>LineString</c> to offset</param>
- <param name="distance">The offset distance (positive for left, negative for right)</param>
- <returns>The raw offset line</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurve.ExtractMaxAreaPolygon(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Extracts the largest polygon by area from a geometry.
- Used here to avoid issues with non-robust buffer results
- which have spurious extra polygons.
- </summary>
- <param name="geom">A geometry</param>
- <returns>The polygon element of largest area</returns>
- </member>
- <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[])">
- <summary>
- Matches the segments in a buffer ring to the raw offset curve
- to obtain their match positions(if any).
- </summary>
- <param name="raw0">A raw curve segment start point</param>
- <param name="raw1">A raw curve segment end point</param>
- <param name="rawCurveIndex">The index of the raw curve segment</param>
- <param name="bufferSegIndex">The spatial index of the buffer ring segments</param>
- <param name="bufferPts">The points of the buffer ring</param>
- <param name="rawCurvePos">The raw curve positions of the buffer ring segments</param>
- <returns>The index of the minimum matched buffer segment</returns>
- </member>
- <member name="T:NetTopologySuite.Operation.Buffer.OffsetCurve.MatchCurveSegmentAction">
- <summary>
- An action to match a raw offset curve segment
- to segments in a buffer ring
- and record the matched segment locations(s) along the raw curve.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurve.ExtractSections(NetTopologySuite.Geometries.Coordinate[],System.Double[],System.Int32,System.Collections.Generic.List{NetTopologySuite.Operation.Buffer.OffsetCurveSection})">
- <summary>
- This is only called when there is at least one ring segment matched
- (so rawCurvePos has at least one entry != <see cref="F:NetTopologySuite.Operation.Buffer.OffsetCurve.NOT_IN_CURVE"/>).
- The start index of the first section must be provided.
- This is intended to be the section with lowest position
- along the raw curve.
- </summary>
- <param name="ringPts">The points in a buffer ring</param>
- <param name="rawCurveLoc">The position of buffer ring segments along the raw curve</param>
- <param name="startIndex">The index of the start of a section</param>
- <param name="sections">The list of extracted offset curve sections</param>
- </member>
- <member name="T:NetTopologySuite.Operation.Buffer.OffsetCurveBuilder">
- <summary>
- Computes the raw offset curve for a
- single <see cref="T:NetTopologySuite.Geometries.Geometry"/> component (ring, line or point).
- A raw offset curve line is not noded -
- it may contain self-intersections (and usually will).g
- The final buffer polygon is computed by forming a topological graph
- of all the noded raw curves and tracing outside contours.
- The points in the raw curve are rounded
- to a given <see cref="T:NetTopologySuite.Geometries.PrecisionModel"/>.
- <para/>
- Note: this may not produce correct results if the input
- contains repeated or invalid points.
- Repeated points should be removed before calling.
- <see cref="M:NetTopologySuite.Geometries.CoordinateArrays.RemoveRepeatedOrInvalidPoints(NetTopologySuite.Geometries.Coordinate[])"/>.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Operation.Buffer.OffsetCurveBuilder.BufferParameters">
- <summary>
- Gets the buffer parameters being used to generate the curve.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurveBuilder.GetLineCurve(NetTopologySuite.Geometries.Coordinate[],System.Double)">
- <summary>
- This method handles single points as well as LineStrings.
- LineStrings are assumed <b>not</b> to be closed (the function will not
- fail for closed lines, but will generate superfluous line caps).
- </summary>
- <param name="inputPts">The vertices of the line to offset</param>
- <param name="distance">The offset distance</param>
- <returns>A Coordinate array representing the curve <br/>
- or <c>null</c> if the curve is empty
- </returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurveBuilder.IsLineOffsetEmpty(System.Double)">
- <summary>
- Tests whether the offset curve for line or point geometries
- at the given offset distance is empty (does not exist).
- This is the case if:
- <list type="bullet">
- <item><term>the distance is zero</term></item>
- <item><term>the distance is negative, except for the case of singled-sided buffers</term></item>
- </list>
- </summary>
- <param name="distance">The offset curve distance</param>
- <returns><c>true</c> if the offset curve is empty</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurveBuilder.GetRingCurve(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.GeometriesGraph.Positions,System.Double)">
- <summary>
- This method handles the degenerate cases of single points and lines,
- as well as rings.
- </summary>
- <returns>A Coordinate array representing the curve<br/>
- or <c>null</c> if the curve is empty</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurveBuilder.GetRingCurve(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.Geometries.Position,System.Double)">
- <summary>
- This method handles the degenerate cases of single points and lines,
- as well as rings.
- </summary>
- <returns>A Coordinate array representing the curve<br/>
- or <c>null</c> if the curve is empty</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurveBuilder.SimplifyTolerance(System.Double)">
- <summary>
- Computes the distance tolerance to use during input
- line simplification.
- </summary>
- <param name="bufDistance">The buffer distance</param>
- <returns>The simplification tolerance</returns>
- </member>
- <member name="T:NetTopologySuite.Operation.Buffer.OffsetCurveSection">
- <summary>
- Models a section of a raw offset curve,
- starting at a given location along the raw curve.
- The location is a decimal number, with the integer part
- containing the segment index and the fractional part
- giving the fractional distance along the segment.
- The location of the last section segment
- is also kept, to allow optimizing joining sections together.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurveSection.ToLine(System.Collections.Generic.IEnumerable{NetTopologySuite.Operation.Buffer.OffsetCurveSection},NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
- Joins section coordinates into a LineString.
- Join vertices which lie in the same raw curve segment
- are removed, to simplify the result linework.
- </summary>
- <param name="sections">An enumeration of sections to join</param>
- <param name="geomFactory">The geometry factory to use</param>
- <returns>The simplified linestring for the joined sections</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurveSection.CompareTo(NetTopologySuite.Operation.Buffer.OffsetCurveSection)">
- Orders sections by their location along the raw offset curve.
- </member>
- <member name="T:NetTopologySuite.Operation.Buffer.OffsetCurveSetBuilder">
- <summary>
- Creates all the raw offset curves for a buffer of a <c>Geometry</c>.
- Raw curves need to be noded together and polygonized to form the final buffer area.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurveSetBuilder.#ctor(NetTopologySuite.Geometries.Geometry,System.Double,NetTopologySuite.Operation.Buffer.OffsetCurveBuilder)">
- <summary>
-
- </summary>
- <param name="inputGeom"></param>
- <param name="distance"></param>
- <param name="curveBuilder"></param>
- </member>
- <member name="P:NetTopologySuite.Operation.Buffer.OffsetCurveSetBuilder.InvertOrientation">
- <summary>
- Gets or sets a value indicating whether the offset curve is generated
- using the inverted orientation of input rings.
- This allows generating a buffer(0) polygon from the smaller lobes
- of self-crossing rings.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurveSetBuilder.IsRingCCW(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Computes orientation of a ring using a signed-area orientation test.
- For invalid (self-crossing) rings this ensures the largest enclosed area
- is taken to be the interior of the ring.
- This produces a more sensible result when
- used for repairing polygonal geometry via buffer-by-zero.
- For buffer use the lower robustness of orientation-by-area
- doesn't matter, since narrow or flat rings
- produce an acceptable offset curve for either orientation.
- </summary>
- <param name="coord">The ring coordinates</param>
- <returns>true if the ring is CCW</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurveSetBuilder.GetCurves">
- <summary>
- Computes the set of raw offset curves for the buffer.
- Each offset curve has an attached {Label} indicating
- its left and right location.
- </summary>
- <returns>A Collection of SegmentStrings representing the raw buffer curves.</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurveSetBuilder.AddCurve(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Location)">
- <summary>
- Creates a {SegmentString} for a coordinate list which is a raw offset curve,
- and adds it to the list of buffer curves.
- The SegmentString is tagged with a Label giving the topology of the curve.
- The curve may be oriented in either direction.
- If the curve is oriented CW, the locations will be:
- Left: Location.Exterior.
- Right: Location.Interior.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurveSetBuilder.Add(NetTopologySuite.Geometries.Geometry)">
- <summary>
-
- </summary>
- <param name="g"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurveSetBuilder.AddCollection(NetTopologySuite.Geometries.Geometry)">
- <summary>
-
- </summary>
- <param name="gc"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurveSetBuilder.AddPoint(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Add a Point to the graph.
- </summary>
- <param name="p"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurveSetBuilder.Clean(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Keeps only valid coordinates, and removes repeated points.
- </summary>
- <param name="coords">The coordinates to clean</param>
- <returns>An array of clean coordinates</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurveSetBuilder.AddPolygon(NetTopologySuite.Geometries.Polygon)">
- <summary>
-
- </summary>
- <param name="p"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurveSetBuilder.AddRingSide(NetTopologySuite.Geometries.Coordinate[],System.Double,NetTopologySuite.Geometries.Position,NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Location)">
- <summary>
- Adds an offset curve for a polygon ring.
- The side and left and right topological location arguments
- assume that the ring is oriented CW.
- If the ring is in the opposite orientation,
- the left and right locations must be interchanged and the side flipped.
- </summary>
- <param name="coord">The coordinates of the ring (must not contain repeated points).</param>
- <param name="offsetDistance">The distance at which to create the buffer.</param>
- <param name="side">The side of the ring on which to construct the buffer line.</param>
- <param name="cwLeftLoc">The location on the L side of the ring (if it is CW).</param>
- <param name="cwRightLoc">The location on the R side of the ring (if it is CW).</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurveSetBuilder.IsRingCurveInverted(NetTopologySuite.Geometries.Coordinate[],System.Double,NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Tests whether the offset curve for a ring is fully inverted.
- An inverted ("inside-out") curve occurs in some specific situations
- involving a buffer distance which should result in a fully-eroded (empty) buffer.
- It can happen that the sides of a small, convex polygon
- produce offset segments which all cross one another to form
- a curve with inverted orientation.<br/>
- This happens at buffer distances slightly greater than the distance at
- which the buffer should disappear.<br/>
- The inverted curve will produce an incorrect non-empty buffer (for a shell)
- or an incorrect hole (for a hole).
- It must be discarded from the set of offset curves used in the buffer.
- Heuristics are used to reduce the number of cases which area checked,
- for efficiency and correctness.
- <para/>
- See <a href="https://github.com/locationtech/jts/issues/472"/>
- </summary>
- <param name="inputPts">the input ring</param>
- <param name="distance">the buffer distance</param>
- <param name="curvePts">the generated offset curve</param>
- <returns>true if the offset curve is inverted</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurveSetBuilder.MaxDistance(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Computes the maximum distance out of a set of points to a linestring.
- </summary>
- <param name="pts">The points</param>
- <param name="line">The linestring vertices</param>
- <returns>The maximum distance</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurveSetBuilder.IsErodedCompletely(NetTopologySuite.Geometries.Coordinate[],System.Double)">
- <summary>
- Tests whether a ring buffer is eroded completely (is empty)
- based on simple heuristics.
- <para/>
- The <paramref name="ringCoord"/> is assumed to contain no repeated points.
- It may be degenerate (i.e. contain only 1, 2, or 3 points).
- In this case it has no area, and hence has a minimum diameter of 0.
- </summary>
- <param name="ringCoord"></param>
- <param name="bufferDistance"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurveSetBuilder.IsTriangleErodedCompletely(NetTopologySuite.Geometries.Coordinate[],System.Double)">
- <summary>
- Tests whether a triangular ring would be eroded completely by the given
- buffer distance.
- This is a precise test. It uses the fact that the inner buffer of a
- triangle converges on the inCentre of the triangle (the point
- equidistant from all sides). If the buffer distance is greater than the
- distance of the inCentre from a side, the triangle will be eroded completely.
- This test is important, since it removes a problematic case where
- the buffer distance is slightly larger than the inCentre distance.
- In this case the triangle buffer curve "inverts" with incorrect topology,
- producing an incorrect hole in the buffer.
- </summary>
- <param name="triangleCoord"></param>
- <param name="bufferDistance"></param>
- <returns></returns>
- </member>
- <member name="T:NetTopologySuite.Operation.Buffer.OffsetCurveVertexList">
- <summary>
- A list of the vertices in a constructed offset curve.
- </summary>
- <remarks>Automatically removes close adjacent vertices.</remarks>
- <author>Martin Davis</author>
- </member>
- <member name="P:NetTopologySuite.Operation.Buffer.OffsetCurveVertexList.PrecisionModel">
- <summary>
- Gets/Sets the precision model to use when adding new points.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Operation.Buffer.OffsetCurveVertexList.MinimumVertexDistance">
- <summary>
- The distance below which two adjacent points on the curve are considered to be coincident.
- </summary>
- <remarks>This is chosen to be a small fraction of the offset distance.</remarks>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurveVertexList.AddPt(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Function to add a point
- </summary>
- <remarks>
- The point is only added if <see cref="M:NetTopologySuite.Operation.Buffer.OffsetCurveVertexList.IsDuplicate(NetTopologySuite.Geometries.Coordinate)"/> evaluates to false.
- </remarks>
- <param name="pt">The point to add.</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurveVertexList.IsDuplicate(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Tests whether the given point duplicates the previous point in the list (up to tolerance)
- </summary>
- <param name="pt">The point to test</param>
- <returns>true if the point duplicates the previous point</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurveVertexList.CloseRing">
- <summary>
- Automatically closes the ring (if it not alread is).
- </summary>
- </member>
- <member name="P:NetTopologySuite.Operation.Buffer.OffsetCurveVertexList.Coordinates">
- <summary>
- Gets the Coordinates for the curve.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurveVertexList.ToString">
- <inheritdoc cref="M:System.Object.ToString"/>
- </member>
- <member name="T:NetTopologySuite.Operation.Buffer.OffsetSegmentGenerator">
- <summary>
- Generates segments which form an offset curve.
- Supports all end cap and join options
- provided for buffering.
- This algorithm implements various heuristics to
- produce smoother, simpler curves which are
- still within a reasonable tolerance of the
- true curve.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="F:NetTopologySuite.Operation.Buffer.OffsetSegmentGenerator.OffsetSegmentSeparationFactor">
- <summary>
- Factor controlling how close offset segments can be to
- skip adding a fillet or mitre.
- This eliminates very short fillet segments,
- reduces the number of offset curve vertices.
- and improves the robustness of mitre construction.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.Buffer.OffsetSegmentGenerator.InsideTurnVertexSnapDistanceFactor">
- <summary>
- Factor controlling how close curve vertices on inside turns can be to be snapped
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.Buffer.OffsetSegmentGenerator.CurveVertexSnapDistanceFactor">
- <summary>
- Factor which controls how close curve vertices can be to be snapped
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.Buffer.OffsetSegmentGenerator.MaxClosingSegLenFactor">
- <summary>
- Factor which determines how short closing segs can be for round buffers
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.Buffer.OffsetSegmentGenerator._maxCurveSegmentError">
- <summary>
- The max error of approximation (distance) between a quad segment and the true fillet curve
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.Buffer.OffsetSegmentGenerator._filletAngleQuantum">
- <summary>
- The angle quantum with which to approximate a fillet curve
- (based on the input # of quadrant segments)
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.Buffer.OffsetSegmentGenerator._closingSegLengthFactor">
- <summary>
- The Closing Segment Length Factor controls how long
- "closing segments" are. Closing segments are added
- at the middle of inside corners to ensure a smoother
- boundary for the buffer offset curve.
- In some cases (particularly for round joins with default-or-better
- quantization) the closing segments can be made quite short.
- This substantially improves performance (due to fewer intersections being created).
- <list type="bullet">
- <item><description>A closingSegFactor of 0 results in lines to the corner vertex</description></item>
- <item><description>A closingSegFactor of 1 results in lines halfway to the corner vertex</description></item>
- <item><description> A closingSegFactor of 80 results in lines 1/81 of the way to the corner vertex
- (this option is reasonable for the very common default situation of round joins
- and quadrantSegs >= 8)</description></item>
- </list>
- </summary>
- </member>
- <member name="P:NetTopologySuite.Operation.Buffer.OffsetSegmentGenerator.HasNarrowConcaveAngle">
- <summary>
- Gets whether the input has a narrow concave angle
- (relative to the offset distance).
- In this case the generated offset curve will contain self-intersections
- and heuristic closing segments.
- This is expected behaviour in the case of buffer curves.
- For pure offset curves,
- the output needs to be further treated
- before it can be used.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OffsetSegmentGenerator.AddLastSegment">
- <summary>
- Add last offset point
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OffsetSegmentGenerator.AddOutsideTurn(NetTopologySuite.Algorithm.OrientationIndex,System.Boolean)">
- <summary>
- Adds the offset points for an outside (convex) turn
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OffsetSegmentGenerator.AddInsideTurn(NetTopologySuite.Algorithm.OrientationIndex,System.Boolean)">
- <summary>
- Adds the offset points for an inside (concave) turn.
- </summary>
- <param name="orientation"></param>
- <param name="addStartPoint"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OffsetSegmentGenerator.ComputeOffsetSegment(NetTopologySuite.Geometries.LineSegment,NetTopologySuite.Geometries.Position,System.Double,NetTopologySuite.Geometries.LineSegment)">
- <summary>
- Compute an offset segment for an input segment on a given side and at a given distance.
- The offset points are computed in full double precision, for accuracy.
- </summary>
- <param name="seg">The segment to offset</param>
- <param name="side">The side of the segment <see cref="T:NetTopologySuite.GeometriesGraph.Positions"/> the offset lies on</param>
- <param name="distance">The offset distance</param>
- <param name="offset">The points computed for the offset segment</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OffsetSegmentGenerator.AddLineEndCap(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Add an end cap around point <paramref name="p1"/>, terminating a line segment coming from <paramref name="p0"/>
- </summary>
- <param name="p0"></param>
- <param name="p1"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OffsetSegmentGenerator.AddMitreJoin(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.LineSegment,NetTopologySuite.Geometries.LineSegment,System.Double)">
- <summary>
- Adds a mitre join connecting two convex offset segments.
- The mitre is beveled if it exceeds the mitre limit factor.
- The mitre limit is intended to prevent extremely long corners occurring.
- If the mitre limit is very small it can cause unwanted artifacts around fairly flat corners.
- This is prevented by using a simple bevel join in this case.
- In other words, the limit prevents the corner from getting too long,
- but it won't force it to be very short/flat.
- </summary>
- <param name="cornerPt">A corner point</param>
- <param name="offset0">The first offset segment</param>
- <param name="offset1">The second offset segment</param>
- <param name="distance">The offset distance</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OffsetSegmentGenerator.AddLimitedMitreJoin(NetTopologySuite.Geometries.LineSegment,NetTopologySuite.Geometries.LineSegment,System.Double,System.Double)">
- <summary>
- Adds a limited mitre join connecting two convex offset segments.
- A limited mitre join is beveled at the distance
- determined by the mitre limit factor,
- or as a standard bevel join, whichever is further.
- </summary>
- <param name="offset0">The first offset segment</param>
- <param name="offset1">The second offset segment</param>
- <param name="distance">The offset distance</param>
- <param name="mitreLimitDistance">The mitre limit distance</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OffsetSegmentGenerator.Project(NetTopologySuite.Geometries.Coordinate,System.Double,System.Double)">
- <summary>
- Projects a point to a given distance in a given direction angle.
- </summary>
- <param name="pt">The point to project</param>
- <param name="d">The projection distance</param>
- <param name="dir">The direction angle (in radians)</param>
- <returns>The projected point</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OffsetSegmentGenerator.AddBevelJoin(NetTopologySuite.Geometries.LineSegment,NetTopologySuite.Geometries.LineSegment)">
- <summary>
- Adds a bevel join connecting the two offset segments
- around a reflex corner.
- </summary>
- <param name="offset0">The first offset segment</param>
- <param name="offset1">The second offset segment</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OffsetSegmentGenerator.AddCornerFillet(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Algorithm.OrientationIndex,System.Double)">
- <summary>
- Add points for a circular fillet around a convex corner.
- Adds the start and end points
- </summary>
- <param name="p">Base point of curve</param>
- <param name="p0">Start point of fillet curve</param>
- <param name="p1">Endpoint of fillet curve</param>
- <param name="direction">The orientation of the fillet</param>
- <param name="radius">The radius of the fillet</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OffsetSegmentGenerator.AddDirectedFillet(NetTopologySuite.Geometries.Coordinate,System.Double,System.Double,NetTopologySuite.Algorithm.OrientationIndex,System.Double)">
- <summary>
- Adds points for a circular fillet arc
- between two specified angles.
- The start and end point for the fillet are not added -
- the caller must add them if required.
- </summary>
- <param name="p">The center point</param>
- <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>
- <param name="startAngle">The start angle of the fillet</param>
- <param name="endAngle">The end angle of the fillet</param>
- <param name="radius">The radius of the fillet</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OffsetSegmentGenerator.CreateCircle(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Creates a <see cref="F:NetTopologySuite.Algorithm.OrientationIndex.Clockwise"/> circle around a point
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OffsetSegmentGenerator.CreateSquare(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Creates a <see cref="F:NetTopologySuite.Algorithm.OrientationIndex.Clockwise"/> square around a point
- </summary>
- </member>
- <member name="T:NetTopologySuite.Operation.Buffer.OffsetSegmentString">
- <summary>
- A dynamic list of the vertices in a constructed offset curve.
- Automatically removes adjacent vertices
- which are closer than a given tolerance.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="F:NetTopologySuite.Operation.Buffer.OffsetSegmentString._minimumVertexDistance">
- <summary>
- The distance below which two adjacent points on the curve
- are considered to be coincident.<br/>
- This is chosen to be a small fraction of the offset distance.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OffsetSegmentString.IsRedundant(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Tests whether the given point is redundant
- relative to the previous
- point in the list (up to tolerance).
- </summary>
- <param name="pt"></param>
- <returns>true if the point is redundant</returns>
- </member>
- <member name="T:NetTopologySuite.Operation.Buffer.OldOffsetCurveBuilder">
- <summary>
- Computes the raw offset curve for a single <see cref="T:NetTopologySuite.Geometries.Geometry"/> component (ring, line or point).
- </summary>
- <remarks>
- A raw offset curve line is not noded - it may contain self-intersections (and usually will).
- The final buffer polygon is computed by forming a topological graph
- of all the noded raw curves and tracing outside contours.
- The points in the raw curve are rounded to the required precision model.
- </remarks>
- </member>
- <member name="F:NetTopologySuite.Operation.Buffer.OldOffsetCurveBuilder._filletAngleQuantum">
- <summary>
- The angle quantum with which to approximate a fillet curve
- (based on the input # of quadrant segments)
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.Buffer.OldOffsetCurveBuilder._maxCurveSegmentError">
- <summary>
- The max error of approximation (distance) between a quad segment and the true fillet curve
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.Buffer.OldOffsetCurveBuilder.CurveVertexSnapDistanceFactor">
- <summary>
- Factor which controls how close curve vertices can be to be snapped
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.Buffer.OldOffsetCurveBuilder.OffsetSegmentSeparationFactor">
- <summary>
- Factor which controls how close offset segments can be to
- skip adding a filler or mitre.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.Buffer.OldOffsetCurveBuilder.InsideTurnVertexSnapDistanceFactor">
- <summary>
- Factor which controls how close curve vertices on inside turns can be to be snapped
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.Buffer.OldOffsetCurveBuilder.MaxClosingSegFraction">
- <summary>
- Factor which determines how short closing segs can be for round buffers
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.Buffer.OldOffsetCurveBuilder._closingSegFactor">
- <summary>
- The Closing Segment Factor controls how long
- "closing segments" are. Closing segments are added
- at the middle of inside corners to ensure a smoother
- boundary for the buffer offset curve.<br/>
- In some cases (particularly for round joins with default-or-better
- quantization) the closing segments can be made quite short.
- This substantially improves performance (due to fewer intersections being created).
- <br/>
- A closingSegFactor of 0 results in lines to the corner vertex<br/>
- A closingSegFactor of 1 results in lines halfway to the corner vertex<br/>
- A closingSegFactor of 80 results in lines 1/81 of the way to the corner vertex
- (this option is reasonable for the very common default situation of round joins
- and quadrantSegs >= 8)
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OldOffsetCurveBuilder.GetLineCurve(NetTopologySuite.Geometries.Coordinate[],System.Double)">
- <summary>
- This method handles single points as well as lines.
- Lines are assumed to <b>not</b> be closed (the function will not
- fail for closed lines, but will generate superfluous line caps).
- </summary>
- <returns>a List of Coordinate[]</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OldOffsetCurveBuilder.GetRingCurve(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.GeometriesGraph.Positions,System.Double)">
- <summary>
- This method handles the degenerate cases of single points and lines, as well as rings.
- </summary>
- <returns>a List of Coordinate[]</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OldOffsetCurveBuilder.GetRingCurve(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.Geometries.Position,System.Double)">
- <summary>
- This method handles the degenerate cases of single points and lines, as well as rings.
- </summary>
- <returns>a List of Coordinate[]</returns>
- </member>
- <member name="F:NetTopologySuite.Operation.Buffer.OldOffsetCurveBuilder.SimplifyFactor">
- <summary>
- Use a value which results in a potential distance error which is
- significantly less than the error due to
- the quadrant segment discretization.
- For QS = 8 a value of 100 is reasonable.
- This should produce a maximum of 1% distance error.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OldOffsetCurveBuilder.SimplifyTolerance(System.Double)">
- <summary>
- Computes the distance tolerance to use during input
- line simplification.
- </summary>
- <param name="bufDistance">The buffer distance</param>
- <returns>The simplification tolerance</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OldOffsetCurveBuilder.AddOutsideTurn(NetTopologySuite.Algorithm.OrientationIndex,System.Boolean)">
- <summary>
- Adds the offset points for an outside (convex) turn
- </summary>
- <param name="orientation">
- </param>
- <param name="addStartPoint"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OldOffsetCurveBuilder.AddInsideTurn(NetTopologySuite.Algorithm.OrientationIndex,System.Boolean)">
- <summary>
- Adds the offset points for an inside (concave) turn.
- </summary>
- <param name="orientation"></param>
- <param name="addStartPoint"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OldOffsetCurveBuilder.AddLastSegment">
- <summary>
- Add last offset point
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OldOffsetCurveBuilder.ComputeOffsetSegment(NetTopologySuite.Geometries.LineSegment,NetTopologySuite.Geometries.Position,System.Double,NetTopologySuite.Geometries.LineSegment)">
- <summary>
- Compute an offset segment for an input segment on a given side and at a given distance.
- The offset points are computed in full double precision, for accuracy.
- </summary>
- <param name="seg">The segment to offset</param>
- <param name="side">The side of the segment (<see cref="T:NetTopologySuite.GeometriesGraph.Positions"/>) the offset lies on</param>
- <param name="distance">The offset distance</param>
- <param name="offset">The points computed for the offset segment</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OldOffsetCurveBuilder.AddLineEndCap(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Add an end cap around point p1, terminating a line segment coming from p0
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OldOffsetCurveBuilder.AddMitreJoin(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.LineSegment,NetTopologySuite.Geometries.LineSegment,System.Double)">
- <summary>
- Adds a mitre join connecting the two reflex offset segments.
- The mitre will be beveled if it exceeds the mitre ratio limit.
- </summary>
- <param name="p">The base point</param>
- <param name="offset0">The first offset segment</param>
- <param name="offset1">The second offset segment</param>
- <param name="distance">The offset distance</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OldOffsetCurveBuilder.AddLimitedMitreJoin(NetTopologySuite.Geometries.LineSegment,NetTopologySuite.Geometries.LineSegment,System.Double,System.Double)">
- <summary>
- Adds a limited mitre join connecting the two reflex offset segments.
- </summary>
- <remarks>
- A limited mitre is a mitre which is beveled at the distance
- determined by the mitre ratio limit.
- </remarks>
- <param name="offset0">The first offset segment</param>
- <param name="offset1">The second offset segment</param>
- <param name="distance">The offset distance</param>
- <param name="mitreLimit">The mitre limit ratio</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OldOffsetCurveBuilder.AddBevelJoin(NetTopologySuite.Geometries.LineSegment,NetTopologySuite.Geometries.LineSegment)">
- <summary>
- Adds a bevel join connecting the two offset segments around a reflex corner.
- </summary>
- <param name="offset0">The first offset segment</param>
- <param name="offset1">The second offset segment</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OldOffsetCurveBuilder.AddFillet(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Algorithm.OrientationIndex,System.Double)">
- <summary>
- Add points for a circular fillet around a reflex corner. Adds the start and end points
- </summary>
- <param name="p">Base point of curve</param>
- <param name="p0">Start point of fillet curve</param>
- <param name="p1">Endpoint of fillet curve</param>
- <param name="direction">The orientation of the fillet</param>
- <param name="radius">The radius of the fillet</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OldOffsetCurveBuilder.AddFillet(NetTopologySuite.Geometries.Coordinate,System.Double,System.Double,NetTopologySuite.Algorithm.OrientationIndex,System.Double)">
- <summary>
- Adds points for a circular fillet arc between two specified angles.
- </summary>
- <remarks>
- The start and end point for the fillet are not added - the caller must add them if required.
- </remarks>
- <param name="p">The point around which to add the fillet points</param>
- <param name="startAngle">The start angle (in radians)</param>
- <param name="endAngle">The end angle (in radians)</param>
- <param name="direction">Is -1 for a CW angle, 1 for a CCW angle</param>
- <param name="radius">The radius of the fillet</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OldOffsetCurveBuilder.AddCircle(NetTopologySuite.Geometries.Coordinate,System.Double)">
- <summary>
- Adds a CW circle around a point
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.OldOffsetCurveBuilder.AddSquare(NetTopologySuite.Geometries.Coordinate,System.Double)">
- <summary>
- Adds a CW square around a point
- </summary>
- </member>
- <member name="T:NetTopologySuite.Operation.Buffer.RightmostEdgeFinder">
- <summary>
- A RightmostEdgeFinder find the DirectedEdge in a list which has the highest coordinate,
- and which is oriented L to R at that point. (I.e. the right side is on the RHS of the edge.)
- </summary>
- </member>
- <member name="P:NetTopologySuite.Operation.Buffer.RightmostEdgeFinder.Edge">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.Operation.Buffer.RightmostEdgeFinder.Coordinate">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.RightmostEdgeFinder.FindEdge(System.Collections.IList)">
- <summary>
-
- </summary>
- <param name="dirEdgeList"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.RightmostEdgeFinder.FindRightmostEdgeAtNode">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.RightmostEdgeFinder.FindRightmostEdgeAtVertex">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.RightmostEdgeFinder.CheckForRightmostCoordinate(NetTopologySuite.GeometriesGraph.DirectedEdge)">
- <summary>
-
- </summary>
- <param name="de"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.RightmostEdgeFinder.GetRightmostSide(NetTopologySuite.GeometriesGraph.DirectedEdge,System.Int32)">
- <summary>
-
- </summary>
- <param name="de"></param>
- <param name="index"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.RightmostEdgeFinder.GetRightmostSideOfSegment(NetTopologySuite.GeometriesGraph.DirectedEdge,System.Int32)">
- <summary>
-
- </summary>
- <param name="de"></param>
- <param name="i"></param>
- <returns></returns>
- </member>
- <member name="T:NetTopologySuite.Operation.Buffer.SegmentMCIndex">
- <summary>
- A spatial index over a segment sequence
- using <see cref="T:NetTopologySuite.Index.Chain.MonotoneChain"/>s.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="T:NetTopologySuite.Operation.Buffer.SubgraphDepthLocater">
- <summary>
- Locates a subgraph inside a set of subgraphs,
- in order to determine the outside depth of the subgraph.
- The input subgraphs are assumed to have had depths
- already calculated for their edges.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.SubgraphDepthLocater.#ctor(System.Collections.Generic.IList{NetTopologySuite.Operation.Buffer.BufferSubgraph})">
- <summary>
-
- </summary>
- <param name="subgraphs"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.SubgraphDepthLocater.GetDepth(NetTopologySuite.Geometries.Coordinate)">
- <summary>
-
- </summary>
- <param name="p"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.SubgraphDepthLocater.FindStabbedSegments(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Finds all non-horizontal segments intersecting the stabbing line.
- The stabbing line is the ray to the right of stabbingRayLeftPt.
- </summary>
- <param name="stabbingRayLeftPt">The left-hand origin of the stabbing line.</param>
- <returns>A List of {DepthSegments} intersecting the stabbing line.</returns>
- </member>
- <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})">
- <summary>
- Finds all non-horizontal segments intersecting the stabbing line
- in the list of dirEdges.
- The stabbing line is the ray to the right of stabbingRayLeftPt.
- </summary>
- <param name="stabbingRayLeftPt">The left-hand origin of the stabbing line.</param>
- <param name="dirEdges"></param>
- <param name="stabbedSegments">The current list of DepthSegments intersecting the stabbing line.</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.SubgraphDepthLocater.FindStabbedSegments(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.GeometriesGraph.DirectedEdge,System.Collections.Generic.IList{NetTopologySuite.Operation.Buffer.SubgraphDepthLocater.DepthSegment})">
- <summary>
- Finds all non-horizontal segments intersecting the stabbing line
- in the input dirEdge.
- The stabbing line is the ray to the right of stabbingRayLeftPt.
- </summary>
- <param name="stabbingRayLeftPt">The left-hand origin of the stabbing line.</param>
- <param name="dirEdge"></param>
- <param name="stabbedSegments">The current list of DepthSegments intersecting the stabbing line.</param>
- </member>
- <member name="T:NetTopologySuite.Operation.Buffer.SubgraphDepthLocater.DepthSegment">
- <summary>
- A segment from a directed edge which has been assigned a depth value
- for its sides.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Operation.Buffer.SubgraphDepthLocater.DepthSegment.LeftDepth">
- <summary>
- Gets or sets the depth to the left of this segment
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.SubgraphDepthLocater.DepthSegment.#ctor(NetTopologySuite.Geometries.LineSegment,System.Int32)">
- <summary>
- Initializes this DepthSegments
- </summary>
- <param name="seg">A line segment</param>
- <param name="depth">A depth value</param>
- </member>
- <member name="P:NetTopologySuite.Operation.Buffer.SubgraphDepthLocater.DepthSegment.IsUpward">
- <summary>
- Gets a value indicating if the segment is pointing upward
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.SubgraphDepthLocater.DepthSegment.CompareTo(NetTopologySuite.Operation.Buffer.SubgraphDepthLocater.DepthSegment)">
- <summary>
- A comparison operation
- which orders segments left to right.
- </summary>
- <remarks>
- Assumes the segments are normalized.
- <para/>
- The definition of ordering is:
- <list type="table">
- <item><term>-1</term><description>if DS1.seg is left of or below DS2.seg (DS1 < DS2).</description></item>
- <item><term>1</term><description>if DS1.seg is right of or above DS2.seg (DS1 > DS2).</description></item>
- <item><term>0</term><description>if the segments are identical</description></item>
- </list>
- Known Bugs:
- <list type="bullet">
- <item><description>The logic does not obey the <see cref="M:System.IComparable.CompareTo(System.Object)"/> contract.
- This is acceptable for the intended usage, but may cause problems if used with some
- utilities in the .Net standard library (e.g. <see cref="T:System.Collections.List.Sort()"/>.</description></item>
- </list>
- </remarks>
- <param name="other">A DepthSegment</param>
- <returns>The comparison value</returns>
- </member>
- <member name="T:NetTopologySuite.Operation.Buffer.Validate.BufferCurveMaximumDistanceFinder">
- <summary>
- Finds the approximate maximum distance from a buffer curve to
- the originating geometry.
- </summary>
- <remarks><para>The approximate maximum distance is determined by testing
- all vertices in the buffer curve, as well
- as midpoints of the curve segments.
- Due to the way buffer curves are constructed, this
- should be a very close approximation.</para>
- <para>This is similar to the Discrete Oriented Hausdorff distance
- from the buffer curve to the input.</para>
- </remarks>
- <author>mbdavis</author>
- </member>
- <member name="T:NetTopologySuite.Operation.Buffer.Validate.BufferDistanceValidator">
- <summary>
- Validates that a given buffer curve lies an appropriate distance
- from the input generating it.
- </summary>
- <remarks>
- Useful only for round buffers (cap and join).
- Can be used for either positive or negative distances.
- <para></para>
- <para>This is a heuristic test, and may return false positive results
- (I.e. it may fail to detect an invalid result.)
- It should never return a false negative result, however
- (I.e. it should never report a valid result as invalid.)</para>
- </remarks>
- <author>mbdavis</author>
- </member>
- <member name="P:NetTopologySuite.Operation.Buffer.Validate.BufferDistanceValidator.ErrorIndicator">
- <summary>
- Gets a geometry which indicates the location and nature of a validation failure.
- <para>
- The indicator is a line segment showing the location and size
- of the distance discrepancy.
- </para>
- </summary>
- <returns>A geometric error indicator
- or <c>null</c>, if no error was found</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.Validate.BufferDistanceValidator.CheckMinimumDistance(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,System.Double)">
- <summary>
- Checks that two geometries are at least a minimum distance apart.
- </summary>
- <param name="g1">A geometry</param>
- <param name="g2">A geometry</param>
- <param name="minDist">The minimum distance the geometries should be separated by</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.Validate.BufferDistanceValidator.CheckMaximumDistance(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,System.Double)">
- <summary>
- Checks that the furthest distance from the buffer curve to the input
- is less than the given maximum distance.
- </summary>
- <remarks>
- This uses the Oriented Hausdorff distance metric. It corresponds to finding
- the point on the buffer curve which is furthest from <i>some</i> point on the input.
- </remarks>
- <param name="input">A geometry</param>
- <param name="bufCurve">A geometry</param>
- <param name="maxDist">The maximum distance that a buffer result can be from the input</param>
- </member>
- <member name="T:NetTopologySuite.Operation.Buffer.Validate.BufferResultValidator">
- <summary>
- Validates that the result of a buffer operation
- is geometrically correct, within a computed tolerance.
- </summary>
- <remarks>
- <para>This is a heuristic test, and may return false positive results
- (I.e. it may fail to detect an invalid result.)
- It should never return a false negative result, however
- (I.e. it should never report a valid result as invalid.)</para>
- <para>This test may be (much) more expensive than the original buffer computation.</para>
- </remarks>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.Validate.BufferResultValidator.IsValidMessage(NetTopologySuite.Geometries.Geometry,System.Double,NetTopologySuite.Geometries.Geometry)">
- <summary>Checks whether the geometry buffer is valid, and returns an error message if not.
- </summary>
- <param name="g"></param>
- <param name="distance"></param>
- <param name="result"></param>
- <returns>An appropriate error message<br/>
- or <c>null</c>if the buffer is valid</returns>
-
- </member>
- <member name="P:NetTopologySuite.Operation.Buffer.Validate.BufferResultValidator.ErrorMessage">
- <summary>
- Gets the error message
- </summary>
- </member>
- <member name="P:NetTopologySuite.Operation.Buffer.Validate.BufferResultValidator.ErrorLocation">
- <summary>
- Gets the error location
- </summary>
- </member>
- <member name="P:NetTopologySuite.Operation.Buffer.Validate.BufferResultValidator.ErrorIndicator">
- <summary>
- Gets a geometry which indicates the location and nature of a validation failure.
- <para>
- If the failure is due to the buffer curve being too far or too close
- to the input, the indicator is a line segment showing the location and size
- of the discrepancy.
- </para>
- </summary>
- <returns>A geometric error indicator<br/>
- or <c>null</c>, if no error was found</returns>
- </member>
- <member name="T:NetTopologySuite.Operation.Buffer.Validate.DistanceToPointFinder">
- <summary>
- Computes the Euclidean distance (L2 metric) from a Point to a Geometry.
- Also computes two points which are separated by the distance.
- </summary>
- </member>
- <member name="T:NetTopologySuite.Operation.Buffer.Validate.PointPairDistance">
- <summary>
- Contains a pair of points and the distance between them.
- Provides methods to update with a new point pair with
- either maximum or minimum distance.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.Validate.PointPairDistance.Initialize(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,System.Double)">
- <summary>
- Initializes the points, avoiding recomputing the distance.
- </summary>
- <param name="p0">The first point</param>
- <param name="p1">The second point</param>
- <param name="distance">The distance between <paramref name="p0"/> and <paramref name="p1"/></param>
- </member>
- <member name="T:NetTopologySuite.Operation.Buffer.VariableBuffer">
- <summary>
- Creates a buffer polygon with a varying buffer distance
- at each vertex along a line.
- Vertex distances may be zero.
- <para/>
- Only single linestring is supported as input, since buffer widths
- generally need to be specified individually for each line.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.VariableBuffer.Buffer(NetTopologySuite.Geometries.Geometry,System.Double,System.Double)">
- <summary>
- Creates a buffer polygon along a line with the buffer distance interpolated
- between a start distance and an end distance.
- </summary>
- <param name="line">The line to buffer</param>
- <param name="startDistance">The buffer width at the start of the line</param>
- <param name="endDistance">The buffer width at the end of the line</param>
- <returns>The variable-distance buffer polygon</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.VariableBuffer.Buffer(NetTopologySuite.Geometries.Geometry,System.Double,System.Double,System.Double)">
- <summary>
- Creates a buffer polygon along a line with the buffer distance interpolated
- between a start distance, a middle distance and an end distance.
- The middle distance is attained at
- the vertex at or just past the half-length of the line.
- For smooth buffering of a <see cref="T:NetTopologySuite.Geometries.LinearRing"/> (or the rings of a <see cref="T:NetTopologySuite.Geometries.Polygon"/>)
- the start distance and end distance should be equal.
- </summary>
- <param name="line">The line to buffer</param>
- <param name="startDistance">The buffer width at the start of the line</param>
- <param name="midDistance">The buffer width at the middle vertex of the line</param>
- <param name="endDistance">The buffer width at the end of the line</param>
- <returns>The variable-distance buffer polygon</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.VariableBuffer.Buffer(NetTopologySuite.Geometries.Geometry,System.Double[])">
- <summary>
- Creates a buffer polygon along a line with the distance specified
- at each vertex.
- </summary>
- <param name="line">The line to buffer</param>
- <param name="distance">The buffer distance for each vertex of the line</param>
- <returns>The variable-width buffer polygon</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.VariableBuffer.Interpolate(NetTopologySuite.Geometries.LineString,System.Double,System.Double)">
- <summary>
- Computes a list of values for the points along a line by
- interpolating between values for the start and end point.
- The interpolation is
- based on the distance of each point along the line
- relative to the total line length.
- </summary>
- <param name="line">The line to interpolate along</param>
- <param name="startValue">The start value</param>
- <param name="endValue">The end value</param>
- <returns>The array of interpolated values</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.VariableBuffer.Interpolate(NetTopologySuite.Geometries.LineString,System.Double,System.Double,System.Double)">
- <summary>
- Computes a list of values for the points along a line by
- interpolating between values for the start, middle and end points.
- The interpolation is
- based on the distance of each point along the line
- relative to the total line length.
- The middle distance is attained at
- the vertex at or just past the half-length of the line.
- </summary>
- <param name="line">The line to interpolate along</param>
- <param name="startValue">The start value</param>
- <param name="midValue">The mid value</param>
- <param name="endValue">The end value</param>
- <returns>The array of interpolated values</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.VariableBuffer.#ctor(NetTopologySuite.Geometries.Geometry,System.Double[])">
- <summary>
- Creates a generator for a variable-distance line buffer.
- </summary>
- <param name="line">The linestring to buffer</param>
- <param name="distance">The buffer distance for each vertex of the line</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.VariableBuffer.GetResult">
- <summary>
- Computes the variable buffer polygon.
- </summary>
- <returns>A buffer polygon</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.VariableBuffer.SegmentBuffer(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,System.Double,System.Double)">
- <summary>
- Computes a variable buffer polygon for a single segment,
- with the given endpoints and buffer distances.
- The individual segment buffers are unioned
- to form the final buffer.
- If one distance is zero, the end cap at that
- segment end is the endpoint of the segment.
- If both distances are zero, no polygon is returned.
- </summary>
- <param name="p0">The segment start point</param>
- <param name="p1">The segment end point</param>
- <param name="dist0">The buffer distance at the start point</param>
- <param name="dist1">The buffer distance at the end point</param>
- <returns>The segment buffer, or null if void</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.VariableBuffer.Circle(NetTopologySuite.Geometries.Coordinate,System.Double)">
- <summary>
- Returns a circular polygon.
- </summary>
- <param name="center">The circle center point</param>
- <param name="radius">The radius</param>
- <returns>A polygon, or null if the radius is 0</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.VariableBuffer.AddCap(NetTopologySuite.Geometries.Coordinate,System.Double,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.CoordinateList)">
- <summary>
- Adds a semi-circular cap CCW around the point <paramref name="p"/>.
- <para/>
- The vertices in caps are generated at fixed angles around a point.
- This allows caps at the same point to share vertices,
- which reduces artifacts when the segment buffers are merged.
- </summary>
- <param name="p">The centre point of the cap</param>
- <param name="r">The cap radius</param>
- <param name="t1">the starting point of the cap</param>
- <param name="t2">The ending point of the cap</param>
- <param name="coords">The coordinate list to add to</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.VariableBuffer.CapAngle(System.Int32)">
- <summary>
- Computes the actual angle for a given cap point index.
- </summary>
- <param name="index">The cap angle index</param>
- <returns>The angle</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.VariableBuffer.CapAngleIndex(System.Double)">
- <summary>
- Computes the canonical cap point index for a given angle.
- The angle is rounded down to the next lower index.
- <para/>
- In order to reduce the number of points created by overlapping end caps,
- cap points are generated at the same locations around a circle.
- The index is the index of the points around the circle,
- with 0 being the point at (1,0).
- The total number of points around the circle is <c>4 * <see cref="F:NetTopologySuite.Operation.Buffer.VariableBuffer._quadrantSegs"/></c>.
- </summary>
- <param name="ang">The angle</param>
- <returns>The index for the angle.</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.VariableBuffer.OuterTangent(NetTopologySuite.Geometries.Coordinate,System.Double,NetTopologySuite.Geometries.Coordinate,System.Double)">
- <summary>
- Computes the two circumference points defining the outer tangent line
- between two circles.<br/>
- The tangent line may be null if one circle mostly overlaps the other.
- <para/>
- For the algorithm see <a href='https://en.wikipedia.org/wiki/Tangent_lines_to_circles#Outer_tangent'>Wikipedia</a>.
- </summary>
- <param name="c1">The centre of circle 1</param>
- <param name="r1">The radius of circle 1</param>
- <param name="c2">The centre of circle 2</param>
- <param name="r2">The radius of circle 2</param>
- <returns>The outer tangent line segment, or <c>null</c> if none exists</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Buffer.VariableBuffer.SnapTrig(System.Double)">
- <summary>
- Snap trig values to integer values for better consistency.
- </summary>
- <param name="x">The result of a trigonometric function</param>
- <returns><paramref name="x"/> snapped to the integer interval</returns>
- </member>
- <member name="T:NetTopologySuite.Operation.Distance.ConnectedElementLocationFilter">
- <summary>
- A ConnectedElementPointFilter extracts a single point
- from each connected element in a Geometry
- (e.g. a polygon, linestring or point)
- and returns them in a list. The elements of the list are
- <see cref="T:NetTopologySuite.Operation.Distance.GeometryLocation"/>s.
- Empty geometries do not provide a location item.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance.ConnectedElementLocationFilter.GetLocations(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Returns a list containing a point from each Polygon, LineString, and Point
- found inside the specified point. Thus, if the specified point is
- not a GeometryCollection, an empty list will be returned. The elements of the list
- are <see cref="T:NetTopologySuite.Operation.Distance.GeometryLocation"/>s.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance.ConnectedElementLocationFilter.#ctor(System.Collections.Generic.IList{NetTopologySuite.Operation.Distance.GeometryLocation})">
- <summary>
-
- </summary>
- <param name="locations"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance.ConnectedElementLocationFilter.Filter(NetTopologySuite.Geometries.Geometry)">
- <summary>
-
- </summary>
- <param name="geom"></param>
- </member>
- <member name="T:NetTopologySuite.Operation.Distance.ConnectedElementPointFilter">
- <summary>
- Extracts a single point
- from each connected element in a Geometry
- (e.g. a polygon, linestring or point)
- and returns them in a list
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance.ConnectedElementPointFilter.GetCoordinates(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Returns a list containing a Coordinate from each Polygon, LineString, and Point
- found inside the specified point. Thus, if the specified point is
- not a GeometryCollection, an empty list will be returned.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance.ConnectedElementPointFilter.#ctor(System.Collections.Generic.IList{NetTopologySuite.Geometries.Coordinate})">
- <summary>
-
- </summary>
- <param name="pts"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance.ConnectedElementPointFilter.Filter(NetTopologySuite.Geometries.Geometry)">
- <summary>
-
- </summary>
- <param name="geom"></param>
- </member>
- <member name="T:NetTopologySuite.Operation.Distance.DistanceOp">
- <summary>
- Computes the distance and
- closest points between two <c>Geometry</c>s.
- The distance computation finds a pair of points in the input geometries
- which have minimum distance between them. These points may
- not be vertices of the geometries, but may lie in the interior of
- a line segment. In this case the coordinate computed is a close
- approximation to the exact point.
- <para/>
- Empty geometry collection components are ignored.
- <para/>
- The algorithms used are straightforward O(n^2)
- comparisons. This worst-case performance could be improved on
- by using Voronoi techniques.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance.DistanceOp.Distance(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Compute the distance between the closest points of two geometries.
- </summary>
- <param name="g0">A <c>Geometry</c>.</param>
- <param name="g1">Another <c>Geometry</c>.</param>
- <returns>The distance between the geometries.</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance.DistanceOp.IsWithinDistance(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,System.Double)">
- <summary>
- Test whether two geometries lie within a given distance of each other.
- </summary>
- <param name="g0"></param>
- <param name="g1"></param>
- <param name="distance"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance.DistanceOp.NearestPoints(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Compute the the closest points of two geometries.
- The points are presented in the same order as the input Geometries.
- </summary>
- <param name="g0">A <c>Geometry</c>.</param>
- <param name="g1">Another <c>Geometry</c>.</param>
- <returns>The closest points in the geometries.</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance.DistanceOp.#ctor(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Constructs a <see cref="T:NetTopologySuite.Operation.Distance.DistanceOp" /> that computes the distance and closest points between
- the two specified geometries.
- </summary>
- <param name="g0">A geometry</param>
- <param name="g1">A geometry</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance.DistanceOp.#ctor(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,System.Double)">
- <summary>
- Constructs a <see cref="T:NetTopologySuite.Operation.Distance.DistanceOp" /> that computes the distance and closest points between
- the two specified geometries.
- </summary>
- <param name="g0">A geometry</param>
- <param name="g1">A geometry</param>
- <param name="terminateDistance">The distance on which to terminate the search.</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance.DistanceOp.Distance">
- <summary>
- Report the distance between the closest points on the input geometries.
- </summary>
- <returns>The distance between the geometries<br/>
- or <c>0</c> if either input geometry is empty.</returns>
- <exception cref="T:System.ApplicationException"> if either input geometry is null</exception>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance.DistanceOp.NearestPoints">
- <summary>
- Report the coordinates of the nearest points in the input geometries.
- The points are presented in the same order as the input Geometries.
- </summary>
- <returns>A pair of <c>Coordinate</c>s of the nearest points.</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance.DistanceOp.NearestLocations">
- <summary>
- Report the locations of the nearest points in the input geometries.
- The locations are presented in the same order as the input Geometries.
- </summary>
- <returns>A pair of <see cref="T:NetTopologySuite.Operation.Distance.GeometryLocation"/>s for the nearest points.</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance.DistanceOp.UpdateMinDistance(System.Double)">
- <summary>
-
- </summary>
- <param name="dist"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance.DistanceOp.UpdateMinDistance(NetTopologySuite.Operation.Distance.GeometryLocation[],System.Boolean)">
- <summary>
-
- </summary>
- <param name="locGeom"></param>
- <param name="flip"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance.DistanceOp.ComputeMinDistance">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance.DistanceOp.ComputeContainmentDistance">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance.DistanceOp.ComputeFacetDistance">
- <summary>
- Computes distance between facets (lines and points) of input geometries.
- </summary>
- </member>
- <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[])">
- <summary>
-
- </summary>
- <param name="lines0"></param>
- <param name="lines1"></param>
- <param name="locGeom"></param>
- </member>
- <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[])">
- <summary>
-
- </summary>
- <param name="points0"></param>
- <param name="points1"></param>
- <param name="locGeom"></param>
- </member>
- <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[])">
- <summary>
-
- </summary>
- <param name="lines"></param>
- <param name="points"></param>
- <param name="locGeom"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance.DistanceOp.ComputeMinDistance(NetTopologySuite.Geometries.LineString,NetTopologySuite.Geometries.LineString,NetTopologySuite.Operation.Distance.GeometryLocation[])">
- <summary>
-
- </summary>
- <param name="line0"></param>
- <param name="line1"></param>
- <param name="locGeom"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance.DistanceOp.ComputeMinDistance(NetTopologySuite.Geometries.LineString,NetTopologySuite.Geometries.Point,NetTopologySuite.Operation.Distance.GeometryLocation[])">
- <summary>
-
- </summary>
- <param name="line"></param>
- <param name="pt"></param>
- <param name="locGeom"></param>
- </member>
- <member name="T:NetTopologySuite.Operation.Distance.FacetSequence">
- <summary>
- Represents a sequence of facets (points or line segments) of a <see cref="T:NetTopologySuite.Geometries.Geometry"/>
- specified by a subsequence of a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance.FacetSequence.#ctor(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.CoordinateSequence,System.Int32,System.Int32)">
- <summary>
- Creates a new sequence of facets based on a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>
- contained in the given <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
- </summary>
- <param name="geom">The geometry containing the facets.</param>
- <param name="pts">The sequence containing the facet points.</param>
- <param name="start">The index of the start point.</param>
- <param name="end">The index of the end point.</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance.FacetSequence.#ctor(NetTopologySuite.Geometries.CoordinateSequence,System.Int32,System.Int32)">
- <summary>
- Creates a new sequence of facets based on a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>.
- </summary>
- <param name="pts">The sequence containing facet points.</param>
- <param name="start">The index of the start point</param>
- <param name="end">The index of the end point + 1</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance.FacetSequence.#ctor(NetTopologySuite.Geometries.CoordinateSequence,System.Int32)">
- <summary>
- Creates a new sequence for a single point from a CoordinateSequence.
- </summary>
- <param name="pts">The sequence containing the facet point.</param>
- <param name="index">the index of the point</param>
- </member>
- <member name="P:NetTopologySuite.Operation.Distance.FacetSequence.Envelope">
- <summary>
- Gets the envelope of this facet sequence
- </summary>
- </member>
- <member name="P:NetTopologySuite.Operation.Distance.FacetSequence.Count">
- <summary>
- Gets the number of coordinates in this facet sequence
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance.FacetSequence.GetCoordinate(System.Int32)">
- <summary>
- Gets the coordinate at the given index
- </summary>
- <param name="index">The index</param>
- <returns>The coordinate at the given index</returns>
- </member>
- <member name="P:NetTopologySuite.Operation.Distance.FacetSequence.IsPoint">
- <summary>
- Tests if this facet sequence consists of only one point
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance.FacetSequence.Distance(NetTopologySuite.Operation.Distance.FacetSequence)">
- <summary>
- Computes the distance between this and another
- <see cref="T:NetTopologySuite.Operation.Distance.FacetSequence"/>.
- </summary>
- <param name="facetSeq">The sequence to compute the distance to.</param>
- <returns>The minimum distance between the sequences.</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance.FacetSequence.NearestLocations(NetTopologySuite.Operation.Distance.FacetSequence)">
- <summary>
- Computes the locations of the nearest points between this sequence
- and another sequence.
- The locations are presented in the same order as the input sequences.
- </summary>
- <returns>A pair of <see cref="T:NetTopologySuite.Operation.Distance.GeometryLocation"/>s for the nearest points.</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance.FacetSequence.ToString">
- <inheritdoc cref="M:System.Object.ToString"/>
- </member>
- <member name="T:NetTopologySuite.Operation.Distance.FacetSequenceTreeBuilder">
- <summary>
- Utility class to build facet sequencs STRtrees-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance.FacetSequenceTreeBuilder.BuildSTRtree(NetTopologySuite.Geometries.Geometry)">
- <summary>
-
- </summary>
- <param name="g"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance.FacetSequenceTreeBuilder.ComputeFacetSequences(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Creates facet sequences from a given geometry
- </summary>
- <param name="g">The geometry</param>
- <returns>A list of <see cref="T:NetTopologySuite.Operation.Distance.FacetSequence"/>s</returns>
- </member>
- <member name="T:NetTopologySuite.Operation.Distance.GeometryLocation">
- <summary>
- Represents the location of a point on a Geometry.
- Maintains both the actual point location
- (which may not be exact, if the point is not a vertex)
- as well as information about the component
- and segment index where the point occurs.
- Locations inside area Geometrys will not have an associated segment index,
- so in this case the segment index will have the sentinel value of <see cref="F:NetTopologySuite.Operation.Distance.GeometryLocation.InsideArea"/>.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.Distance.GeometryLocation.InsideArea">
- <summary>
- A special value of segmentIndex used for locations inside area geometries.
- These locations are not located on a segment,
- and thus do not have an associated segment index.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance.GeometryLocation.#ctor(NetTopologySuite.Geometries.Geometry,System.Int32,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Constructs a GeometryLocation specifying a point on a point, as well as the
- segment that the point is on (or <see cref="F:NetTopologySuite.Operation.Distance.GeometryLocation.InsideArea"/> if the point is not on a segment).
- </summary>
- <param name="component">The component of the geometry containing the point</param>
- <param name="segIndex">The segment index of the location, or <see cref="F:NetTopologySuite.Operation.Distance.GeometryLocation.InsideArea"/></param>
- <param name="pt">The coordinate of the location</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance.GeometryLocation.#ctor(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Constructs a GeometryLocation specifying a point inside an area point.
- </summary>
- <param name="component">The component of the geometry containing the point</param>
- <param name="pt">The coordinate of the location</param>
- </member>
- <member name="P:NetTopologySuite.Operation.Distance.GeometryLocation.GeometryComponent">
- <summary>
- Returns the geometry component on (or in) which this location occurs.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Operation.Distance.GeometryLocation.SegmentIndex">
- <summary>
- Returns the segment index for this location. If the location is inside an
- area, the index will have the value <see cref="F:NetTopologySuite.Operation.Distance.GeometryLocation.InsideArea"/>.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Operation.Distance.GeometryLocation.Coordinate">
- <summary>
- Returns the <see cref="P:NetTopologySuite.Operation.Distance.GeometryLocation.Coordinate"/> of this location.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Operation.Distance.GeometryLocation.IsInsideArea">
- <summary>
- Tests whether this location represents a point inside an area geometry.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance.GeometryLocation.ToString">
- <inheritdoc />
- </member>
- <member name="T:NetTopologySuite.Operation.Distance.IndexedFacetDistance">
- <summary>
- Computes the distance between the facets (segments and vertices)
- of two <see cref="T:NetTopologySuite.Geometries.Geometry"/>s
- using a Branch-and-Bound algorithm.
- The Branch-and-Bound algorithm operates over a
- traversal of R-trees built
- on the target and the query geometries.
- <para>
- This approach provides the following benefits:
- <list type="bullet">
- <item><description>
- Performance is dramatically improved due to the use of the
- R-tree index
- and the pruning due to the Branch-and-Bound approach
- </description></item><item><description>
- The spatial index on the target geometry is cached
- which allow reuse in an repeated query situation.</description></item>
- </list>
- Using this technique is usually much more performant
- than using the brute-force <see cref="M:NetTopologySuite.Geometries.Geometry.Distance(NetTopologySuite.Geometries.Geometry)"/>
- when one or both input geometries are large,
- or when evaluating many distance computations against
- a single geometry.
- </para>
- </summary>
- <remarks>This class is thread-safe.</remarks>
- <author>
- Martin Davis
- </author>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance.IndexedFacetDistance.Distance(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes the distance between facets of two geometries.
- </summary>
- <remarks>
- For geometries with many segments or points,
- this can be faster than using a simple distance
- algorithm.
- </remarks>
- <param name="g1">A geometry</param>
- <param name="g2">A geometry</param>
- <returns>The distance between the two geometries</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance.IndexedFacetDistance.IsWithinDistance(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,System.Double)">
- <summary>
- Tests whether the facets of two geometries lie within a given distance.
- </summary>
- <param name="g1">A geometry</param>
- <param name="g2">A geometry</param>
- <param name="distance">The distance limit</param>
- <returns><c>true</c> if two facets lie with the given distance</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance.IndexedFacetDistance.NearestPoints(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes the nearest points of the facets of two geometries.
- </summary>
- <param name="g1">A geometry</param>
- <param name="g2">A geometry</param>
- <returns>The nearest points on the facets of the geometries</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance.IndexedFacetDistance.#ctor(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Creates a new distance-finding instance for a given target <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
- </summary>
- <remarks>
- <para>
- Distances will be computed to all facets of the input geometry.
- The facets of the geometry are the discrete segments and points
- contained in its components. </para>
- <para>
- In the case of <see cref="T:NetTopologySuite.Geometries.ILineal"/> and <see cref="T:NetTopologySuite.Geometries.IPuntal"/> inputs,
- this is equivalent to computing the conventional distance.
- </para><para>
- In the case of <see cref="T:NetTopologySuite.Geometries.IPolygonal"/> inputs, this is equivalent
- to computing the distance to the polygon boundaries.
- </para>
- </remarks>
- <param name="g1">A Geometry, which may be of any type.</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance.IndexedFacetDistance.Distance(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes the distance from the base geometry to the given geometry.
- </summary>
- <param name="g">The geometry to compute the distance to.</param>
- <returns>The computed distance</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance.IndexedFacetDistance.NearestLocations(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes the nearest locations on the base geometry
- and the given geometry.
- </summary>
- <param name="g">Ihe geometry to compute the nearest location to.</param>
- <returns>The nearest locations.</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance.IndexedFacetDistance.NearestPoints(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes the nearest locations on the target geometry
- and the given geometry.
- </summary>
- <param name="g">Ihe geometry to compute the nearest point to.</param>
- <returns>The nearest points.</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance.IndexedFacetDistance.IsWithinDistance(NetTopologySuite.Geometries.Geometry,System.Double)">
- <summary>
- Tests whether the base geometry lies within
- a specified distance of the given geometry.
- </summary>
- <param name="g">The geometry to test</param>
- <param name="maxDistance">The maximum distance to test</param>
- <returns><c>true</c> if the geometry lies with the specified distance</returns>
- </member>
- <member name="T:NetTopologySuite.Operation.Distance3D.AxisPlaneCoordinateSequence">
- <summary>
- A <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/> wrapper which
- projects 3D coordinates into one of the
- three Cartesian axis planes,
- using the standard orthonormal projection
- (i.e. simply selecting the appropriate ordinates into the XY ordinates).
- The projected data is represented as 2D coordinates.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance3D.AxisPlaneCoordinateSequence.ProjectToXY(NetTopologySuite.Geometries.CoordinateSequence)">
- <summary>
- Creates a wrapper projecting to the XY plane.
- </summary>
- <param name="seq">The sequence to be projected</param>
- <returns>A sequence which projects coordinates</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance3D.AxisPlaneCoordinateSequence.ProjectToXZ(NetTopologySuite.Geometries.CoordinateSequence)">
- <summary>
- Creates a wrapper projecting to the XZ plane.
- </summary>
- <param name="seq">The sequence to be projected</param>
- <returns>A sequence which projects coordinates</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance3D.AxisPlaneCoordinateSequence.ProjectToYZ(NetTopologySuite.Geometries.CoordinateSequence)">
- <summary>
- Creates a wrapper projecting to the YZ plane.
- </summary>
- <param name="seq">The sequence to be projected</param>
- <returns>A sequence which projects coordinates</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance3D.AxisPlaneCoordinateSequence.CreateCoordinate">
- <inheritdoc />
- </member>
- <member name="T:NetTopologySuite.Operation.Distance3D.Distance3DOp">
- <summary>
- Find two points on two 3D <see cref="T:NetTopologySuite.Geometries.Geometry"/>s which lie within a given distance,
- or else are the nearest points on the geometries (in which case this also
- provides the distance between the geometries).
- <para/>
- 3D geometries have vertex Z ordinates defined.
- 3D <see cref="T:NetTopologySuite.Geometries.Polygon"/>s are assumed to lie in a single plane (which is enforced if not actually the case).
- 3D <see cref="T:NetTopologySuite.Geometries.LineString"/>s and <see cref="T:NetTopologySuite.Geometries.Point"/>s may have any configuration.
- <para/>
- The distance computation also finds a pair of points in the input geometries
- which have the minimum distance between them. If a point lies in the interior
- of a line segment, the coordinate computed is a close approximation to the
- exact point.
- <para/>
- The algorithms used are straightforward O(n^2) comparisons. This worst-case
- performance could be improved on by using Voronoi techniques or spatial
- indexes.
- </summary>
- <version>1.13</version>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance3D.Distance3DOp.Distance(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Compute the distance between the nearest points of two geometries.
- </summary>
- <param name="g0">A <see cref="T:NetTopologySuite.Geometries.Geometry">geometry</see></param>
- <param name="g1">A <see cref="T:NetTopologySuite.Geometries.Geometry">geometry</see></param>
- <returns>The distance between the geometries</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance3D.Distance3DOp.IsWithinDistance(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,System.Double)">
- <summary>
- Test whether two geometries lie within a given distance of each other.
- </summary>
- <param name="g0">A <see cref="T:NetTopologySuite.Geometries.Geometry">geometry</see></param>
- <param name="g1">A <see cref="T:NetTopologySuite.Geometries.Geometry">geometry</see></param>
- <param name="distance">The distance to test</param>
- <returns><c>true</c> if <c>g0.distance(g1) <= <paramref name="distance"/></c></returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance3D.Distance3DOp.NearestPoints(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Compute the the nearest points of two geometries. The points are
- presented in the same order as the input Geometries.
- </summary>
- <param name="g0">A <see cref="T:NetTopologySuite.Geometries.Geometry">geometry</see></param>
- <param name="g1">A <see cref="T:NetTopologySuite.Geometries.Geometry">geometry</see></param>
- <returns>The nearest points in the geometries</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance3D.Distance3DOp.#ctor(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Constructs a DistanceOp that computes the distance and nearest points
- between the two specified geometries.
- </summary>
- <param name="g0">A geometry</param>
- <param name="g1">A geometry</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance3D.Distance3DOp.#ctor(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,System.Double)">
- <summary>
- Constructs a DistanceOp that computes the distance and nearest points
- between the two specified geometries.
- </summary>
- <param name="g0">A geometry</param>
- <param name="g1">A geometry</param>
- <param name="terminateDistance">The distance on which to terminate the search</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance3D.Distance3DOp.Distance">
- <summary>
- Report the distance between the nearest points on the input geometries.
- </summary>
- <returns>The distance between the geometries<br/>
- or <c>0</c> if either input geometry is empty</returns>
- <exception cref="T:System.ArgumentException">Thrown if either input geometry is null.</exception>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance3D.Distance3DOp.NearestPoints">
- <summary>
- Report the coordinates of the nearest points in the input geometries. The
- points are presented in the same order as the input Geometries.
- </summary>
- <returns>A pair of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s of the nearest points</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance3D.Distance3DOp.NearestLocations">
- <summary>
- Gets the locations of the nearest points in the input geometries. The
- locations are presented in the same order as the input Geometries.
- </summary>
- <returns>A pair of <see cref="T:NetTopologySuite.Operation.Distance.GeometryLocation"/>s for the nearest points</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance3D.Distance3DOp.MostPolygonalIndex">
- <summary>
- Finds the index of the "most polygonal" input geometry.
- This optimizes the computation of the best-fit plane,
- since it is cached only for the left-hand geometry.
- </summary>
- <returns>The index of the most polygonal geometry</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance3D.Distance3DOp.PolyPlane(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Convenience method to create a Plane3DPolygon
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance3D.Distance3DOp.ComputeMinDistancePolygonPolygon(NetTopologySuite.Operation.Distance3D.PlanarPolygon3D,NetTopologySuite.Geometries.Polygon,System.Boolean)">
- <summary>
- Computes distance between two polygons.
- </summary>
- <remarks>
- To compute the distance, compute the distance
- between the rings of one polygon and the other polygon,
- and vice-versa.
- If the polygons intersect, then at least one ring must
- intersect the other polygon.
- Note that it is NOT sufficient to test only the shell rings.
- A counter-example is a "figure-8" polygon A
- and a simple polygon B at right angles to A, with the ring of B
- passing through the holes of A.
- The polygons intersect,
- but A's shell does not intersect B, and B's shell does not intersect A.</remarks>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance3D.Distance3DOp.ComputeMinDistancePolygonRings(NetTopologySuite.Operation.Distance3D.PlanarPolygon3D,NetTopologySuite.Geometries.Polygon,System.Boolean)">
- <summary>Compute distance between a polygon and the rings of another.</summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance3D.Distance3DOp.SegmentPoint(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,System.Double,System.Double)">
- <summary>
- Computes a point at a distance along a segment
- specified by two relatively proportional values.
- The fractional distance along the segment is d0/(d0+d1).
- </summary>
- <param name="p0">Start point of the segment.</param>
- <param name="p1">End point of the segment</param>
- <param name="d0">Proportional distance from start point to computed point</param>
- <param name="d1">Proportional distance from computed point to end point</param>
- <returns>The computed point</returns>
- </member>
- <member name="T:NetTopologySuite.Operation.Distance3D.PlanarPolygon3D">
- <summary>
- Models a polygon lying in a plane in 3-dimensional Cartesian space.
- The polygon representation is supplied
- by a <see cref="P:NetTopologySuite.Operation.Distance3D.PlanarPolygon3D.Polygon"/>,
- containing coordinates with XYZ ordinates.
- 3D polygons are assumed to lie in a single plane.
- The plane best fitting the polygon coordinates is
- computed and is represented by a <see cref="T:NetTopologySuite.Mathematics.Plane3D"/>.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance3D.PlanarPolygon3D.#ctor(NetTopologySuite.Geometries.Polygon)">
- <summary>
- Creates an instance of this class using the provided <see cref="P:NetTopologySuite.Operation.Distance3D.PlanarPolygon3D.Polygon"/>.
- </summary>
- <param name="poly">The polygon</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance3D.PlanarPolygon3D.FindBestFitPlane(NetTopologySuite.Geometries.Polygon)">
- <summary>
- Finds a best-fit plane for the polygon,
- by sampling a few points from the exterior ring.
- <para/>
- The algorithm used is Newell's algorithm:
- <list type="bullet">
- <item><description>a base point for the plane is determined from the average of all vertices</description></item>
- <item><description>the normal vector is determined by computing the area of the projections on each of the axis planes</description></item>
- </list>
- </summary>
- <param name="poly">The polygon to determine the plane for</param>
- <returns>The best-fit plane</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance3D.PlanarPolygon3D.AverageNormal(NetTopologySuite.Geometries.CoordinateSequence)">
- <summary>
- Computes an average normal vector from a list of polygon coordinates.
- Uses Newell's method, which is based
- on the fact that the vector with components
- equal to the areas of the projection of the polygon onto
- the Cartesian axis planes is normal.
- </summary>
- <param name="seq">The sequence of coordinates for the polygon</param>
- <returns>A normal vector</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance3D.PlanarPolygon3D.AveragePoint(NetTopologySuite.Geometries.CoordinateSequence)">
- <summary>
- Computes a point which is the average of all coordinates
- in a sequence.<br/>
- If the sequence lies in a single plane,
- the computed point also lies in the plane.
- </summary>
- <param name="seq">A coordinate sequence</param>
- <returns>A Coordinate with averaged ordinates </returns>
- </member>
- <member name="P:NetTopologySuite.Operation.Distance3D.PlanarPolygon3D.Plane">
- <summary>
- Gets a value indicating the plane
- </summary>
- </member>
- <member name="P:NetTopologySuite.Operation.Distance3D.PlanarPolygon3D.Polygon">
- <summary>
- Gets a value indicating the polygon
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance3D.PlanarPolygon3D.Intersects(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Checks if <paramref name="intPt"/> intersects with this <see cref="T:NetTopologySuite.Operation.Distance3D.PlanarPolygon3D"/>.
- </summary>
- <param name="intPt">The point to check</param>
- <returns><c>true</c> if <c>intPt</c> intersects this <c>PlanarPolygon3d</c>.</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Distance3D.PlanarPolygon3D.Intersects(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.LineString)">
- <summary>
- Checks if the point <paramref name="pt"/> intersects with <paramref name="ring"/> when projected to this instance's facing plane
- </summary>
- <param name="pt">A point</param>
- <param name="ring">A ring</param>
- <returns><c>true</c> if point and linestring intersect</returns>
- </member>
- <member name="T:NetTopologySuite.Operation.GeometryGraphOperation">
- <summary>
- The base class for operations that require <see cref="T:NetTopologySuite.GeometriesGraph.GeometryGraph"/>s.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Operation.GeometryGraphOperation.lineIntersector">
- <summary>
-
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.GeometryGraphOperation.resultPrecisionModel">
- <summary>
-
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.GeometryGraphOperation.arg">
- <summary>
- The operation args into an array so they can be accessed by index.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.GeometryGraphOperation.#ctor(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
-
- </summary>
- <param name="g0"></param>
- <param name="g1"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.GeometryGraphOperation.#ctor(NetTopologySuite.Geometries.Geometry)">
- <summary>
-
- </summary>
- <param name="g0"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.GeometryGraphOperation.GetArgGeometry(System.Int32)">
- <summary>
-
- </summary>
- <param name="i"></param>
- <returns></returns>
- </member>
- <member name="P:NetTopologySuite.Operation.GeometryGraphOperation.ComputationPrecision">
- <summary>
-
- </summary>
- </member>
- <member name="T:NetTopologySuite.Operation.IsSimpleOp">
- <summary>
- Tests whether a <see cref="T:NetTopologySuite.Geometries.Geometry"/> is simple.
- In general, the SFS specification of simplicity
- follows the rule:
- <list type="bullet">
- <item><description>
- A Geometry is simple if and only if the only self-intersections are at boundary points.
- </description></item>
- </list>
- </summary>
- <remarks>
- Simplicity is defined for each <see cref="T:NetTopologySuite.Geometries.Geometry"/>} subclass as follows:
- <list type="bullet">
- <item><description>Valid <see cref="T:NetTopologySuite.Geometries.IPolygonal"/> geometries are simple by definition, so
- <c>IsSimple</c> trivially returns true.<br/>
- (Note: this means that <tt>IsSimple</tt> cannot be used to test
- for (invalid) self-intersections in <tt>Polygon</tt>s.
- In order to check if a <tt>Polygonal</tt> geometry has self-intersections,
- use <see cref="P:NetTopologySuite.Geometries.Geometry.IsValid" />).</description></item>
- <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
- (i.e. points other than boundary points).
- This is equivalent to saying that no two linear components satisfy the SFS <see cref="M:NetTopologySuite.Geometries.Geometry.Touches(NetTopologySuite.Geometries.Geometry)"/>
- predicate.</description></item>
- <item><description><b>Zero-dimensional (<see cref="T:NetTopologySuite.Geometries.IPuntal"/>)</b> geometries are simple if and only if they have no
- repeated points.</description></item>
- <item><description><b>Empty</b> <see cref="T:NetTopologySuite.Geometries.Geometry"/>s are <i>always</i> simple by definition.</description></item>
- </list>
- For <see cref="T:NetTopologySuite.Geometries.ILineal"/> geometries the evaluation of simplicity
- can be customized by supplying a <see cref="T:NetTopologySuite.Algorithm.IBoundaryNodeRule"/>
- to define how boundary points are determined.
- The default is the SFS-standard <see cref="T:NetTopologySuite.Algorithm.BoundaryNodeRules.Mod2BoundaryNodeRule"/>.
- Note that under the <tt>Mod-2</tt> rule, closed <tt>LineString</tt>s (rings)
- will never satisfy the <tt>touches</tt> predicate at their endpoints, since these are
- interior points, not boundary points.
- If it is required to test whether a set of <c>LineString</c>s touch
- only at their endpoints, use <c>IsSimpleOp</c> with <see cref="F:NetTopologySuite.Algorithm.BoundaryNodeRules.EndpointBoundaryRule"/>.
- For example, this can be used to validate that a set of lines form a topologically valid
- linear network.
- </remarks>
- </member>
- <member name="M:NetTopologySuite.Operation.IsSimpleOp.#ctor(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Creates a simplicity checker using the default SFS Mod-2 Boundary Node Rule
- </summary>
- <param name="geom">The geometry to test</param>
- </member>
- <member name="M:NetTopologySuite.Operation.IsSimpleOp.#ctor(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Algorithm.IBoundaryNodeRule)">
- <summary>
- Creates a simplicity checker using a given <see cref="T:NetTopologySuite.Algorithm.IBoundaryNodeRule"/>
- </summary>
- <param name="geom">The geometry to test</param>
- <param name="boundaryNodeRule">The rule to use</param>
- </member>
- <member name="M:NetTopologySuite.Operation.IsSimpleOp.IsSimple">
- <summary>
- Tests whether the geometry is simple.
- </summary>
- <returns>true if the geometry is simple</returns>
- </member>
- <member name="P:NetTopologySuite.Operation.IsSimpleOp.NonSimpleLocation">
- <summary>
- Gets a coordinate for the location where the geometry fails to be simple.
- (i.e. where it has a non-boundary self-intersection).
- <see cref="M:NetTopologySuite.Operation.IsSimpleOp.IsSimple"/> must be called before this location is accessed
- </summary>
- <returns> a coordinate for the location of the non-boundary self-intersection
- or <c>null</c> if the geometry is simple</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.IsSimpleOp.IsSimplePolygonal(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes simplicity for polygonal geometries.
- Polygonal geometries are simple if and only if
- all of their component rings are simple.
- </summary>
- <param name="geom">A Polygonal geometry</param>
- <returns><c>true</c> if the geometry is simple</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.IsSimpleOp.IsSimpleGeometryCollection(NetTopologySuite.Geometries.Geometry)">
- <summary>Semantics for GeometryCollection is
- simple if all components are simple.</summary>
- <param name="geom">A GeometryCollection</param>
- <returns><c>true</c> if the geometry is simple</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.IsSimpleOp.HasNonEndpointIntersection(NetTopologySuite.GeometriesGraph.GeometryGraph)">
- <summary>
- For all edges, check if there are any intersections which are NOT at an endpoint.
- The Geometry is not simple if there are intersections not at endpoints.
- </summary>
- <param name="graph"></param>
- </member>
- <member name="T:NetTopologySuite.Operation.IsSimpleOp.EndpointInfo">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.IsSimpleOp.EndpointInfo.#ctor(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Creates an instance of this class
- </summary>
- <param name="pt">The endpoint</param>
- </member>
- <member name="M:NetTopologySuite.Operation.IsSimpleOp.HasClosedEndpointIntersection(NetTopologySuite.GeometriesGraph.GeometryGraph)">
- <summary>
- Tests that no edge intersection is the endpoint of a closed line.
- This ensures that closed lines are not touched at their endpoint,
- which is an interior point according to the Mod-2 rule
- To check this we compute the degree of each endpoint.
- The degree of endpoints of closed lines
- must be exactly 2.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.IsSimpleOp.AddEndpoint(System.Collections.Generic.IDictionary{NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Operation.IsSimpleOp.EndpointInfo},NetTopologySuite.Geometries.Coordinate,System.Boolean)">
- <summary>
- Add an endpoint to the map, creating an entry for it if none exists.
- </summary>
- <param name="endPoints"></param>
- <param name="p"></param>
- <param name="isClosed"></param>
- </member>
- <member name="T:NetTopologySuite.Operation.Linemerge.EdgeString">
- <summary>
- A sequence of <c>LineMergeDirectedEdge</c>s forming one of the lines that will
- be output by the line-merging process.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Linemerge.EdgeString.#ctor(NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
- Constructs an EdgeString with the given factory used to convert this EdgeString
- to a LineString.
- </summary>
- <param name="factory"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Linemerge.EdgeString.Add(NetTopologySuite.Operation.Linemerge.LineMergeDirectedEdge)">
- <summary>
- Adds a directed edge which is known to form part of this line.
- </summary>
- <param name="directedEdge"></param>
- </member>
- <member name="P:NetTopologySuite.Operation.Linemerge.EdgeString.Coordinates">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Linemerge.EdgeString.ToLineString">
- <summary>
- Converts this EdgeString into a LineString.
- </summary>
- </member>
- <member name="T:NetTopologySuite.Operation.Linemerge.LineMergeDirectedEdge">
- <summary>
- A <c>com.vividsolutions.jts.planargraph.DirectedEdge</c> of a <c>LineMergeGraph</c>.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Linemerge.LineMergeDirectedEdge.#ctor(NetTopologySuite.Planargraph.Node,NetTopologySuite.Planargraph.Node,NetTopologySuite.Geometries.Coordinate,System.Boolean)">
- <summary>
- Constructs a LineMergeDirectedEdge connecting the <c>from</c> node to the <c>to</c> node.
- </summary>
- <param name="from"/>
- <param name="to"/>
- <param name="directionPt">
- specifies this DirectedEdge's direction (given by an imaginary
- line from the <c>from</c> node to <c>directionPt</c>).
- </param>
- <param name="edgeDirection">
- whether this DirectedEdge's direction is the same as or
- opposite to that of the parent Edge (if any).
- </param>
- </member>
- <member name="P:NetTopologySuite.Operation.Linemerge.LineMergeDirectedEdge.Next">
- <summary>
- Returns the directed edge that starts at this directed edge's end point, or null
- if there are zero or multiple directed edges starting there.
- </summary>
- </member>
- <member name="T:NetTopologySuite.Operation.Linemerge.LineMergeEdge">
- <summary>
- An edge of a <c>LineMergeGraph</c>. The <c>marked</c> field indicates
- whether this Edge has been logically deleted from the graph.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Linemerge.LineMergeEdge.#ctor(NetTopologySuite.Geometries.LineString)">
- <summary>
- Constructs a LineMergeEdge with vertices given by the specified LineString.
- </summary>
- <param name="line"></param>
- </member>
- <member name="P:NetTopologySuite.Operation.Linemerge.LineMergeEdge.Line">
- <summary>
- Returns the LineString specifying the vertices of this edge.
- </summary>
- </member>
- <member name="T:NetTopologySuite.Operation.Linemerge.LineMergeGraph">
- <summary>
- A planar graph of edges that is analyzed to sew the edges together. The
- <c>marked</c> flag on <see cref="T:NetTopologySuite.Planargraph.Edge"/>s
- and <see cref="T:NetTopologySuite.Planargraph.Node"/>s indicates whether they have been
- logically deleted from the graph.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Linemerge.LineMergeGraph.AddEdge(NetTopologySuite.Geometries.LineString)">
- <summary>
- Adds an Edge, DirectedEdges, and Nodes for the given LineString representation
- of an edge.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Linemerge.LineMergeGraph.GetNode(NetTopologySuite.Geometries.Coordinate)">
- <summary>
-
- </summary>
- <param name="coordinate"></param>
- <returns></returns>
- </member>
- <member name="T:NetTopologySuite.Operation.Linemerge.LineMerger">
- <summary>
- Sews together a set of fully noded LineStrings.
- </summary>
- <remarks>
- <para> Sewing stops at nodes of degree 1
- or 3 or more -- the exception is an isolated loop, which only has degree-2 nodes,
- in which case a node is simply chosen as a starting point. The direction of each
- merged LineString will be that of the majority of the LineStrings from which it
- was derived.</para>
- <para>
- Any dimension of Geometry is handled -- the constituent linework is extracted to
- form the edges. The edges must be correctly noded; that is, they must only meet
- at their endpoints. The LineMerger will still run on incorrectly noded input
- but will not form polygons from incorrected noded edges.</para>
- <para>
- <b>NOTE:</b>once merging has been performed, no more</para>
- </remarks>
- </member>
- <member name="T:NetTopologySuite.Operation.Linemerge.LineMerger.AnonymousGeometryComponentFilterImpl">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Linemerge.LineMerger.AnonymousGeometryComponentFilterImpl.#ctor(NetTopologySuite.Operation.Linemerge.LineMerger)">
- <summary>
-
- </summary>
- <param name="container"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Linemerge.LineMerger.AnonymousGeometryComponentFilterImpl.Filter(NetTopologySuite.Geometries.Geometry)">
- <summary>
-
- </summary>
- <param name="component"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Linemerge.LineMerger.Add(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Adds a Geometry to be processed. May be called multiple times.
- Any dimension of Geometry may be added; the constituent linework will be
- extracted.
- </summary>
- <param name="geometry"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Linemerge.LineMerger.Add(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})">
- <summary>
- Adds a collection of Geometries to be processed. May be called multiple times.
- Any dimension of Geometry may be added; the constituent linework will be
- extracted.
- </summary>
- <param name="geometries"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Linemerge.LineMerger.Add(NetTopologySuite.Geometries.LineString)">
- <summary>
-
- </summary>
- <param name="lineString"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Linemerge.LineMerger.Merge">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Linemerge.LineMerger.BuildEdgeStringsForObviousStartNodes">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Linemerge.LineMerger.BuildEdgeStringsForIsolatedLoops">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Linemerge.LineMerger.BuildEdgeStringsForUnprocessedNodes">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Linemerge.LineMerger.BuildEdgeStringsForNonDegree2Nodes">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Linemerge.LineMerger.BuildEdgeStringsStartingAt(NetTopologySuite.Planargraph.Node)">
- <summary>
-
- </summary>
- <param name="node"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Linemerge.LineMerger.BuildEdgeStringStartingWith(NetTopologySuite.Operation.Linemerge.LineMergeDirectedEdge)">
- <summary>
-
- </summary>
- <param name="start"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Linemerge.LineMerger.GetMergedLineStrings">
- <summary>
- Returns the LineStrings built by the merging process.
- </summary>
- <returns></returns>
- </member>
- <member name="T:NetTopologySuite.Operation.Linemerge.LineSequencer">
- <summary>
- <para>
- Builds a sequence from a set of <see cref="T:NetTopologySuite.Geometries.LineString" />s,
- so that they are ordered end to end.
- A sequence is a complete non-repeating list of the linear
- components of the input. Each linestring is oriented
- so that identical endpoints are adjacent in the list.
- </para>
- <para>
- The input linestrings may form one or more connected sets.
- The input linestrings should be correctly noded, or the results may
- not be what is expected.
- The output of this method is a single <see cref="T:NetTopologySuite.Geometries.MultiLineString" />,
- containing the ordered linestrings in the sequence.
- </para>
- <para>
- The sequencing employs the classic 'Eulerian path' graph algorithm.
- Since Eulerian paths are not uniquely determined, further rules are used to
- make the computed sequence preserve as much as possible of the input ordering.
- Within a connected subset of lines, the ordering rules are:
- - If there is degree-1 node which is the start
- node of an linestring, use that node as the start of the sequence.
- - If there is a degree-1 node which is the end
- node of an linestring, use that node as the end of the sequence.
- - If the sequence has no degree-1 nodes, use any node as the start
- </para>
- <para>
- Not all arrangements of lines can be sequenced.
- For a connected set of edges in a graph,
- Euler's Theorem states that there is a sequence containing each edge once
- if and only if there are no more than 2 nodes of odd degree.
- If it is not possible to find a sequence, the <see cref="M:NetTopologySuite.Operation.Linemerge.LineSequencer.IsSequenceable" />
- property will return <c>false</c>.
- </para>
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Linemerge.LineSequencer.IsSequenced(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests whether a <see cref="T:NetTopologySuite.Geometries.Geometry" /> is sequenced correctly.
- <see cref="T:NetTopologySuite.Geometries.LineString" />s are trivially sequenced.
- <see cref="T:NetTopologySuite.Geometries.MultiLineString" />s are checked for correct sequencing.
- Otherwise, <c>IsSequenced</c> is defined
- to be <c>true</c> for geometries that are not lineal.
- </summary>
- <param name="geom">The <see cref="T:NetTopologySuite.Geometries.Geometry" /> to test.</param>
- <returns>
- <c>true</c> if the <see cref="T:NetTopologySuite.Geometries.Geometry" /> is sequenced or is not lineal.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Linemerge.LineSequencer.Add(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})">
- <summary>
- Adds a <see cref="T:System.Collections.Generic.IEnumerable`1" /> of <see cref="T:NetTopologySuite.Geometries.Geometry" />s to be sequenced.
- May be called multiple times.
- Any dimension of Geometry may be added; the constituent linework will be extracted.
- </summary>
- <param name="geometries">A <see cref="T:System.Collections.Generic.IEnumerable`1" /> of geometries to add.</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Linemerge.LineSequencer.Add(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Adds a <see cref="T:NetTopologySuite.Geometries.Geometry" /> to be sequenced.
- May be called multiple times.
- Any dimension of <see cref="T:NetTopologySuite.Geometries.Geometry" /> may be added;
- the constituent linework will be extracted.
- </summary>
- <param name="geometry"></param>
- </member>
- <member name="T:NetTopologySuite.Operation.Linemerge.LineSequencer.GeometryComponentFilterImpl">
- <summary>
- A private implementation for <see cref="T:NetTopologySuite.Geometries.IGeometryComponentFilter" />
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Linemerge.LineSequencer.GeometryComponentFilterImpl.#ctor(NetTopologySuite.Operation.Linemerge.LineSequencer)">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.Operation.Linemerge.LineSequencer.GeometryComponentFilterImpl"/> class.
- </summary>
- <param name="sequencer">The sequencer.</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Linemerge.LineSequencer.GeometryComponentFilterImpl.Filter(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Performs an operation with or on <paramref name="component" />
- </summary>
- <param name="component">
- A <see cref="T:NetTopologySuite.Geometries.Geometry" /> to which the filter is applied.
- </param>
- </member>
- <member name="M:NetTopologySuite.Operation.Linemerge.LineSequencer.IsSequenceable">
- <summary>
- Tests whether the arrangement of linestrings has a valid sequence.
- </summary>
- <returns><c>true</c> if a valid sequence exists.</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Linemerge.LineSequencer.GetSequencedLineStrings">
- <summary>
- Returns the <see cref="T:NetTopologySuite.Geometries.LineString" /> or <see cref="T:NetTopologySuite.Geometries.MultiLineString" />
- built by the sequencing process, if one exists.
- </summary>
- <returns>The sequenced linestrings,
- or <c>null</c> if a valid sequence does not exist.</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Linemerge.LineSequencer.HasSequence(NetTopologySuite.Planargraph.Subgraph)">
- <summary>
- Tests whether a complete unique path exists in a graph
- using Euler's Theorem.
- </summary>
- <param name="graph">The <see cref="T:NetTopologySuite.Planargraph.Subgraph" /> containing the edges.</param>
- <returns><c>true</c> if a sequence exists.</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Linemerge.LineSequencer.FindUnvisitedBestOrientedDE(NetTopologySuite.Planargraph.Node)">
- <summary>
- Finds an <see cref="T:NetTopologySuite.Planargraph.DirectedEdge" /> for an unvisited edge (if any),
- choosing the <see cref="T:NetTopologySuite.Planargraph.DirectedEdge" /> which preserves orientation, if possible.
- </summary>
- <param name="node">The <see cref="T:NetTopologySuite.Planargraph.Node" /> to examine.</param>
- <returns>
- The <see cref="T:NetTopologySuite.Planargraph.DirectedEdge" /> found,
- or <c>null</c> if none were unvisited.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Linemerge.LineSequencer.Orient(System.Collections.Generic.LinkedList{NetTopologySuite.Planargraph.DirectedEdge})">
- <summary>
- Computes a version of the sequence which is optimally
- oriented relative to the underlying geometry.
- <para>
- Heuristics used are:
- - If the path has a degree-1 node which is the start
- node of an linestring, use that node as the start of the sequence.
- - If the path has a degree-1 node which is the end
- node of an linestring, use that node as the end of the sequence.
- - If the sequence has no degree-1 nodes, use any node as the start
- (NOTE: in this case could orient the sequence according to the majority of the
- linestring orientations).
- </para>
- </summary>
- <param name="seq">A <see cref="T:System.Collections.Generic.IList`1" /> of <see cref="T:NetTopologySuite.Planargraph.DirectedEdge" />s.</param>
- <returns>
- A <see cref="T:System.Collections.Generic.IList`1" /> of <see cref="T:NetTopologySuite.Planargraph.DirectedEdge" />s oriented appropriately.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Linemerge.LineSequencer.Reverse(System.Collections.Generic.IEnumerable{NetTopologySuite.Planargraph.DirectedEdge})">
- <summary>
- Reverse the sequence.
- This requires reversing the order of the <see cref="T:NetTopologySuite.Planargraph.DirectedEdge" />s,
- and flipping each <see cref="T:NetTopologySuite.Planargraph.DirectedEdge" /> as well.
- </summary>
- <param name="seq">
- A enumeration of <see cref="T:NetTopologySuite.Planargraph.DirectedEdge" />s,
- in sequential order.
- </param>
- <returns>The reversed sequence.</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Linemerge.LineSequencer.BuildSequencedGeometry(System.Collections.Generic.IEnumerable{System.Collections.Generic.IEnumerable{NetTopologySuite.Planargraph.DirectedEdge}})">
- <summary>
- Builds a geometry (<see cref="T:NetTopologySuite.Geometries.LineString" /> or <see cref="T:NetTopologySuite.Geometries.MultiLineString" />)
- representing the sequence.
- </summary>
- <param name="sequences">
- An enumeration of <see cref="T:System.Collections.Generic.IList`1" />s of <see cref="T:NetTopologySuite.Planargraph.DirectedEdge" />s
- with <see cref="T:NetTopologySuite.Operation.Linemerge.LineMergeEdge" />s as their parent edges.
- </param>
- <returns>
- The sequenced geometry, or <c>null</c> if no sequence exists.
- </returns>
- </member>
- <member name="T:NetTopologySuite.Operation.Overlay.EdgeSetNoder">
- <summary>
- Nodes a set of edges.
- Takes one or more sets of edges and constructs a
- new set of edges consisting of all the split edges created by
- noding the input edges together.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.EdgeSetNoder.#ctor(NetTopologySuite.Algorithm.LineIntersector)">
- <summary>
-
- </summary>
- <param name="li"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.EdgeSetNoder.AddEdges(System.Collections.Generic.IEnumerable{NetTopologySuite.GeometriesGraph.Edge})">
- <summary>
-
- </summary>
- <param name="edges"></param>
- </member>
- <member name="P:NetTopologySuite.Operation.Overlay.EdgeSetNoder.NodedEdges">
- <summary>
-
- </summary>
- </member>
- <member name="T:NetTopologySuite.Operation.Overlay.LineBuilder">
- <summary>
- Forms NTS LineStrings out of a the graph of <c>DirectedEdge</c>s
- created by an <c>OverlayOp</c>.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.LineBuilder.#ctor(NetTopologySuite.Operation.Overlay.OverlayOp,NetTopologySuite.Geometries.GeometryFactory,NetTopologySuite.Algorithm.PointLocator)">
- <summary>
-
- </summary>
- <param name="op"></param>
- <param name="geometryFactory"></param>
- <param name="ptLocator"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.LineBuilder.Build(NetTopologySuite.Operation.Overlay.SpatialFunction)">
- <summary>
-
- </summary>
- <param name="opCode"></param>
- <returns>
- A list of the LineStrings in the result of the specified overlay operation.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.LineBuilder.FindCoveredLineEdges">
- <summary>
- Find and mark L edges which are "covered" by the result area (if any).
- L edges at nodes which also have A edges can be checked by checking
- their depth at that node.
- L edges at nodes which do not have A edges can be checked by doing a
- point-in-polygon test with the previously computed result areas.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.LineBuilder.CollectLines(NetTopologySuite.Operation.Overlay.SpatialFunction)">
- <summary>
-
- </summary>
- <param name="opCode"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.LineBuilder.CollectLineEdge(NetTopologySuite.GeometriesGraph.DirectedEdge,NetTopologySuite.Operation.Overlay.SpatialFunction,System.Collections.Generic.IList{NetTopologySuite.GeometriesGraph.Edge})">
- <summary>
-
- </summary>
- <param name="de"></param>
- <param name="opCode"></param>
- <param name="edges"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.LineBuilder.CollectBoundaryTouchEdge(NetTopologySuite.GeometriesGraph.DirectedEdge,NetTopologySuite.Operation.Overlay.SpatialFunction,System.Collections.Generic.IList{NetTopologySuite.GeometriesGraph.Edge})">
- <summary>
- Collect edges from Area inputs which should be in the result but
- which have not been included in a result area.
- This happens ONLY:
- during an intersection when the boundaries of two
- areas touch in a line segment
- OR as a result of a dimensional collapse.
- </summary>
- <param name="de"></param>
- <param name="opCode"></param>
- <param name="edges"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.LineBuilder.BuildLines(NetTopologySuite.Operation.Overlay.SpatialFunction)">
- <summary>
-
- </summary>
- <param name="opCode"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.LineBuilder.LabelIsolatedLines(System.Collections.Generic.IEnumerable{NetTopologySuite.GeometriesGraph.Edge})">
- <summary>
-
- </summary>
- <param name="edgesList"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.LineBuilder.LabelIsolatedLine(NetTopologySuite.GeometriesGraph.Edge,System.Int32)">
- <summary>
- Label an isolated node with its relationship to the target point.
- </summary>
- <param name="e"></param>
- <param name="targetIndex"></param>
- </member>
- <member name="T:NetTopologySuite.Operation.Overlay.MaximalEdgeRing">
- <summary>
- A ring of edges which may contain nodes of degree > 2.
- A MaximalEdgeRing may represent two different spatial entities:
- a single polygon possibly containing inversions (if the ring is oriented CW)
- a single hole possibly containing exversions (if the ring is oriented CCW)
- If the MaximalEdgeRing represents a polygon,
- the interior of the polygon is strongly connected.
- These are the form of rings used to define polygons under some spatial data models.
- However, under the OGC SFS model, MinimalEdgeRings are required.
- A MaximalEdgeRing can be converted to a list of MinimalEdgeRings using the
- <c>BuildMinimalRings()</c> method.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.MaximalEdgeRing.#ctor(NetTopologySuite.GeometriesGraph.DirectedEdge,NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
-
- </summary>
- <param name="start"></param>
- <param name="geometryFactory"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.MaximalEdgeRing.GetNext(NetTopologySuite.GeometriesGraph.DirectedEdge)">
- <summary>
-
- </summary>
- <param name="de"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.MaximalEdgeRing.SetEdgeRing(NetTopologySuite.GeometriesGraph.DirectedEdge,NetTopologySuite.GeometriesGraph.EdgeRing)">
- <summary>
-
- </summary>
- <param name="de"></param>
- <param name="er"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.MaximalEdgeRing.LinkDirectedEdgesForMinimalEdgeRings">
- <summary>
- For all nodes in this EdgeRing,
- link the DirectedEdges at the node to form minimalEdgeRings
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.MaximalEdgeRing.BuildMinimalRings">
- <summary>
-
- </summary>
- <returns></returns>
- </member>
- <member name="T:NetTopologySuite.Operation.Overlay.MinimalEdgeRing">
- <summary>
- A ring of edges with the property that no node
- has degree greater than 2. These are the form of rings required
- to represent polygons under the OGC SFS spatial data model.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.MinimalEdgeRing.#ctor(NetTopologySuite.GeometriesGraph.DirectedEdge,NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
-
- </summary>
- <param name="start"></param>
- <param name="geometryFactory"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.MinimalEdgeRing.GetNext(NetTopologySuite.GeometriesGraph.DirectedEdge)">
- <summary>
-
- </summary>
- <param name="de"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.MinimalEdgeRing.SetEdgeRing(NetTopologySuite.GeometriesGraph.DirectedEdge,NetTopologySuite.GeometriesGraph.EdgeRing)">
- <summary>
-
- </summary>
- <param name="de"></param>
- <param name="er"></param>
- </member>
- <member name="T:NetTopologySuite.Operation.Overlay.OverlayNodeFactory">
- <summary>
- Creates nodes for use in the <c>PlanarGraph</c>s constructed during
- overlay operations.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.OverlayNodeFactory.CreateNode(NetTopologySuite.Geometries.Coordinate)">
- <summary>
-
- </summary>
- <param name="coord"></param>
- <returns></returns>
- </member>
- <member name="T:NetTopologySuite.Operation.Overlay.SpatialFunction">
- <summary>
- The spatial functions supported by this class.
- These operations implement various bool combinations of the resultants of the overlay.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.Overlay.SpatialFunction.Intersection">
- <summary>
- The code for the Intersection overlay operation
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.Overlay.SpatialFunction.Union">
- <summary>
- The code for the Union overlay operation
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.Overlay.SpatialFunction.Difference">
- <summary>
- The code for the Difference overlay operation
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.Overlay.SpatialFunction.SymDifference">
- <summary>
- The code for the Symmetric Difference overlay operation
- </summary>
- </member>
- <member name="T:NetTopologySuite.Operation.Overlay.OverlayOp">
- <summary>
- Computes the geometric overlay of two <see cref="T:NetTopologySuite.Geometries.Geometry"/>s. The overlay
- can be used to determine any bool combination of the geometries.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Operation.Overlay.OverlayOp.NodingValidatorDisabled">
- <summary>
- Disable <see cref="T:NetTopologySuite.GeometriesGraph.EdgeNodingValidator"/>
- when an intersection is made (<see cref="M:NetTopologySuite.Operation.Overlay.OverlayOp.ComputeOverlay(NetTopologySuite.Operation.Overlay.SpatialFunction)"/>),
- so performances are dramatically improved but failures are not managed.
- </summary>
- <remarks>
- Use ay your own risk!
- </remarks>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.OverlayOp.Overlay(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Operation.Overlay.SpatialFunction)">
- <summary>
- Computes an overlay operation
- for the given geometry arguments.
- </summary>
- <param name="geom0">The first geometry argument</param>
- <param name="geom1">The second geometry argument</param>
- <param name="opCode">The code for the desired overlay operation</param>
- <returns>The result of the overlay operation</returns>
- <exception cref="T:NetTopologySuite.Geometries.TopologyException">Thrown if a robustness problem is encountered.</exception>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.OverlayOp.IsResultOfOp(NetTopologySuite.GeometriesGraph.Label,NetTopologySuite.Operation.Overlay.SpatialFunction)">
- <summary>
- Tests whether a point with a given topological <see cref="T:NetTopologySuite.GeometriesGraph.Label"/>
- relative to two geometries is contained in
- the result of overlaying the geometries using
- a given overlay operation.
- <para/>
- The method handles arguments of <see cref="F:NetTopologySuite.Geometries.Location.Null"/> correctly
- </summary>
- <param name="label">The topological label of the point</param>
- <param name="overlayOpCode">The code for the overlay operation to test</param>
- <returns><c>true</c> if the label locations correspond to the overlayOpCode</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.OverlayOp.IsResultOfOp(NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Location,NetTopologySuite.Operation.Overlay.SpatialFunction)">
- <summary>
- Tests whether a point with given <see cref="T:NetTopologySuite.Geometries.Location"/>s
- relative to two geometries is contained in
- the result of overlaying the geometries using
- a given overlay operation.
- <para/>
- The method handles arguments of <see cref="F:NetTopologySuite.Geometries.Location.Null"/> correctly
- </summary>
- <param name="loc0">the code for the location in the first geometry </param>
- <param name="loc1">the code for the location in the second geometry</param>
- <param name="overlayOpCode">the code for the overlay operation to test</param>
- <returns><c>true</c> if the locations correspond to the overlayOpCode.</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.OverlayOp.#ctor(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Constructs an instance to compute a single overlay operation
- for the given geometries.
- </summary>
- <param name="g0">The first geometry argument</param>
- <param name="g1">The second geometry argument</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.OverlayOp.GetResultGeometry(NetTopologySuite.Operation.Overlay.SpatialFunction)">
- <summary>
- Gets the result of the overlay for a given overlay operation.
- <para/>
- Note: this method can be called once only.
- </summary>
- <param name="overlayOpCode">The code of the overlay operation to perform</param>
- <returns>The computed result geometry</returns>
- <exception cref="T:NetTopologySuite.Geometries.TopologyException">Thrown if a robustness problem is encountered</exception>
- </member>
- <member name="P:NetTopologySuite.Operation.Overlay.OverlayOp.Graph">
- <summary>
- Gets the graph constructed to compute the overlay.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.OverlayOp.InsertUniqueEdge(NetTopologySuite.GeometriesGraph.Edge)">
- <summary>
- Insert an edge from one of the noded input graphs.
- Checks edges that are inserted to see if an
- identical edge already exists.
- If so, the edge is not inserted, but its label is merged
- with the existing edge.
- </summary>
- <param name="e">The edge to insert</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.OverlayOp.ComputeLabelsFromDepths">
- <summary>
- Update the labels for edges according to their depths.
- For each edge, the depths are first normalized.
- Then, if the depths for the edge are equal,
- this edge must have collapsed into a line edge.
- If the depths are not equal, update the label
- with the locations corresponding to the depths
- (i.e. a depth of 0 corresponds to a Location of Exterior,
- a depth of 1 corresponds to Interior)
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.OverlayOp.ReplaceCollapsedEdges">
- <summary>
- If edges which have undergone dimensional collapse are found,
- replace them with a new edge which is a L edge
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.OverlayOp.CopyPoints(System.Int32)">
- <summary>
- Copy all nodes from an arg point into this graph.
- The node label in the arg point overrides any previously computed
- label for that argIndex.
- (E.g. a node may be an intersection node with
- a previously computed label of Boundary,
- but in the original arg Geometry it is actually
- in the interior due to the Boundary Determination Rule)
- </summary>
- <param name="argIndex"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.OverlayOp.ComputeLabelling">
- <summary>
- Compute initial labelling for all DirectedEdges at each node.
- In this step, DirectedEdges will acquire a complete labelling
- (i.e. one with labels for both Geometries)
- only if they
- are incident on a node which has edges for both Geometries
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.OverlayOp.MergeSymLabels">
- <summary>
- For nodes which have edges from only one Geometry incident on them,
- the previous step will have left their dirEdges with no labelling for the other
- Geometry. However, the sym dirEdge may have a labelling for the other
- Geometry, so merge the two labels.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.OverlayOp.LabelIncompleteNodes">
- <summary>
- Incomplete nodes are nodes whose labels are incomplete.
- (e.g. the location for one Geometry is null).
- These are either isolated nodes,
- or nodes which have edges from only a single Geometry incident on them.
- Isolated nodes are found because nodes in one graph which don't intersect
- nodes in the other are not completely labelled by the initial process
- of adding nodes to the nodeList.
- To complete the labelling we need to check for nodes that lie in the
- interior of edges, and in the interior of areas.
- When each node labelling is completed, the labelling of the incident
- edges is updated, to complete their labelling as well.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.OverlayOp.LabelIncompleteNode(NetTopologySuite.GeometriesGraph.GraphComponent,System.Int32)">
- <summary>
- Label an isolated node with its relationship to the target point.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.OverlayOp.FindResultAreaEdges(NetTopologySuite.Operation.Overlay.SpatialFunction)">
- <summary>
- Find all edges whose label indicates that they are in the result area(s),
- according to the operation being performed. Since we want polygon shells to be
- oriented CW, choose dirEdges with the interior of the result on the RHS.
- Mark them as being in the result.
- Interior Area edges are the result of dimensional collapses.
- They do not form part of the result area boundary.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.OverlayOp.CancelDuplicateResultEdges">
- <summary>
- If both a dirEdge and its sym are marked as being in the result, cancel
- them out.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.OverlayOp.IsCoveredByLA(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Tests if a point node should be included in the result or not.
- </summary>
- <param name="coord">The point coordinate</param>
- <returns><c>true</c> if the coordinate point is covered by a result Line or Area geometry.</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.OverlayOp.IsCoveredByA(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Tests if an L edge should be included in the result or not.
- </summary>
- <param name="coord">The point coordinate</param>
- <returns><c>true</c> if the coordinate point is covered by a result Area geometry.</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.OverlayOp.IsCovered(NetTopologySuite.Geometries.Coordinate,System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})">
- <returns>
- <c>true</c> if the coord is located in the interior or boundary of
- a point in the list.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.OverlayOp.CreateEmptyResult(NetTopologySuite.Operation.Overlay.SpatialFunction,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
- Creates an empty result geometry of the appropriate dimension,
- based on the given overlay operation and the dimensions of the inputs.
- The created geometry is always an atomic geometry,
- not a collection.
- <para/>
- The empty result is constructed using the following rules:
- <list type="bullet">
- <item><description><see cref="F:NetTopologySuite.Operation.Overlay.SpatialFunction.Intersection"/> - result has the dimension of the lowest input dimension</description></item>
- <item><description><see cref="F:NetTopologySuite.Operation.Overlay.SpatialFunction.Union"/> - result has the dimension of the highest input dimension</description></item>
- <item><description><see cref="F:NetTopologySuite.Operation.Overlay.SpatialFunction.Difference"/> - result has the dimension of the left-hand input</description></item>
- <item><description><see cref="F:NetTopologySuite.Operation.Overlay.SpatialFunction.SymDifference"/> - result has the dimension of the highest input dimension
- (since symDifference is the union of the differences).</description></item>
- </list>
- </summary>
- <param name="overlayOpCode">The overlay operation being performed</param>
- <param name="a">An input geometry</param>
- <param name="b">An input geometry</param>
- <param name="geomFact">The geometry factory being used for the operation</param>
- <returns>An empty atomic geometry of the appropriate dimension</returns>
- </member>
- <member name="T:NetTopologySuite.Operation.Overlay.PointBuilder">
- <summary>
- Constructs <c>Point</c>s from the nodes of an overlay graph.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.PointBuilder.#ctor(NetTopologySuite.Operation.Overlay.OverlayOp,NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
- Creates an instance of this class
- </summary>
- <param name="op">The operation</param>
- <param name="geometryFactory">The geometry factory</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.PointBuilder.Build(NetTopologySuite.Operation.Overlay.SpatialFunction)">
- <summary>
- Computes the Point geometries which will appear in the result,
- given the specified overlay operation.
- </summary>
- <param name="opCode">The spatial function</param>
- <returns>
- A list of the Points in the result.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.PointBuilder.ExtractNonCoveredResultNodes(NetTopologySuite.Operation.Overlay.SpatialFunction)">
- <summary>
- Determines nodes which are in the result, and creates <see cref="T:NetTopologySuite.Geometries.Point"/>s for them.
- </summary>
- <remarks>
- This method determines nodes which are candidates for the result via their
- labelling and their graph topology.
- </remarks>
- <param name="opCode">The overlay operation</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.PointBuilder.FilterCoveredNodeToPoint(NetTopologySuite.GeometriesGraph.Node)">
- <summary>
- Converts non-covered nodes to Point objects and adds them to the result.
- </summary>
- <remarks>
- A node is covered if it is contained in another element Geometry
- with higher dimension (e.g. a node point might be contained in a polygon,
- in which case the point can be eliminated from the result).
- </remarks>
- <param name="n">The node to test</param>
- </member>
- <member name="T:NetTopologySuite.Operation.Overlay.PolygonBuilder">
- <summary>
- Forms <c>Polygon</c>s out of a graph of {DirectedEdge}s.
- The edges to use are marked as being in the result Area.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.PolygonBuilder.#ctor(NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
-
- </summary>
- <param name="geometryFactory"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.PolygonBuilder.Add(NetTopologySuite.GeometriesGraph.PlanarGraph)">
- <summary>
- Add a complete graph.
- The graph is assumed to contain one or more polygons,
- possibly with holes.
- </summary>
- <param name="graph"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.PolygonBuilder.Add(System.Collections.Generic.IList{NetTopologySuite.GeometriesGraph.EdgeEnd},System.Collections.Generic.IList{NetTopologySuite.GeometriesGraph.Node})">
- <summary>
- Add a set of edges and nodes, which form a graph.
- The graph is assumed to contain one or more polygons,
- possibly with holes.
- </summary>
- <param name="dirEdges"></param>
- <param name="nodes"></param>
- </member>
- <member name="P:NetTopologySuite.Operation.Overlay.PolygonBuilder.Polygons">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.PolygonBuilder.BuildMaximalEdgeRings(System.Collections.Generic.IEnumerable{NetTopologySuite.GeometriesGraph.EdgeEnd})">
- <summary>
- For all DirectedEdges in result, form them into MaximalEdgeRings.
- </summary>
- <param name="dirEdges"></param>
- <returns></returns>
- </member>
- <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})">
- <summary>
-
- </summary>
- <param name="maxEdgeRings"></param>
- <param name="shellList"></param>
- <param name="freeHoleList"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.PolygonBuilder.FindShell(System.Collections.Generic.IEnumerable{NetTopologySuite.GeometriesGraph.EdgeRing})">
- <summary>
- This method takes a list of MinimalEdgeRings derived from a MaximalEdgeRing,
- and tests whether they form a Polygon. This is the case if there is a single shell
- in the list. In this case the shell is returned.
- The other possibility is that they are a series of connected holes, in which case
- no shell is returned.
- </summary>
- <returns>The shell EdgeRing, if there is one<br/> or
- <c>null</c>, if all the rings are holes.</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.PolygonBuilder.PlacePolygonHoles(NetTopologySuite.GeometriesGraph.EdgeRing,System.Collections.Generic.IEnumerable{NetTopologySuite.GeometriesGraph.EdgeRing})">
- <summary>
- This method assigns the holes for a Polygon (formed from a list of
- MinimalEdgeRings) to its shell.
- Determining the holes for a MinimalEdgeRing polygon serves two purposes:
- it is faster than using a point-in-polygon check later on.
- it ensures correctness, since if the PIP test was used the point
- chosen might lie on the shell, which might return an incorrect result from the
- PIP test.
- </summary>
- <param name="shell"></param>
- <param name="minEdgeRings"></param>
- </member>
- <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})">
- <summary>
- For all rings in the input list,
- determine whether the ring is a shell or a hole
- and add it to the appropriate list.
- Due to the way the DirectedEdges were linked,
- a ring is a shell if it is oriented CW, a hole otherwise.
- </summary>
- <param name="edgeRings"></param>
- <param name="shellList"></param>
- <param name="freeHoleList"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.PolygonBuilder.PlaceFreeHoles(System.Collections.Generic.IList{NetTopologySuite.GeometriesGraph.EdgeRing},System.Collections.Generic.IEnumerable{NetTopologySuite.GeometriesGraph.EdgeRing})">
- <summary>
- This method determines finds a containing shell for all holes
- which have not yet been assigned to a shell.
- These "free" holes should
- all be properly contained in their parent shells, so it is safe to use the
- <c>findEdgeRingContaining</c> method.
- (This is the case because any holes which are NOT
- properly contained (i.e. are connected to their
- parent shell) would have formed part of a MaximalEdgeRing
- and been handled in a previous step).
- </summary>
- <param name="shellList"></param>
- <param name="freeHoleList"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.PolygonBuilder.FindEdgeRingContaining(NetTopologySuite.GeometriesGraph.EdgeRing,System.Collections.Generic.IEnumerable{NetTopologySuite.GeometriesGraph.EdgeRing})">
- <summary>
- Find the innermost enclosing shell EdgeRing containing the argument EdgeRing, if any.
- The innermost enclosing ring is the <i>smallest</i> enclosing ring.
- The algorithm used depends on the fact that:
- ring A contains ring B if envelope(ring A) contains envelope(ring B).
- This routine is only safe to use if the chosen point of the hole
- is known to be properly contained in a shell
- (which is guaranteed to be the case if the hole does not touch its shell).
- </summary>
- <param name="testEr"></param>
- <param name="shellList"></param>
- <returns>Containing EdgeRing, if there is one <br/> or
- <c>null</c> if no containing EdgeRing is found.</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.PolygonBuilder.ComputePolygons(System.Collections.Generic.IEnumerable{NetTopologySuite.GeometriesGraph.EdgeRing})">
- <summary>
-
- </summary>
- <param name="shellList"></param>
- <returns></returns>
- </member>
- <member name="T:NetTopologySuite.Operation.Overlay.Snap.GeometrySnapper">
- <summary>
- Snaps the vertices and segments of a <see cref="T:NetTopologySuite.Geometries.Geometry"/>
- to another Geometry's vertices.
- A snap distance tolerance is used to control where snapping is performed.
- Snapping one geometry to another can improve
- robustness for overlay operations by eliminating
- nearly-coincident edges
- (which cause problems during noding and intersection calculation).
- It can also be used to eliminate artifacts such as narrow slivers, spikes and gores.
- Too much snapping can result in invalid topology
- beging created, so the number and location of snapped vertices
- is decided using heuristics to determine when it
- is safe to snap.
- This can result in some potential snaps being omitted, however.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.Snap.GeometrySnapper.ComputeOverlaySnapTolerance(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Estimates the snap tolerance for a Geometry, taking into account its precision model.
- </summary>
- <param name="g"></param>
- <returns>The estimated snap tolerance</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.Snap.GeometrySnapper.ComputeSizeBasedSnapTolerance(NetTopologySuite.Geometries.Geometry)">
- <summary>
-
- </summary>
- <param name="g"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.Snap.GeometrySnapper.ComputeOverlaySnapTolerance(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
-
- </summary>
- <param name="g0"></param>
- <param name="g1"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.Snap.GeometrySnapper.Snap(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,System.Double)">
- <summary>
- Snaps two geometries together with a given tolerance.
- </summary>
- <param name="g0"></param>
- <param name="g1"></param>
- <param name="snapTolerance"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.Snap.GeometrySnapper.SnapToSelf(NetTopologySuite.Geometries.Geometry,System.Double,System.Boolean)">
- <summary>
- Snaps a geometry to itself.
- Allows optionally cleaning the result to ensure it is topologically valid
- (which fixes issues such as topology collapses in polygonal inputs).
- Snapping a geometry to itself can remove artifacts such as very narrow slivers, gores and spikes.
- </summary>
- <param name="geom">the geometry to snap</param>
- <param name="snapTolerance">the snapping tolerance</param>
- <param name="cleanResult">whether the result should be made valid</param>
- <returns>a new snapped <see cref="T:NetTopologySuite.Geometries.Geometry"/></returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.Snap.GeometrySnapper.#ctor(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Creates a new snapper acting on the given geometry
- </summary>
- <param name="g">the geometry to snap</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.Snap.GeometrySnapper.SnapTo(NetTopologySuite.Geometries.Geometry,System.Double)">
- <summary>
- Snaps the vertices in the component <see cref="T:NetTopologySuite.Geometries.LineString" />s
- of the source geometry to the vertices of the given snap geometry.
- </summary>
- <param name="g">a geometry to snap the source to</param>
- <param name="tolerance"></param>
- <returns>a new snapped Geometry</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.Snap.GeometrySnapper.SnapToSelf(System.Double,System.Boolean)">
- Snaps the vertices in the component <see cref="T:NetTopologySuite.Geometries.LineString" />s
- of the source geometry to the vertices of the same geometry.
- Allows optionally cleaning the result to ensure it is topologically valid
- (which fixes issues such as topology collapses in polygonal inputs).
- <param name="snapTolerance">The snapping tolerance</param>
- <param name="cleanResult">Whether the result should be made valid</param>
- <returns>The geometry snapped to itself</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.Snap.GeometrySnapper.ExtractTargetCoordinates(NetTopologySuite.Geometries.Geometry)">
- <summary>
-
- </summary>
- <param name="g"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.Snap.GeometrySnapper.ComputeSnapTolerance(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Computes the snap tolerance based on the input geometries.
- </summary>
- </member>
- <member name="T:NetTopologySuite.Operation.Overlay.Snap.SnapTransformer">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.Snap.SnapTransformer.#ctor(System.Double,NetTopologySuite.Geometries.Coordinate[])">
- <summary>
-
- </summary>
- <param name="snapTolerance"></param>
- <param name="snapPts"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.Snap.SnapTransformer.TransformCoordinates(NetTopologySuite.Geometries.CoordinateSequence,NetTopologySuite.Geometries.Geometry)">
- <summary>
-
- </summary>
- <param name="coords"></param>
- <param name="parent"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.Snap.SnapTransformer.SnapLine(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.Geometries.Coordinate[])">
- <summary>
-
- </summary>
- <param name="srcPts"></param>
- <param name="snapPts"></param>
- <returns></returns>
- </member>
- <member name="T:NetTopologySuite.Operation.Overlay.Snap.LineStringSnapper">
- <summary>
- Snaps the vertices and segments of a <see cref="T:NetTopologySuite.Geometries.LineString"/>
- to a set of target snap vertices.
- A snap distance tolerance is used to control where snapping is performed.
- <para/>The implementation handles empty geometry and empty snap vertex sets.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.Snap.LineStringSnapper.#ctor(NetTopologySuite.Geometries.LineString,System.Double)">
- <summary>
- Creates a new snapper using the points in the given <see cref="T:NetTopologySuite.Geometries.LineString"/>
- as target snap points.
- </summary>
- <param name="srcLine">A LineString to snap (may be empty)</param>
- <param name="snapTolerance">the snap tolerance to use</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.Snap.LineStringSnapper.#ctor(NetTopologySuite.Geometries.Coordinate[],System.Double)">
- <summary>
- Creates a new snapper using the given points
- as source points to be snapped.
- </summary>
- <param name="srcPts"></param>
- <param name="snapTolerance"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.Snap.LineStringSnapper.SnapTo(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Snaps the vertices and segments of the source LineString
- to the given set of snap points.
- </summary>
- <param name="snapPts">the vertices to snap to</param>
- <returns>list of the snapped points</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.Snap.LineStringSnapper.SnapVertices(NetTopologySuite.Geometries.CoordinateList,NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Snap source vertices to vertices in the target.
- </summary>
- <param name="srcCoords">the points to snap</param>
- <param name="snapPts">the points to snap to</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.Snap.LineStringSnapper.FindSnapForVertex(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate[])">
- <summary>
-
- </summary>
- <param name="pt"></param>
- <param name="snapPts"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.Snap.LineStringSnapper.SnapSegments(NetTopologySuite.Geometries.CoordinateList,NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Snap segments of the source to nearby snap vertices.<para/>
- Source segments are "cracked" at a snap vertex.
- A single input segment may be snapped several times
- to different snap vertices.<para/>
- For each distinct snap vertex, at most one source segment
- is snapped to. This prevents "cracking" multiple segments
- at the same point, which would likely cause
- topology collapse when being used on polygonal linework.
- </summary>
- <param name="srcCoords">The coordinates of the source linestring to snap</param>
- <param name="snapPts">The target snap vertices</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.Snap.LineStringSnapper.FindSegmentIndexToSnap(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.CoordinateList)">
- <summary>
- Finds a src segment which snaps to (is close to) the given snap point<para/>
- Only a single segment is selected for snapping.
- This prevents multiple segments snapping to the same snap vertex,
- which would almost certainly cause invalid geometry
- to be created.
- (The heuristic approach of snapping used here
- is really only appropriate when
- snap pts snap to a unique spot on the src geometry)<para/>
- Also, if the snap vertex occurs as a vertex in the src coordinate list,
- no snapping is performed.
- </summary>
- <param name="snapPt">The point to snap to</param>
- <param name="srcCoords">The source segment coordinates</param>
- <returns>The index of the snapped segment <br/>
- or -1 if no segment snaps to the snap point.</returns>
- </member>
- <member name="T:NetTopologySuite.Operation.Overlay.Snap.SnapIfNeededOverlayOp">
- <summary>
- Performs an overlay operation using snapping and enhanced precision
- to improve the robustness of the result.
- This class only uses snapping
- if an error is detected when running the standard JTS overlay code.
- Errors detected include thrown exceptions
- (in particular, <see cref="T:NetTopologySuite.Geometries.TopologyException" />)
- and invalid overlay computations.
- </summary>
- </member>
- <member name="T:NetTopologySuite.Operation.Overlay.Snap.SnapOverlayOp">
- <summary>
- Performs an overlay operation using snapping and enhanced precision
- to improve the robustness of the result.
- This class always uses snapping.
- This is less performant than the standard JTS overlay code,
- and may even introduce errors which were not present in the original data.
- For this reason, this class should only be used
- if the standard overlay code fails to produce a correct result.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.Snap.SnapOverlayOp.Overlay(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Operation.Overlay.SpatialFunction)">
- <summary>
-
- </summary>
- <param name="g0"></param>
- <param name="g1"></param>
- <param name="opCode"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.Snap.SnapOverlayOp.Intersection(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
-
- </summary>
- <param name="g0"></param>
- <param name="g1"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.Snap.SnapOverlayOp.Union(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
-
- </summary>
- <param name="g0"></param>
- <param name="g1"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.Snap.SnapOverlayOp.Difference(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
-
- </summary>
- <param name="g0"></param>
- <param name="g1"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.Snap.SnapOverlayOp.SymDifference(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
-
- </summary>
- <param name="g0"></param>
- <param name="g1"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.Snap.SnapOverlayOp.#ctor(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
-
- </summary>
- <param name="g1"></param>
- <param name="g2"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.Snap.SnapOverlayOp.ComputeSnapTolerance">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.Snap.SnapOverlayOp.GetResultGeometry(NetTopologySuite.Operation.Overlay.SpatialFunction)">
- <summary>
-
- </summary>
- <param name="opCode"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.Snap.SnapOverlayOp.Snap(NetTopologySuite.Geometries.Geometry[])">
- <summary>
-
- </summary>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.Snap.SnapOverlayOp.PrepareResult(NetTopologySuite.Geometries.Geometry)">
- <summary>
-
- </summary>
- <param name="geom"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.Snap.SnapOverlayOp.RemoveCommonBits(NetTopologySuite.Geometries.Geometry[])">
- <summary>
-
- </summary>
- <param name="geom"></param>
- <returns></returns>
- </member>
- <member name="T:NetTopologySuite.Operation.Overlay.Validate.FuzzyPointLocator">
- <summary>
- Finds the most likely <see cref="T:NetTopologySuite.Geometries.Location"/> of a point relative to
- the polygonal components of a geometry, using a tolerance value.
- </summary>
- <remarks>
- If a point is not clearly in the Interior or Exterior,
- it is considered to be on the Boundary.
- In other words, if the point is within the tolerance of the Boundary,
- it is considered to be on the Boundary; otherwise,
- whether it is Interior or Exterior is determined directly.
- </remarks>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.Validate.FuzzyPointLocator.ExtractLinework(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Extracts linework for polygonal components.
- </summary>
- <param name="g">The geometry from which to extract</param>
- <returns>A lineal geometry containing the extracted linework</returns>
- </member>
- <member name="T:NetTopologySuite.Operation.Overlay.Validate.PolygonalLineworkExtracter">
- <summary>
- Extracts the LineStrings in the boundaries of all the polygonal elements in the target <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.Validate.PolygonalLineworkExtracter.Filter(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Filters out all linework for polygonal elements
- </summary>
- </member>
- <member name="P:NetTopologySuite.Operation.Overlay.Validate.PolygonalLineworkExtracter.Linework">
- <summary>
- Gets the list of polygonal linework.
- </summary>
- </member>
- <member name="T:NetTopologySuite.Operation.Overlay.Validate.OffsetPointGenerator">
- <summary>
- Generates points offset by a given distance from both sides of the midpoint of all segments in a <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
- </summary>
- <remarks>
- <para>
- Can be used to generate probe points for determining whether a polygonal overlay result is incorrect.
- </para>
- <para>
- The input geometry may have any orientation for its rings,
- but <see cref="M:NetTopologySuite.Operation.Overlay.Validate.OffsetPointGenerator.SetSidesToGenerate(System.Boolean,System.Boolean)"/> is
- only meaningful if the orientation is known.
- </para>
- </remarks>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.Validate.OffsetPointGenerator.SetSidesToGenerate(System.Boolean,System.Boolean)">
- <summary>
- Set the sides on which to generate offset points.
- </summary>
- <param name="doLeft"></param>
- <param name="doRight"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.Validate.OffsetPointGenerator.GetPoints(System.Double)">
- <summary>
- Gets the computed offset points.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Overlay.Validate.OffsetPointGenerator.ComputeOffsetPoints(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,System.Double,System.Collections.Generic.IList{NetTopologySuite.Geometries.Coordinate})">
- <summary>
- Generates the two points which are offset from the
- midpoint of the segment <c>(p0, p1)</c> by the <c>offsetDistance</c>
- </summary>
- <param name="p0">The first point of the segment to offset from.</param>
- <param name="p1">The second point of the segment to offset from</param>
- <param name="offsetDistance"></param>
- <param name="offsetPts"></param>
- </member>
- <member name="T:NetTopologySuite.Operation.Overlay.Validate.OverlayResultValidator">
- <summary>
- Validates that the result of an overlay operation is geometrically correct within a determined tolerance.
- Uses fuzzy point location to find points which are
- definitely in either the interior or exterior of the result
- geometry, and compares these results with the expected ones.
- </summary>
- <remarks>
- This algorithm is only useful where the inputs are polygonal.
- This is a heuristic test, and may return false positive results
- (I.e. it may fail to detect an invalid result.)
- It should never return a false negative result, however
- (I.e. it should never report a valid result as invalid.)
- </remarks>
- <author>Martin Davis</author>
- <see cref="T:NetTopologySuite.Operation.Overlay.OverlayOp"/>
- </member>
- <member name="T:NetTopologySuite.Operation.OverlayNG.CoverageUnion">
- <summary>
- Unions a valid coverage of polygons or lines
- in an efficient way.
- <para/>
- A <b>polygonal coverage</b> is a collection of <see cref="T:NetTopologySuite.Geometries.Polygon"/>s
- which satisfy the following conditions:
- <list type="number">
- <item><term>Vector-clean</term><description>Line segments within the collection
- must either be identical or intersect only at endpoints.</description></item>
- <item><term>Non-overlapping</term><description>No two polygons
- may overlap. Equivalently, polygons must be interior-disjoint.</description></item>
- </list>
- <para/>
- A <b>linear coverage</b> is a collection of <see cref="T:NetTopologySuite.Geometries.LineString"/>s
- which satisfies the <b>Vector-clean</b> condition.
- Note that this does not require the LineStrings to be fully noded
- - i.e. they may contain coincident linework.
- Coincident line segments are dissolved by the union.
- Currently linear output is not merged (this may be added in a future release.)
- <para/>
- No checking is done to determine whether the input is a valid coverage.
- This is because coverage validation involves segment intersection detection,
- which is much more expensive than the union phase.
- If the input is not a valid coverage
- then in some cases this will be detected during processing
- and a <see cref="T:NetTopologySuite.Geometries.TopologyException"/> is thrown.
- Otherwise, the computation will produce output, but it will be invalid.
- <para/>
- Unioning a valid coverage implies that no new vertices are created.
- This means that a precision model does not need to be specified.
- The precision of the vertices in the output geometry is not changed.
- </summary>
- <author>Martin Davis</author>
- <seealso cref="T:NetTopologySuite.Noding.BoundaryChainNoder"/>
- <seealso cref="T:NetTopologySuite.Noding.SegmentExtractingNoder"/>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.CoverageUnion.Union(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Unions a valid polygonal coverage or linear network.
- </summary>
- <param name="coverage">A coverage of polygons or lines</param>
- <returns>The union of the coverage</returns>
- <exception cref="T:NetTopologySuite.Geometries.TopologyException">Thrown in some cases if the coverage is invalid</exception>
- </member>
- <member name="T:NetTopologySuite.Operation.OverlayNG.Edge">
- <summary>
- Represents the linework for edges in a topology graph,
- derived from(up to) two parent geometries.
- An edge may be the result of the merging of
- two or more edges which have the same linework
- (although possibly different orientations).
- In this case the topology information is
- derived from the merging of the information in the
- source edges.<br/>
- Merged edges can occur in the following situations
- <list type="bullet">
- <item><description>Due to coincident edges of polygonal or linear geometries.</description></item>
- <item><description>Due to topology collapse caused by snapping or rounding
- of polygonal geometries.</description></item>
- </list>
- The source edges may have the same parent geometry,
- or different ones, or a mix of the two.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.Edge.IsCollapsed(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Tests if the given point sequence
- is a collapsed line.<para/>
- A collapsed edge has fewer than two distinct points.
- </summary>
- <param name="pts">The point sequence to check</param>
- <returns><c>true</c> if the points form a collapsed line</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.Edge.RelativeDirection(NetTopologySuite.Operation.OverlayNG.Edge)">
- <summary>
- Compares two coincident edges to determine
- whether they have the same or opposite direction.
- </summary>
- <param name="edge">An edge</param>
- <returns><c>true</c> if the edges have the same direction, <c>false</c> if not</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.Edge.InitLabel(NetTopologySuite.Operation.OverlayNG.OverlayLabel,System.Int32,NetTopologySuite.Geometries.Dimension,System.Int32,System.Boolean)">
- <summary>
- Populates the label for an edge resulting from an input geometry.
- <para/>
- <list type="bullet">
- <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>
- <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>
- <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>
- <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>
- </list>
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.Edge.IsShell(System.Int32)">
- <summary>
- Tests whether the edge is part of a shell in the given geometry.
- This is only the case if the edge is a boundary.
- </summary>
- <param name="geomIndex">The index of the geometry</param>
- <returns><c>true</c> if this edge is a boundary and part of a shell</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.Edge.Merge(NetTopologySuite.Operation.OverlayNG.Edge)">
- <summary>
- Merges an edge into this edge,
- updating the topology info accordingly.
- </summary>
- <param name="edge">The edge to merge</param>
- </member>
- <member name="T:NetTopologySuite.Operation.OverlayNG.EdgeKey">
- <summary>
- A key for sorting and comparing edges in a noded arrangement.
- Relies on the fact that in a correctly noded arrangement
- edges are identical (up to direction)
- if they have their first segment in common.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.EdgeKey.Equals(System.Object)">
- <inheritdoc cref="M:System.Object.Equals(System.Object)"/>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.EdgeKey.GetHashCode">
- <inheritdoc cref="M:System.Object.GetHashCode"/>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.EdgeKey.ToString">
- <inheritdoc cref="M:System.Object.ToString"/>
- </member>
- <member name="T:NetTopologySuite.Operation.OverlayNG.EdgeMerger">
- <summary>
- Performs merging on the noded edges of the input geometries.
- Merging takes place on edges which are coincident
- (i.e.have the same coordinate list, modulo direction).
- The following situations can occur:<para/>
- <list type="bullet">
- <item><description>Coincident edges from different input geometries have their labels combined</description></item>
- <item><description>Coincident edges from the same area geometry indicate a topology collapse.
- In this case the topology locations are "summed" to provide a final
- assignment of side location</description></item>
- <item><description>Coincident edges from the same linear geometry can simply be merged
- using the same ON location</description></item>
- </list>
- <para/>
- The merging attempts to preserve the direction of linear
- edges if possible(which is the case if there is
- no other coincident edge, or if all coincident edges have the same direction).
- This ensures that the overlay output line direction will be as consistent
- as possible with input lines.
- <para/>
- The merger also preserves the order of the edges in the input.
- This means that for polygon-line overlay
- the result lines will be in the same order as in the input
- (possibly with multiple result lines for a single input line).
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="T:NetTopologySuite.Operation.OverlayNG.EdgeNodingBuilder">
- <summary>
- Builds a set of noded, unique, labelled Edges from
- the edges of the two input geometries.
- <para/>
- It performs the following steps:
- <list type="bullet">
- <item><description>Extracts input edges, and attaches topological information</description></item>
- <item><description>if clipping is enabled, handles clipping or limiting input geometry</description></item>
- <item><description>chooses a <see cref="T:NetTopologySuite.Noding.INoder"/> based on provided precision model, unless a custom one is supplied</description></item>
- <item><description>calls the chosen Noder, with precision model</description></item>
- <item><description>removes any fully collapsed noded edges</description></item>
- <item><description>builds <see cref="T:NetTopologySuite.Operation.OverlayNG.Edge"/>s and merges them</description></item>
- </list>
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.EdgeNodingBuilder.#ctor(NetTopologySuite.Geometries.PrecisionModel,NetTopologySuite.Noding.INoder)">
- <summary>
- Creates a new builder, with an optional custom noder.
- If the noder is not provided, a suitable one will
- be used based on the supplied precision model.
- </summary>
- <param name="pm">The precision model to use</param>
- <param name="noder">An optional noder to use (may be null)</param>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.EdgeNodingBuilder.#ctor(NetTopologySuite.Geometries.PrecisionModel,NetTopologySuite.Algorithm.ElevationModel,NetTopologySuite.Noding.INoder)">
- <summary>
- Creates a new builder, with an optional custom noder.
- If the noder is not provided, a suitable one will
- be used based on the supplied precision model.
- </summary>
- <param name="pm">The precision model to use</param>
- <param name="em">The elevation model to use. May be <c>null</c></param>
- <param name="noder">An optional noder to use (may be null)</param>
- </member>
- <member name="P:NetTopologySuite.Operation.OverlayNG.EdgeNodingBuilder.Noder">
- <summary>
- Gets or sets a noder appropriate for the precision model supplied.<br/>
- This is one of:
- <list type="bullet">
- <item><term>Fixed precision:</term><description>a snap-rounding noder (which should be fully robust)</description></item>
- <item><term>Floating precision:</term><description>a conventional noder (which may be non-robust).
- In this case, a validation step is applied to the output from the noder.</description></item>
- </list>
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.EdgeNodingBuilder.HasEdgesFor(System.Int32)">
- <summary>
- Reports whether there are noded edges
- for the given input geometry.
- If there are none, this indicates that either
- the geometry was empty, or has completely collapsed
- (because it is smaller than the noding precision).
- </summary>
- <param name="geomIndex">index of the input geometry</param>
- <returns><c>true</c> if there are edges for the geometry</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.EdgeNodingBuilder.Build(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Creates a set of labelled {Edge}s.
- representing the fully noded edges of the input geometries.
- Coincident edges (from the same or both geometries)
- are merged along with their labels
- into a single unique, fully labelled edge.
- </summary>
- <param name="geom0">The first geometry</param>
- <param name="geom1">The second geometry</param>
- <returns>The noded, merged, labelled edges</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.EdgeNodingBuilder.Node(System.Collections.Generic.IList{NetTopologySuite.Noding.ISegmentString})">
- <summary>
- Nodes a set of segment strings and creates <see cref="T:NetTopologySuite.Operation.OverlayNG.Edge"/>s from the result.
- The input segment strings each carry a <see cref="T:NetTopologySuite.Operation.OverlayNG.EdgeSourceInfo"/> object,
- which is used to provide source topology info to the constructed Edges
- (and then is discarded).
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.EdgeNodingBuilder.AddPolygonRing(NetTopologySuite.Geometries.LinearRing,System.Boolean,System.Int32)">
- <summary>
- Adds a polygon ring to the graph.
- </summary>
- <remarks>Empty rings are ignored.</remarks>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.EdgeNodingBuilder.IsClippedCompletely(NetTopologySuite.Geometries.Envelope)">
- <summary>
- Tests whether a geometry (represented by its envelope)
- lies completely outside the clip extent(if any).
- </summary>
- <param name="env">The geometry envelope</param>
- <returns><c>true</c> if the geometry envelope is outside the clip extent.</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.EdgeNodingBuilder.Clip(NetTopologySuite.Geometries.LinearRing)">
- <summary>
- If clipper is present,
- clip the line to the clip extent.
- <para/>
- If clipping is enabled, then every ring MUST
- be clipped, to ensure that holes are clipped to
- be inside the shell.
- This means it is not possible to skip
- clipping for rings with few vertices.
- </summary>
- <param name="ring">The line to clip</param>
- <returns>The points in the clipped ring</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.EdgeNodingBuilder.RemoveRepeatedPoints(NetTopologySuite.Geometries.LineString)">
- <summary>
- Removes any repeated points from a linear component.
- This is required so that noding can be computed correctly.
- </summary>
- <param name="line">The line to process</param>
- <returns>The points of the line with repeated points removed</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.EdgeNodingBuilder.AddLine(NetTopologySuite.Geometries.LineString,System.Int32)">
- <summary>
- Adds a line geometry, limiting it if enabled,
- and otherwise removing repeated points.
- </summary>
- <param name="line">The line to add</param>
- <param name="geomIndex">The index of the parent geometry</param>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.EdgeNodingBuilder.IsToBeLimited(NetTopologySuite.Geometries.LineString)">
- <summary>
- Tests whether it is worth limiting a line.
- Lines that have few vertices or are covered
- by the clip extent do not need to be limited.
- </summary>
- <param name="line">The line to test</param>
- <returns><c>true</c> if the line should be limited</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.EdgeNodingBuilder.Limit(NetTopologySuite.Geometries.LineString)">
- <summary>
- If limiter is provided,
- limit the line to the clip envelope.
- </summary>
- <param name="line">The line to clip</param>
- <returns>the point sections in the clipped line</returns>
- </member>
- <member name="T:NetTopologySuite.Operation.OverlayNG.EdgeSourceInfo">
- <summary>
- Records topological information about an
- edge representing a piece of linework (lineString or polygon ring)
- from a single source geometry.
- This information is carried through the noding process
- (which may result in many noded edges sharing the same information object).
- It is then used to populate the topology info fields
- in <see cref="T:NetTopologySuite.Operation.OverlayNG.Edge"/>s (possibly via merging).
- That information is used to construct the topology graph <see cref="T:NetTopologySuite.Operation.OverlayNG.OverlayLabel"/>s.
- </summary>
- <autor>Martin Davis</autor>
- </member>
- <member name="T:NetTopologySuite.Operation.OverlayNG.ElevationModel">
- <summary>A simple elevation model used to populate missing Z values
- in overlay results.
- <para/>
- The model divides the extent of the input geometry(s)
- into an NxM grid.
- The default grid size is 3x3.
- If the input has no extent in the X or Y dimension,
- that dimension is given grid size 1.
- The elevation of each grid cell is computed as the average of the Z values
- of the input vertices in that cell (if any).
- If a cell has no input vertices within it, it is assigned
- the average elevation over all cells.
- <para/>
- If no input vertices have Z values, the model does not assign a Z value.
- <para/>
- The elevation of an arbitrary location is determined as the
- Z value of the nearest grid cell.
- <para/>
- An elevation model can be used to populate missing Z values
- in an overlay result geometry.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.ElevationModel.Create(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Creates an elevation model from two geometries (which may be null).
- </summary>
- <param name="geom1">An input geometry</param>
- <param name="geom2">An input geometry</param>
- <returns>The elevation model computed from the geometries</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.ElevationModel.#ctor(NetTopologySuite.Geometries.Envelope,System.Int32,System.Int32)">
- <summary>
- Creates a new elevation model covering an extent by a grid of given dimensions.
- </summary>
- <param name="extent">The XY extent to cover</param>
- <param name="numCellX">The number of grid cells in the X dimension</param>
- <param name="numCellY">The number of grid cells in the Y dimension</param>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.ElevationModel.Add(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Updates the model using the Z values of a given geometry.
- </summary>
- <param name="geom">The geometry to scan for Z values.</param>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.ElevationModel.GetZ(System.ReadOnlySpan{System.Double},System.Span{System.Double})">
- <summary>
- Gets the model Z value at a given location.
- If the location lies outside the model grid extent,
- this returns the Z value of the nearest grid cell.
- If the model has no elevation computed (i.e. due
- to empty input), the value is returned as <see cref="F:System.Double.NaN"/>
- </summary>
- <param name="xy">xy-ordinate of the location</param>
- <param name="z">z-ordinate of the location</param>
- <returns>The computed Z value</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.ElevationModel.PopulateZ(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes Z values for any missing Z values in a geometry,
- using the computed model.
- If the model has no Z value, or the geometry coordinate dimension
- does not include Z, the geometry is not updated.
- </summary>
- <param name="geom">The geometry to populate Z values for</param>
- </member>
- <member name="T:NetTopologySuite.Operation.OverlayNG.IndexedPointOnLineLocator">
- <summary>
- Locates points on a linear geometry,
- using a spatial index to provide good performance.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="T:NetTopologySuite.Operation.OverlayNG.InputGeometry">
- <summary>
- Manages the input geometries for an overlay operation.
- The second geometry is allowed to be null,
- to support for instance precision reduction.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.InputGeometry.GetAreaIndex">
- <summary>
- Gets the index of an input which is an area,
- if one exists.
- Otherwise returns -1.
- </summary>
- <returns>The index of an area input, or -1</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.InputGeometry.HasEdges(System.Int32)">
- <summary>
- Tests if an input geometry has edges.
- This indicates that topology needs to be computed for them.
- </summary>
- <param name="geomIndex"></param>
- <returns><c>true</c> if the input geometry has edges</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.InputGeometry.LocatePointInArea(System.Int32,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Determines the location within an area geometry.
- This allows disconnected edges to be fully
- located.
- </summary>
- <param name="geomIndex">The index of the geometry</param>
- <param name="pt">The coordinate to locate</param>
- <returns>The location of the coordinate</returns>
- <seealso cref="T:NetTopologySuite.Geometries.Location"/>
- </member>
- <member name="T:NetTopologySuite.Operation.OverlayNG.IntersectionPointBuilder">
- <summary>
- Extracts Point resultants from an overlay graph
- created by an Intersection operation
- between non-Point inputs.
- Points may be created during intersection
- if lines or areas touch one another at single points.
- Intersection is the only overlay operation which can
- result in Points from non-Point inputs.
- <para/>
- Overlay operations where one or more inputs
- are Points are handled via a different code path.
- </summary>
- <author>Martin Davis</author>
- <seealso cref="T:NetTopologySuite.Operation.OverlayNG.OverlayPoints"/>
- </member>
- <member name="F:NetTopologySuite.Operation.OverlayNG.IntersectionPointBuilder._isAllowCollapseLines">
- <summary>
- Controls whether lines created by area topology collapses
- to participate in the result computation. <br/>
- True provides the original JTS semantics.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.IntersectionPointBuilder.IsResultPoint(NetTopologySuite.Operation.OverlayNG.OverlayEdge)">
- <summary>
- Tests if a node is a result point.
- This is the case if the node is incident on edges from both
- inputs, and none of the edges are themselves in the result.
- </summary>
- <param name="nodeEdge">An edge originating at the node</param>
- <returns><c>true</c> if the node is a result point.</returns>
- </member>
- <member name="T:NetTopologySuite.Operation.OverlayNG.LineBuilder">
- <summary>
- Finds and builds overlay result lines from the overlay graph.
- Output linework has the following semantics:
- <list type="number">
- <item><description>Linework is fully noded</description></item>
- <item><description>Lines are as long as possible between nodes</description></item>
- </list>
- Various strategies are possible for how to
- merge graph edges into lines.
- This implementation uses the approach
- of having output lines run contiguously from node to node.
- For rings a node point is chosen arbitrarily.
- <para/>
- Another possible strategy would be to preserve input linework
- as far as possible (i.e.any sections of input lines which are not
- coincident with other linework would be preserved).
- <para/>
- It would also be possible to output LinearRings,
- if the input is a LinearRing and is unchanged.
- This will require additional info from the input linework.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="F:NetTopologySuite.Operation.OverlayNG.LineBuilder._isAllowMixedResult">
- <summary>
- Indicates whether intersections are allowed to produce
- heterogeneous results including proper boundary touches.
- This does not control inclusion of touches along collapses.<br/>
- True provides the original JTS semantics.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.OverlayNG.LineBuilder._isAllowCollapseLines">
- <summary>
- Allow lines created by area topology collapses
- to appear in the result.<br/>
- True provides the original JTS semantics.
- </summary>
- </member>
- <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)">
- <summary>
- Creates a builder for linear elements which may be present
- in the overlay result.
- </summary>
- <param name="inputGeom">The input geometries</param>
- <param name="graph">The topology graph</param>
- <param name="hasResultArea"><c>true</c> if an area has been generated for the result</param>
- <param name="opCode">The overlay operation code</param>
- <param name="geomFact">The output geometry factory</param>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.LineBuilder.IsResultLine(NetTopologySuite.Operation.OverlayNG.OverlayLabel)">
- <summary>
- Checks if the topology indicated by an edge label
- determines that this edge should be part of a result line.
- <para/>
- Note that the logic here relies on the semantic
- that for intersection lines are only returned if
- there is no result area components.
- </summary>
- <param name="lbl">The label for an edge</param>
- <returns><c>true</c> if the edge should be included in the result</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.LineBuilder.EffectiveLocation(NetTopologySuite.Operation.OverlayNG.OverlayLabel,System.Int32)">
- <summary>
- Determines the effective location for a line,
- for the purpose of overlay operation evaluation.
- Line edges and Collapses are reported as INTERIOR
- so they may be included in the result
- if warranted by the effect of the operation on the two edges.
- (For instance, the intersection of a line edge and a collapsed boundary
- is included in the result).
- </summary>
- <param name="lbl">The label of line</param>
- <param name="geomIndex">The index of parent geometry</param>
- <returns>The effective location of the line</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.LineBuilder.AddResultLinesRings">
- <summary>
- Adds lines which form rings (i.e. have only degree-2 vertices).
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.LineBuilder.BuildLine(NetTopologySuite.Operation.OverlayNG.OverlayEdge)">
- <summary>
- Traverses edges from edgeStart which
- lie in a single line (have degree = 2).
- <para/>
- The direction of the linework is preserved as far as possible.
- Specifically, the direction of the line is determined
- by the start edge direction. This implies
- that if all edges are reversed, the created line
- will be reversed to match.
- This ensures the orientation of linework is faithful to the input
- in the case of polygon-line overlay.
- However, this does not provide a consistent orientation
- in the case of line-line intersection(where A and B might have different orientations).
- (Other more complex strategies would be possible.
- E.g. using the direction of the majority of segments,
- or preferring the direction of the A edges.)
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.LineBuilder.NextLineEdgeUnvisited(NetTopologySuite.Operation.OverlayNG.OverlayEdge)">
- <summary>
- Finds the next edge around a node which forms
- part of a result line.
- </summary>
- <param name="node">A line edge originating at the node to be scanned</param>
- <returns>The next line edge, or null if there is none
- </returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.LineBuilder.DegreeOfLines(NetTopologySuite.Operation.OverlayNG.OverlayEdge)">
- <summary>
- Computes the degree of the line edges incident on a node
- </summary>
- <param name="node">Node to compute degree for</param>
- <returns>Degree of the node line edges</returns>
- </member>
- <member name="T:NetTopologySuite.Operation.OverlayNG.LineLimiter">
- <summary>
- Limits the segments in a list of segments
- to those which intersect an envelope.
- This creates zero or more sections of the input segment sequences,
- containing only line segments which intersect the limit envelope.
- Segments are not clipped, since that can move
- line segments enough to alter topology,
- and it happens in the overlay in any case.
- This can substantially reduce the number of vertices which need to be
- processed during overlay.
- <para/>
- This optimization is only applicable to Line geometries,
- since it does not maintain the closed topology of rings.
- Polygonal geometries are optimized using the <see cref="T:NetTopologySuite.Operation.OverlayNG.RingClipper"/>.
- </summary>
- <seealso cref="T:NetTopologySuite.Operation.OverlayNG.RingClipper"/>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.LineLimiter.#ctor(NetTopologySuite.Geometries.Envelope)">
- <summary>
- Creates a new limiter for a given envelope.
- </summary>
- <param name="env">The envelope to limit to</param>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.LineLimiter.Limit(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Coordinate})">
- <summary>
- Limits a list of segments.
- </summary>
- <param name="pts">The segment sequence to limit</param>
- <returns>The sections which intersect the limit envelope</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.MaximalEdgeRing.LinkResultAreaMaxRingAtNode(NetTopologySuite.Operation.OverlayNG.OverlayEdge)">
- <summary>
- Traverses the star of edges originating at a node
- and links consecutive result edges together
- into <b>maximal</b> edge rings.
- To link two edges the <c>resultNextMax</c> pointer
- for an <b>incoming</b> result edge
- is set to the next <b>outgoing</b> result edge.
- <para/>
- Edges are linked when:
- <list type="bullet">
- <item><description>they belong to an area (i.e.they have sides)</description></item>
- <item><description>they are marked as being in the result</description></item>
- </list>
- <para/>
- Edges are linked in CCW order
- (which is the order they are linked in the underlying graph).
- This means that rings have their face on the Right
- (in other words,
- the topological location of the face is given by the RHS label of the DirectedEdge).
- This produces rings with CW orientation.
- <para/>
- PRECONDITIONS: <br/>
- - This edge is in the result<br/>
- - This edge is not yet linked<br/>
- - The edge and its sym are NOT both marked as being in the result
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.MaximalEdgeRing.LinkMinRingEdgesAtNode(NetTopologySuite.Operation.OverlayNG.OverlayEdge,NetTopologySuite.Operation.OverlayNG.MaximalEdgeRing)">
- <summary>
- Links the edges of a <see cref="T:NetTopologySuite.Operation.OverlayNG.MaximalEdgeRing"/> around this node
- into minimal edge rings (<see cref="T:NetTopologySuite.Operation.OverlayNG.OverlayEdgeRing"/>s).
- Minimal ring edges are linked in the opposite orientation (CW)
- to the maximal ring.
- This changes self-touching rings into a two or more separate rings,
- as per the OGC SFS polygon topology semantics.
- This relinking must be done to each max ring separately,
- rather than all the node result edges, since there may be
- more than one max ring incident at the node.
- </summary>
- <param name="maxRing">The maximal ring to link</param>
- <param name="nodeEdge">An edge originating at this node</param>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.MaximalEdgeRing.IsAlreadyLinked(NetTopologySuite.Operation.OverlayNG.OverlayEdge,NetTopologySuite.Operation.OverlayNG.MaximalEdgeRing)">
- <summary>
- Tests if an edge of the maximal edge ring is already linked into
- a minimal <see cref="T:NetTopologySuite.Operation.OverlayNG.OverlayEdgeRing"/>. If so, this node has already been processed
- earlier in the maximal edgering linking scan.
- </summary>
- <param name="edge">An edge of a maximal edgering</param>
- <param name="maxRing">The maximal edgering</param>
- <returns><c>true</c> if the edge has already been linked into a minimal edgering.</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayEdge.CreateEdge(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.Operation.OverlayNG.OverlayLabel,System.Boolean)">
- <summary>
- Creates a single OverlayEdge.
- </summary>
- <param name="pts"></param>
- <param name="lbl"></param>
- <param name="direction"></param>
- <returns>A new edge based on the given coordinates and direction.</returns>
- </member>
- <member name="P:NetTopologySuite.Operation.OverlayNG.OverlayEdge.NodeComparator">
- <summary>
- Gets a <see cref="T:System.Collections.Generic.IComparer`1"/> which sorts by the origin Coordinates.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Operation.OverlayNG.OverlayEdge.IsForward">
- <summary>
- <c>true</c> indicates direction is forward along segString<br/>
- <c>false</c> is reverse direction<br/>
- The label must be interpreted accordingly.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayEdge.AddCoordinates(NetTopologySuite.Geometries.CoordinateList)">
- <summary>
- Adds the coordinates of this edge to the given list,
- in the direction of the edge.
- Duplicate coordinates are removed
- (which means that this is safe to use for a path
- of connected edges in the topology graph).
- </summary>
- <param name="coords">The coordinate list to add to</param>
- </member>
- <member name="P:NetTopologySuite.Operation.OverlayNG.OverlayEdge.SymOE">
- <summary>
- ets the symmetric pair edge of this edge.
- </summary>
- <returns>The symmetric pair edge</returns>
- </member>
- <member name="P:NetTopologySuite.Operation.OverlayNG.OverlayEdge.ONextOE">
- <summary>
- Gets the next edge CCW around the origin of this edge,
- with the same origin.<br/>
- If the origin vertex has degree 1 then this is the edge itself.
- </summary>
- <returns>
- The next edge around the origin
- </returns>
- </member>
- <member name="P:NetTopologySuite.Operation.OverlayNG.OverlayEdge.NextResult">
- <summary>
- Gets or sets a link to next edge in the result ring.
- The origin of the edge is the dest of this edge.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Operation.OverlayNG.OverlayEdgeRing.IsHole">
- <summary>
- Tests whether this ring is a hole.
- </summary>
- <value><c>true</c> if this ring is a hole</value>
- </member>
- <member name="P:NetTopologySuite.Operation.OverlayNG.OverlayEdgeRing.HasShell">
- <summary>
- Tests whether this ring has a shell assigned to it.
- </summary>
- <value><c>true</c> if the ring has a shell</value>
- </member>
- <member name="P:NetTopologySuite.Operation.OverlayNG.OverlayEdgeRing.Shell">
- <summary>
- Gets or sets a value indicating the shell for this ring.<br/>
- The shell is the ring itself if it is not a hole, otherwise its parent shell.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Operation.OverlayNG.OverlayEdgeRing.Coordinates">
- <summary>
- Computes the list of coordinates which are contained in this ring.
- The coordinates are computed once only and cached.
- </summary>
- <value>An array of the <see cref="P:NetTopologySuite.Operation.OverlayNG.OverlayEdgeRing.Coordinate"/>s in this ring</value>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayEdgeRing.FindEdgeRingContaining(System.Collections.Generic.IEnumerable{NetTopologySuite.Operation.OverlayNG.OverlayEdgeRing})">
- <summary>
- Finds the innermost enclosing shell OverlayEdgeRing
- containing this OverlayEdgeRing, if any.
- The innermost enclosing ring is the <i>smallest</i> enclosing ring.
- The algorithm used depends on the fact that:
- <br/>
- ring A contains ring B if envelope(ring A) contains envelope(ring B)
- <br/>
- This routine is only safe to use if the chosen point of the hole
- is known to be properly contained in a shell
- (which is guaranteed to be the case if the hole does not touch its shell)
- <para/>
- To improve performance of this function the caller should
- make the passed shellList as small as possible (e.g.
- by using a spatial index filter beforehand).
- </summary>
- <returns>The containing EdgeRing or <c>null</c> if no containing EdgeRing is found
- </returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayEdgeRing.Contains(NetTopologySuite.Operation.OverlayNG.OverlayEdgeRing)">
- <summary>
- Tests if an edgeRing is properly contained in this ring.
- Relies on property that edgeRings never overlap (although they may
- touch at single vertices).
- </summary>
- <param name="ring">The ring to test</param>
- <returns><c>true</c> if the ring is properly contained</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayEdgeRing.ToPolygon(NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
- Computes the <see cref="T:NetTopologySuite.Geometries.Polygon"/> formed by this ring and any contained holes.
- </summary>
- <returns>The <see cref="T:NetTopologySuite.Geometries.Polygon"/> formed by this ring and its holes.</returns>
- </member>
- <member name="T:NetTopologySuite.Operation.OverlayNG.OverlayGraph">
- <summary>
- A planar graph of edges, representing
- the topology resulting from an overlay operation.
- Each source edge is represented
- by a pair of <see cref="T:NetTopologySuite.Operation.OverlayNG.OverlayEdge"/>s,
- with opposite(symmetric) orientation.
- The pair of OverlayEdges share the edge coordinates
- and a single <see cref="T:NetTopologySuite.Operation.OverlayNG.OverlayLabel"/>.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="P:NetTopologySuite.Operation.OverlayNG.OverlayGraph.Edges">
- <summary>
- Gets the set of edges in this graph.
- Only one of each symmetric pair of OverlayEdges is included.
- The opposing edge can be found by using <see cref="P:NetTopologySuite.EdgeGraph.HalfEdge.Sym"/>.
- </summary>
- <returns>The collection of representative edges in this graph</returns>
- </member>
- <member name="P:NetTopologySuite.Operation.OverlayNG.OverlayGraph.NodeEdges">
- <summary>
- Gets the collection of edges representing the nodes in this graph.
- For each star of edges originating at a node
- a single representative edge is included.<br/>
- The other edges around the node can be found by following the next and prev links.
- </summary>
- <returns>The collection of representative node edges</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayGraph.GetNodeEdge(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Gets an edge originating at the given node point.
- </summary>
- <param name="nodePt">The node coordinate to query</param>
- <returns>An edge originating at the point, or <c>null</c> if none exists</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayGraph.GetResultAreaEdges">
- <summary>
- Gets the representative edges marked as being in the result area.
- </summary>
- <returns>The result area edges</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayGraph.AddEdge(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.Operation.OverlayNG.OverlayLabel)">
- <summary>
- Adds an edge between the coordinates orig and dest
- to this graph.<br/>
- Only valid edges can be added (in particular, zero-length segments cannot be added)
- </summary>
- <param name="pts">The edge to add.</param>
- <param name="label">The edge topology information</param>
- <returns>The created graph edge with same orientation as the linework</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayGraph.Insert(NetTopologySuite.Operation.OverlayNG.OverlayEdge)">
- <summary>
- Inserts a single half-edge into the graph.
- The sym edge must also be inserted.
- </summary>
- <param name="e">The half-edge to insert</param>
- </member>
- <member name="T:NetTopologySuite.Operation.OverlayNG.OverlayLabel">
- <summary>
- A structure recording the topological situation
- for an edge in a topology graph
- used during overlay processing.
- </summary>
- <remarks>
- A label contains the topological <see cref="T:NetTopologySuite.Geometries.Location"/> for
- one or two input geometries to an overlay operation.
- An input geometry may be either a Line or an Area.
- The label locations for each input geometry are populated
- with the <see cref="T:NetTopologySuite.Geometries.Location"/>
- for the edge <see cref="T:NetTopologySuite.Geometries.Position"/>s
- when they are created or once they are computed by topological evaluation.
- A label also records the(effective) dimension of each input geometry.
- For area edges the role(shell or hole)
- of the originating ring is recorded, to allow
- determination of edge handling in collapse cases.
- <para/>
- In an <see cref="T:NetTopologySuite.Operation.OverlayNG.OverlayGraph"/>
- a single label is shared between
- the two oppositely-oriented <see cref="T:NetTopologySuite.Operation.OverlayNG.OverlayEdge"/>s
- of a symmetric pair.
- Accessors for orientation-sensitive information
- are parameterized by the orientation of the containing edge.
- <para/>
- For each input geometry (0 and 1), the label records
- that an edge is in one of the following states
- (identified by the<c>dim</c> field).
- Each state has additional information about the edge topology.
- <list type="bullet">
- <item><description>A <b>Boundary</b> edge of an Area (polygon)
- <list type="bullet">
- <item><description><c>dim</c> = DIM_BOUNDARY</description></item>
- <item><description><c>locLeft, locRight</c> : the locations of the edge sides for the Area</description></item>
- <item><description><c>locLine</c> : INTERIOR</description></item>
- <item><description><c>isHole</c> : whether the edge is in a shell or a hole (the ring role)</description></item>
- </list>
- </description>
- </item>
- <item><description>A <b>Collapsed</b> edge of an input Area
- (formed by merging two or more parent edges)
- <list type="bullet">
- <item><description><c>dim</c> = DIM_COLLAPSE</description></item>
- <item><description><c>locLine</c> : the location of the edge relative to the effective input Area
- (a collapsed spike is EXTERIOR, a collapsed gore or hole is INTERIOR)</description></item>
- <item><description><c>isHole</c> : <c>true</c> if all parent edges are in holes;
- <c>false</c> if some parent edge is in a shell</description></item>
-
- </list></description>
- </item>
- <item><description>A <b>Line</b> edge from an input line
- <list type="bullet">
- <item><description><c>dim</c> = DIM_LINE</description></item>
- <item><description><c>locLine </c> : the location of the edge relative to the Line.
- Initialized to LOC_UNKNOWN to simplify logic.</description></item>
- </list></description>
- </item>
- <item><description>An edge which is <b>Not Part</b> of an input geometry
- (and thus must be part of the other geometry).
- <list type="bullet">
- <item><description><c>dim</c> = NOT_PART</description></item>
- </list></description>
- </item>
- </list>
- Note that:
- <list type="bullet">
- <item><description>an edge cannot be both a Collapse edge and a Line edge in the same input geometry,
- because each input geometry must be homogeneous.</description></item>
- <item><description>an edge may be an Boundary edge in one input geometry
- and a Line or Collapse edge in the other input.</description></item>
- </list>
- </remarks>
- <author>Martin Davis</author>
- </member>
- <member name="F:NetTopologySuite.Operation.OverlayNG.OverlayLabel.DIM_UNKNOWN">
- <summary>
- The dimension of an input geometry which is not known.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.OverlayNG.OverlayLabel.DIM_NOT_PART">
- <summary>
- The dimension of an edge which is not part of a specified input geometry.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.OverlayNG.OverlayLabel.DIM_LINE">
- <summary>
- The dimension of an edge which is a line.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.OverlayNG.OverlayLabel.DIM_BOUNDARY">
- <summary>
- The dimension for an edge which is part of an input Area geometry boundary.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.OverlayNG.OverlayLabel.DIM_COLLAPSE">
- <summary>
- The dimension for an edge which is a collapsed part of an input Area geometry boundary.
- A collapsed edge represents two or more line segments which have the same endpoints.
- They usually are caused by edges in valid polygonal geometries
- having their endpoints become identical due to precision reduction.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.OverlayNG.OverlayLabel.LOC_UNKNOWN">
- <summary>
- Indicates that the location is currently unknown
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.#ctor(System.Int32,NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Location,System.Boolean)">
- <summary>
- Creates a label for an Area edge
- </summary>
- <param name="index">The input index of the parent geometry</param>
- <param name="locLeft">The location of the left side of the edge</param>
- <param name="locRight">The location of the right side of the edge</param>
- <param name="isHole">Whether the edge role is a hole or a shell</param>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.#ctor(System.Int32)">
- <summary>
- Creates a label for a Line edge
- </summary>
- <param name="index">The input index of the parent geometry</param>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.#ctor">
- <summary>
- Creates an uninitialized label
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.#ctor(NetTopologySuite.Operation.OverlayNG.OverlayLabel)">
- <summary>
- Creates a label which is a copy of another label.
- </summary>
- <param name="lbl">The template label</param>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.Dimension(System.Int32)">
- <summary>
- Gets the effective dimension of the given input geometry.
- </summary>
- <param name="index">The input index of the parent geometry</param>
- <returns>The dimension</returns>
- <seealso cref="F:NetTopologySuite.Operation.OverlayNG.OverlayLabel.DIM_UNKNOWN"/>
- <seealso cref="F:NetTopologySuite.Operation.OverlayNG.OverlayLabel.DIM_NOT_PART"/>
- <seealso cref="F:NetTopologySuite.Operation.OverlayNG.OverlayLabel.DIM_LINE"/>
- <seealso cref="F:NetTopologySuite.Operation.OverlayNG.OverlayLabel.DIM_BOUNDARY"/>
- <seealso cref="F:NetTopologySuite.Operation.OverlayNG.OverlayLabel.DIM_COLLAPSE"/>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.InitBoundary(System.Int32,NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Location,System.Boolean)">
- <summary>
- Initializes the label for an input geometry which is an Area boundary.
- </summary>
- <param name="index">The input index of the parent geometry</param>
- <param name="locLeft">The location of the left side of the edge</param>
- <param name="locRight">The location of the right side of the edge</param>
- <param name="isHole">Whether the edge role is a hole or a shell</param>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.InitCollapse(System.Int32,System.Boolean)">
- <summary>
- Initializes the label for an edge which is the collapse of
- part of the boundary of an Area input geometry.
- <para/>
- The location of the collapsed edge relative to the
- parent area geometry is initially unknown.
- It must be determined from the topology of the overlay graph
- </summary>
- <param name="index">The index of the parent input geometry</param>
- <param name="isHole">Whether the dominant edge role is a hole or a shell</param>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.InitLine(System.Int32)">
- <summary>
- Initializes the label for an input geometry which is a Line.
- </summary>
- <param name="index">The index of the parent input geometry</param>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.InitNotPart(System.Int32)">
- <summary>
- Initializes the label for an edge which is not part of an input geometry.
- </summary>
- <param name="index">The index of the parent input geometry</param>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.SetLocationLine(System.Int32,NetTopologySuite.Geometries.Location)">
- <summary>
- Sets the line location.
- <br/>
- This is used to set the locations for linear edges
- encountered during area label propagation.
- </summary>
- <param name="index">The index of the input geometry</param>
- <param name="loc">Location to set</param>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.SetLocationAll(System.Int32,NetTopologySuite.Geometries.Location)">
- <summary>
- Sets the location of all postions for a given input.
- </summary>
- <param name="index">The index of the input geometry</param>
- <param name="loc">The location to set</param>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.SetLocationCollapse(System.Int32)">
- <summary>
- Sets the location for a collapsed edge (the Line position)
- for an input geometry,
- depending on the ring role recorded in the label.
- If the input geometry edge is from a shell,
- the location is <see cref="F:NetTopologySuite.Geometries.Location.Exterior"/>, if it is a hole
- it is <see cref="F:NetTopologySuite.Geometries.Location.Interior"/>.
- </summary>
- <param name="index">The index of the input geometry</param>
- </member>
- <member name="P:NetTopologySuite.Operation.OverlayNG.OverlayLabel.IsLine">
- <summary>
- Tests whether at least one of the sources is a Line.
- </summary>
- <value><c>true</c> if at least one source is a line</value>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.IsLineAt(System.Int32)">
- <summary>
- Tests whether a source is a Line.
- </summary>
- <param name="index">The index of the input geometry</param>
- <returns><c>true</c> if the input is a Line</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.IsLinear(System.Int32)">
- <summary>
- Tests whether an edge is linear (a Line or a Collapse) in an input geometry.
- </summary>
- <param name="index">The index of the input geometry</param>
- <returns><c>true</c> if the edge is linear</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.IsKnown(System.Int32)">
- <summary>
- Tests whether the source of a label is known.
- </summary>
- <param name="index">The index of the input geometry</param>
- <returns><c>true</c> if the source is known</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.IsNotPart(System.Int32)">
- <summary>
- Tests whether a label is for an edge which is not part
- of a given input geometry.
- </summary>
- <param name="index">The index of the input geometry</param>
- <returns><c>true</c> if the edge is not part of the geometry</returns>
- </member>
- <member name="P:NetTopologySuite.Operation.OverlayNG.OverlayLabel.IsBoundaryEither">
- <summary>
- Gets a value indicating if a label is for an edge which is in the boundary of either source geometry.
- </summary>
- <returns><c>true</c> if the label is a boundary for either source</returns>
- </member>
- <member name="P:NetTopologySuite.Operation.OverlayNG.OverlayLabel.IsBoundaryBoth">
- <summary>
- Gets a value indicating if a label is for an edge which is in the boundary of both source geometries.
- </summary>
- <returns><c>true</c> if the label is a boundary for both sources</returns>
- </member>
- <member name="P:NetTopologySuite.Operation.OverlayNG.OverlayLabel.IsBoundaryCollapse">
- <summary>
- Tests if the label is a collapsed edge of one area
- and is a(non-collapsed) boundary edge of the other area.
- </summary>
- <value><c>true</c> if the label is for a collapse coincident with a boundary</value>
- </member>
- <member name="P:NetTopologySuite.Operation.OverlayNG.OverlayLabel.IsBoundaryTouch">
- <summary>
- Tests if a label is for an edge where two
- area touch along their boundary.
- </summary>
- <returns><c>true</c> if the edge is a boundary touch</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.IsBoundary(System.Int32)">
- <summary>
- Tests if a label is for an edge which is in the boundary of a source geometry.
- Collapses are not reported as being in the boundary.
- </summary>
- <param name="index">The index of the input geometry</param>
- <returns><c>true</c> if the label is a boundary for the source</returns>
- </member>
- <member name="P:NetTopologySuite.Operation.OverlayNG.OverlayLabel.IsBoundarySingleton">
- <summary>
- Tests whether a label is for an edge which is a boundary of one geometry
- and not part of the other.
- </summary>
- <returns><c>true</c> if the edge is a boundary singleton</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.IsLineLocationUnknown(System.Int32)">
- <summary>
- Tests if the line location for a source is unknown.
- </summary>
- <param name="index">The index of the input geometry</param>
- <returns><c>true</c> if the line location is unknown</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.IsLineInArea(System.Int32)">
- <summary>
- Tests if a line edge is inside a source geometry
- (i.e.it has location <see cref="F:NetTopologySuite.Geometries.Location.Interior"/>).
- </summary>
- <param name="index">The index of the input geometry</param>
- <returns><c>true</c> if the line is inside the source geometry</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.IsHole(System.Int32)">
- <summary>
- Tests if the ring role of an edge is a hole.
- </summary>
- <param name="index">The index of the input geometry</param>
- <returns><c>true</c> if the ring role is a hole</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.IsCollapse(System.Int32)">
- <summary>
- Tests if an edge is a Collapse for a source geometry.
- </summary>
- <param name="index">The index of the input geometry</param>
- <returns><c>true</c> if the label indicates the edge is a collapse for the source</returns>
- </member>
- <member name="P:NetTopologySuite.Operation.OverlayNG.OverlayLabel.IsInteriorCollapse">
- <summary>
- Tests if a label is a Collapse has location {@link Location#INTERIOR},
- to at least one source geometry.
- </summary>
- <returns><c>true</c> if the label is an Interior Collapse to a source geometry</returns>
- </member>
- <member name="P:NetTopologySuite.Operation.OverlayNG.OverlayLabel.IsCollapseAndNotPartInterior">
- <summary>
- Tests if a label is a Collapse
- and NotPart with location {@link Location#INTERIOR} for the other geometry.
- </summary>
- <returns><c>true</c> if the label is a Collapse and a NotPart with Location Interior</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.GetLineLocation(System.Int32)">
- <summary>
- Gets the line location for a source geometry.
- </summary>
- <param name="index">The index of the input geometry</param>
- <returns>The line location for the source</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.IsLineInterior(System.Int32)">
- <summary>
- Tests if a line is in the interior of a source geometry.
- </summary>
- <param name="index">The index of the source geometry</param>
- <returns><c>true</c> if the label is a line and is interior</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.GetLocation(System.Int32,NetTopologySuite.Geometries.Position,System.Boolean)">
- <summary>
- Gets the location for a <see cref="T:NetTopologySuite.Geometries.Position"/> of an edge of a source
- for an edge with given orientation.
- </summary>
- <param name="index">The index of the input geometry</param>
- <param name="position">The position to get the location for</param>
- <param name="isForward"><c>true</c> if the orientation of the containing edge is forward</param>
- <returns>The location of the oriented position in the source</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.GetLocationBoundaryOrLine(System.Int32,NetTopologySuite.Geometries.Position,System.Boolean)">
- <summary>
- Gets the location for this label for either
- a Boundary or a Line edge.
- This supports a simple determination of
- whether the edge should be included as a result edge.
- </summary>
- <param name="index">The source index</param>
- <param name="position">The position for a boundary label</param>
- <param name="isForward">The direction for a boundary label</param>
- <returns>The location for the specified position</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.GetLocation(System.Int32)">
- <summary>
- Gets the linear location for the given source.
- </summary>
- <param name="index">The source geometry index</param>
- <returns>The linear location for the source</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.HasSides(System.Int32)">
- <summary>
- Tests whether this label has side position information
- for a source geometry.
- </summary>
- <param name="index">The index of the input geometry</param>
- <returns><c>true</c> if at least one side position is known</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.Copy">
- <summary>
- Creates a copy of this label
- </summary>
- <returns>A copy of this label</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.RingRoleSymbol(System.Boolean)">
- <summary>
- Gets a symbol for the a ring role (Shell or Hole).
- </summary>
- <param name="isHole"><c>true</c> for a hole, <c>false</c> for a shell</param>
- <returns>The ring role symbol character</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.DimensionSymbol(NetTopologySuite.Geometries.Dimension)">
- <summary>
- Gets the symbol for the dimension code of an edge.
- </summary>
- <param name="dim">The dimension code</param>
- <returns>The dimension symbol character</returns>
- </member>
- <member name="T:NetTopologySuite.Operation.OverlayNG.OverlayLabeller">
- <summary>
- Implements the logic to compute the full labeling
- for the edges in an <see cref="T:NetTopologySuite.Operation.OverlayNG.OverlayGraph"/>.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabeller.ComputeLabelling">
- <summary>
- Computes the topological labeling for the edges in the graph.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabeller.LabelAreaNodeEdges(System.Collections.Generic.IEnumerable{NetTopologySuite.Operation.OverlayNG.OverlayEdge})">
- <summary>
- Labels edges around nodes based on the arrangement
- of incident area boundary edges.
- Also propagates the labeling to connected linear edges.
- </summary>
- <param name="nodes">The nodes to label</param>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabeller.PropagateAreaLocations(NetTopologySuite.Operation.OverlayNG.OverlayEdge,System.Int32)">
- <summary>
- Scans around a node CCW, propagating the side labels
- for a given area geometry to all edges (and their sym)
- with unknown locations for that geometry.
- </summary>
- <param name="nodeEdge"></param>
- <param name="geomIndex">The geometry to propagate locations for</param>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabeller.FindPropagationStartEdge(NetTopologySuite.Operation.OverlayNG.OverlayEdge,System.Int32)">
- <summary>
- Finds a boundary edge for this geom originating at the given
- node, if one exists.
- A boundary edge should exist if this is a node on the boundary
- of the parent area geometry.
- </summary>
- <param name="nodeEdge">An edge for this node</param>
- <param name="geomIndex">The parent geometry index</param>
- <returns>A boundary edge, or <c>null</c> if no boundary edge exists</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabeller.LabelCollapsedEdges">
- <summary>
- At this point collapsed edges with unknown location
- must be disconnected from the boundary edges of the parent
- (because otherwise the location would have
- been propagated from them).<br/>
- They can be now located based on their parent ring role(shell or hole).
- (This cannot be done earlier, because the location
- based on the boundary edges must take precedence.<br/>
- There are situations where a collapsed edge has a location
- which is different to its ring role -
- e.g.a narrow gore in a polygon, which is in
- the interior of the reduced polygon, but whose
- ring role would imply the location EXTERIOR.)
- <para/>
- Note that collapsed edges can NOT have location determined via a PIP location check,
- because that is done against the unreduced input geometry,
- which may give an invalid result due to topology collapse.
- <para/>
- The labeling is propagated to other connected linear edges,
- since there may be NOT_PART edges which are connected,
- and they can be labeled in the same way.
- (These would get labeled anyway during subsequent disconnected labeling pass,
- but may be more efficient and accurate to do it here.)
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabeller.LabelConnectedLinearEdges">
- <summary>
- There can be edges which have unknown location
- but are connected to a linear edge with known location.
- In this case linear location is propagated to the connected edges.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabeller.PropagateLinearLocations(System.Int32)">
- <summary>
- Performs a breadth-first graph traversal to find and label
- connected linear edges.
- </summary>
- <param name="geomIndex">The index of the input geometry to label.</param>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabeller.FindLinearEdgesWithLocation(System.Collections.Generic.IEnumerable{NetTopologySuite.Operation.OverlayNG.OverlayEdge},System.Int32)">
- <summary>
- Finds all OverlayEdges which are linear
- (i.e.line or collapsed) and have a known location
- for the given input geometry.
- </summary>
- <param name="geomIndex">The index of the input geometry</param>
- <returns>A list of linear edges with known location</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabeller.LabelDisconnectedEdges">
- <summary>
- At this point there may still be edges which have unknown location
- relative to an input geometry.<br/>
- This must be because they are NOT_PART edges for that geometry,
- and are disconnected from any edges of that geometry.
- An example of this is rings of one geometry wholly contained
- in another geometry.<br/>
- The location must be fully determined to compute a
- correct result for all overlay operations.
- <para/>
- If the input geometry is an Area the edge location can
- be determined via a PIP test.
- If the input is not an Area the location is EXTERIOR.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabeller.LabelDisconnectedEdge(NetTopologySuite.Operation.OverlayNG.OverlayEdge,System.Int32)">
- <summary>
- Determines the location of an edge relative to a target input geometry.
- The edge has no location information
- because it is disconnected from other
- edges that would provide that information.
- The location is determined by checking
- if the edge lies inside the target geometry area(if any).
- </summary>
- <param name="edge">The edge to label</param>
- <param name="geomIndex">The input geometry to label against</param>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabeller.LocateEdge(System.Int32,NetTopologySuite.Operation.OverlayNG.OverlayEdge)">
- <summary>
- Determines the <see cref="T:NetTopologySuite.Geometries.Location"/> for an edge within an Area geometry
- via point-in-polygon location.
- <para/>
- NOTE this is only safe to use for disconnected edges,
- since the test is carried out against the original input geometry,
- and precision reduction may cause incorrect results for edges
- which are close enough to a boundary to become connected.
- </summary>
- <param name="geomIndex">The parent geometry index</param>
- <param name="edge">The edge to locate</param>
- <returns>The location of the edge.</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabeller.LocateEdgeBothEnds(System.Int32,NetTopologySuite.Operation.OverlayNG.OverlayEdge)">
- <summary>
- Determines the {@link Location} for an edge within an Area geometry
- via point-in-polygon location,
- by checking that both endpoints are interior to the target geometry.
- Checking both endpoints ensures correct results in the presence of topology collapse.
- <para/>
- NOTE this is only safe to use for disconnected edges,
- since the test is carried out against the original input geometry,
- and precision reduction may cause incorrect results for edges
- which are close enough to a boundary to become connected.
- </summary>
- <param name="geomIndex">The parent geometry index</param>
- <param name="edge">The edge to locate</param>
- <returns>The location of the edge</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabeller.MarkInResultArea(NetTopologySuite.Operation.OverlayNG.OverlayEdge,NetTopologySuite.Operation.Overlay.SpatialFunction)">
- <summary>
- Marks an edge which forms part of the boundary of the result area.
- This is determined by the overlay operation being executed,
- and the location of the edge.
- The relevant location is either the right side of a boundary edge,
- or the line location of a non-boundary edge.
- </summary>
- <param name="e">The edge to mark</param>
- <param name="overlayOpCode">The overlay operation</param>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabeller.UnmarkDuplicateEdgesFromResultArea">
- <summary>
- Unmarks result area edges where the sym edge
- is also marked as in the result.
- This has the effect of merging edge-adjacent result areas,
- as required by polygon validity rules.
- </summary>
- </member>
- <member name="T:NetTopologySuite.Operation.OverlayNG.OverlayMixedPoints">
- <summary>
- Computes an overlay where one input is Point(s) and one is not.
- This class supports overlay being used as an efficient way
- to find points within or outside a polygon.
- <para/>
- Input semantics are:
- <list type="bullet">
- <item><description>Duplicates are removed from Point output</description></item>
- <item><description>Non-point output is rounded and noded using the given precision model</description></item>
- </list>
- Output semantics are:
- <list type="bullet">
- <item><description>An empty result is an empty atomic geometry
- with dimension determined by the inputs and the operation as per overlay semantics
- </description></item>
- </list>
- For efficiency the following optimizations are used:
- <list type="bullet">
- <item><description>Input points are not included in the noding of the non-point input geometry
- (in particular, they do not participate in snap-rounding if that is used).</description></item>
- <item><description>If the non-point input geometry is not included in the output
- it is not rounded and noded.This means that points
- are compared to the non-rounded geometry.
- This will be apparent in the result.</description></item>
- </list>
- This means that overlay is efficient to use for finding points
- within or outside a polygon.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayMixedPoints.CopyNonPoint">
- <summary>
- Copy the non-point input geometry if not
- already done by precision reduction process.
- </summary>
- <returns>A copy of the non-point geometry</returns>
- </member>
- <member name="T:NetTopologySuite.Operation.OverlayNG.OverlayNG">
- <summary>
- Computes the geometric overlay of two <see cref="T:NetTopologySuite.Geometries.Geometry"/>s,
- using an explicit precision model to allow robust computation.
- <para/>
- The overlay can be used to determine any of the
- following set-theoretic operations (boolean combinations) of the geometries:
- <list type="bullet">
- <item><term><see cref="F:NetTopologySuite.Operation.Overlay.SpatialFunction.Intersection"/></term><description>all points which lie in both geometries</description></item>
- <item><term><see cref="F:NetTopologySuite.Operation.Overlay.SpatialFunction.Union"/></term><description>all points which lie in at least one geometry</description></item>
- <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>
- <item><term><see cref="F:NetTopologySuite.Operation.Overlay.SpatialFunction.SymDifference"/></term><description>all points which lie in one geometry but not both</description></item>
- </list>
- Input geometries may have different dimension.
- Input collections must be homogeneous (all elements must have the same dimension).
- Inputs may be <b>simple</b> <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/>s.
- A GeometryCollection is simple if it can be flattened into a valid Multi-geometry;
- i.e.it is homogeneous and does not contain any overlapping Polygons.
- <para/>
- The precision model used for the computation can be supplied
- independent of the precision model of the input geometry.
- The main use for this is to allow using a fixed precision
- for geometry with a floating precision model.
- This does two things: ensures robust computation;
- and forces the output to be validly rounded to the precision model.
- <para/>
- For fixed precision models noding is performed using a <see cref="T:NetTopologySuite.Noding.Snapround.SnapRoundingNoder"/>.
- This provides robust computation(as long as precision is limited to
- around 13 decimal digits).
- <para/>
- For floating precision an <see cref="T:NetTopologySuite.Noding.MCIndexNoder"/> is used.
- This is not fully robust, so can sometimes result in
- <see cref="T:NetTopologySuite.Geometries.TopologyException"/>s being thrown.
- For robust full-precision overlay see <see cref="T:NetTopologySuite.Operation.OverlayNG.OverlayNGRobust"/>.
- <para/>
- A custom <see cref="T:NetTopologySuite.Noding.INoder"/> can be supplied.
- This allows using a more performant noding strategy in specific cases,
- for instance in <see cref="T:NetTopologySuite.Operation.OverlayNG.CoverageUnion"/>.
- <para/>
- <b>Note:</b> If a <see cref="T:NetTopologySuite.Noding.Snap.SnappingNoder"/> is used
- it is best to specify a fairly small snap tolerance,
- since the intersection clipping optimization can
- interact with the snapping to alter the result.
- <para/>
- Optionally the overlay computation can process using strict mode
- (via <see cref="P:NetTopologySuite.Operation.OverlayNG.OverlayNG.StrictMode"/> = <c>true</c>).
- In strict mode result semantics are:
- <list type="bullet">
- <item><description>Lines and Points resulting from topology collapses are not included in the result</description></item>
- <item><description>Result geometry is homogeneous
- for the <see cref="F:NetTopologySuite.Operation.Overlay.SpatialFunction.Intersection"/> and <see cref="F:NetTopologySuite.Operation.Overlay.SpatialFunction.Difference"/> operations.</description></item>
- <item><description>Result geometry is homogeneous
- for the <see cref="F:NetTopologySuite.Operation.Overlay.SpatialFunction.Union"/> and <see cref="F:NetTopologySuite.Operation.Overlay.SpatialFunction.SymDifference"/> operations
- if the inputs have the same dimension</description></item>
- </list>
- Strict mode has the following benefits:
- <list type="bullet">
- <item><description>Results are simpler</description></item>
- <item><description>Overlay operations are easily chainable
- without needing to remove lower-dimension elements</description></item>
- </list>
- The original JTS overlay semantics corresponds to non-strict mode.
- <para/>
- If a robustness error occurs, a <see cref="T:NetTopologySuite.Geometries.TopologyException"/> is thrown.
- These are usually caused by numerical rounding causing the noding output
- to not be fully noded.
- For robust computation with full-precision <see cref="T:NetTopologySuite.Operation.OverlayNG.OverlayNGRobust"/>
- can be used.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.OverlayNG.OverlayNG.INTERSECTION">
- <summary>
- The code for the Intersection overlay operation.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.OverlayNG.OverlayNG.UNION">
- <summary>
- The code for the Union overlay operation.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.OverlayNG.OverlayNG.DIFFERENCE">
- <summary>
- The code for the Difference overlay operation.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.OverlayNG.OverlayNG.SYMDIFFERENCE">
- <summary>
- The code for the Symmetric Difference overlay operation.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.OverlayNG.OverlayNG.STRICT_MODE_DEFAULT">
- <summary>
- The default setting for Strict Mode.
- <para/>
- The original JTS overlay semantics used non-strict result
- semantics, including;<br/>
- - An Intersection result can be mixed-dimension,
- due to inclusion of intersection components of all dimensions <br/>
- - Results can include lines caused by Area topology collapse
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayNG.IsResultOfOpPoint(NetTopologySuite.Operation.OverlayNG.OverlayLabel,NetTopologySuite.Operation.Overlay.SpatialFunction)">
- <summary>
- Tests whether a point with a given topological <see cref="T:NetTopologySuite.GeometriesGraph.Label"/>
- relative to two geometries is contained in
- the result of overlaying the geometries using
- a given overlay operation.
- <para/>
- The method handles arguments of <see cref="F:NetTopologySuite.Geometries.Location.Null"/> correctly
- </summary>
- <param name="label">The topological label of the point</param>
- <param name="opCode">The code for the overlay operation to test</param>
- <returns><c>true</c> if the label locations correspond to the overlay <paramref name="opCode"/></returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayNG.IsResultOfOp(NetTopologySuite.Operation.Overlay.SpatialFunction,NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Location)">
- <summary>
- Tests whether a point with given <see cref="T:NetTopologySuite.Geometries.Location"/>s
- relative to two geometries would be contained in
- the result of overlaying the geometries using
- a given overlay operation.
- This is used to determine whether components
- computed during the overlay process should be
- included in the result geometry.
- <para/>
- The method handles arguments of <see cref="F:NetTopologySuite.Geometries.Location.Null"/> correctly.
- </summary>
- <param name="overlayOpCode">The code for the overlay operation to test</param>
- <param name="loc0">The code for the location in the first geometry</param>
- <param name="loc1">The code for the location in the second geometry</param>
- <returns><c>true</c> if a point with given locations is in the result of the overlay operation</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayNG.Overlay(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Operation.Overlay.SpatialFunction,NetTopologySuite.Geometries.PrecisionModel)">
- <summary>
- Computes an overlay operation for
- the given geometry operands, with the
- noding strategy determined by the precision model.
- </summary>
- <param name="geom0">The first geometry argument</param>
- <param name="geom1">The second geometry argument</param>
- <param name="opCode">The code for the desired overlay operation</param>
- <param name="pm">The precision model to use</param>
- <returns>The result of the overlay operation</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayNG.Overlay(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Operation.Overlay.SpatialFunction,NetTopologySuite.Geometries.PrecisionModel,NetTopologySuite.Noding.INoder)">
- <summary>
- Computes an overlay operation for
- the given geometry operands, using a supplied <see cref="T:NetTopologySuite.Noding.INoder"/>.
- </summary>
- <param name="geom0">The first geometry argument</param>
- <param name="geom1">The second geometry argument</param>
- <param name="opCode">The code for the desired overlay operation</param>
- <param name="pm">The precision model to use (which may be null if the noder does not use one)</param>
- <param name="noder">The noder to use</param>
- <returns>The result of the overlay operation</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayNG.Overlay(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Operation.Overlay.SpatialFunction,NetTopologySuite.Noding.INoder)">
- <summary>
- Computes an overlay operation on the given geometry operands,
- using a supplied <see cref="T:NetTopologySuite.Noding.INoder"/>.
- </summary>
- <param name="geom0">The first geometry argument</param>
- <param name="geom1">The second geometry argument</param>
- <param name="opCode">The code for the desired overlay operation</param>
- <param name="noder">The noder to use</param>
- <returns>The result of the overlay operation</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayNG.Overlay(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Operation.Overlay.SpatialFunction)">
- <summary>
- Computes an overlay operation on
- the given geometry operands,
- using the precision model of the geometry.
- and an appropriate noder.
- <para/>
- The noder is chosen according to the precision model specified.
- <list type="bullet">
- <item><description>For <see cref="F:NetTopologySuite.Geometries.PrecisionModels.Fixed"/>
- a snap-rounding noder is used, and the computation is robust.</description></item>
- <item><description>For <see cref="F:NetTopologySuite.Geometries.PrecisionModels.Floating"/>
- a non-snapping noder is used,
- and this computation may not be robust.
- If errors occur a <see cref="T:NetTopologySuite.Geometries.TopologyException"/> is thrown.</description></item>
- </list>
- </summary>
- <param name="geom0">The first geometry argument</param>
- <param name="geom1">The second geometry argument</param>
- <param name="opCode">The code for the desired overlay operation</param>
- <returns>The result of the overlay operation</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayNG.Union(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.PrecisionModel)">
- <summary>
- Computes a union operation on
- the given geometry, with the supplied precision model.
- <para/>
- The input must be a valid geometry.
- Collections must be homogeneous.
- <para/>
- To union an overlapping set of polygons in a more performant way use <see cref="T:NetTopologySuite.Operation.OverlayNG.UnaryUnionNG"/>.
- To union a polygonal coverage or linear network in a more performant way,
- use <see cref="T:NetTopologySuite.Operation.OverlayNG.CoverageUnion"/>.
- </summary>
- <param name="geom">The geometry</param>
- <param name="pm">The precision model to use</param>
- <returns>The result of the union operation</returns>
- <seealso cref="T:NetTopologySuite.Operation.OverlayNG.OverlayMixedPoints"/>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayNG.Union(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.PrecisionModel,NetTopologySuite.Noding.INoder)">
- <summary>
- Computes a union of a single geometry using a custom noder.
- <para/>
- The primary use of this is to support coverage union.
- Because of this the overlay is performed using strict mode.
- </summary>
- <param name="geom">The geometry to union</param>
- <param name="pm">The precision model to use (maybe be <c>null</c>)</param>
- <param name="noder">The noder to use</param>
- <returns>the result geometry</returns>
- <seealso cref="T:NetTopologySuite.Operation.OverlayNG.CoverageUnion"/>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayNG.#ctor(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.PrecisionModel,NetTopologySuite.Operation.Overlay.SpatialFunction)">
- <summary>
- Creates an overlay operation on the given geometries,
- with a defined precision model.
- </summary>
- <param name="geom0">The A operand geometry</param>
- <param name="geom1">The B operand geometry (may be <c>null</c>)</param>
- <param name="pm">The precision model to use</param>
- <param name="opCode">The overlay opcode</param>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayNG.#ctor(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.PrecisionModel,NetTopologySuite.Algorithm.ElevationModel,NetTopologySuite.Operation.Overlay.SpatialFunction)">
- <summary>
- Creates an overlay operation on the given geometries,
- with a defined precision model.
- </summary>
- <param name="geom0">The A operand geometry</param>
- <param name="geom1">The B operand geometry (may be <c>null</c>)</param>
- <param name="pm">The precision model to use</param>
- <param name="em">The elevation model to use. May be <c>null</c></param>
- <param name="opCode">The overlay opcode</param>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayNG.#ctor(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Operation.Overlay.SpatialFunction)">
- <summary>
- Creates an overlay operation on the given geometries
- using the precision model of the geometries.
- <para/>
- The noder is chosen according to the precision model specified.
- <list type="bullet">
- <item><description>For <see cref="F:NetTopologySuite.Geometries.PrecisionModels.Fixed"/>
- a snap - rounding noder is used, and the computation is robust.</description></item>
- <item><description>For <see cref="F:NetTopologySuite.Geometries.PrecisionModels.Floating"/> a non - snapping noder is used,
- and this computation may not be robust.</description></item>
- If errors occur a <see cref="T:NetTopologySuite.Geometries.TopologyException"/> is thrown.
- </list>
- </summary>
- <param name="geom0">The A operand geometry</param>
- <param name="geom1">The B operand geometry (may be <c>null</c>)</param>
- <param name="opCode">The overlay opcode</param>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayNG.#ctor(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.PrecisionModel)">
- <summary>
- Creates a union of a single geometry with a given precision model.
- </summary>
- <param name="geom">The geometry</param>
- <param name="pm">The precision model to use</param>
- </member>
- <member name="P:NetTopologySuite.Operation.OverlayNG.OverlayNG.StrictMode">
- <summary>
- Gets or sets whether the overlay results are computed according to strict mode
- semantics.
- <list type="bullet">
- <item><description>Lines resulting from topology collapse are not included</description></item>
- <item><description>Result geometry is homogeneous for the
- <see cref="F:NetTopologySuite.Operation.Overlay.SpatialFunction.Intersection"/> and
- <see cref="F:NetTopologySuite.Operation.Overlay.SpatialFunction.Difference"/> operations.</description></item>
- <item><description>Result geometry is homogeneous for the
- <see cref="F:NetTopologySuite.Operation.Overlay.SpatialFunction.Union"/> and
- <see cref="F:NetTopologySuite.Operation.Overlay.SpatialFunction.SymDifference"/> operations if the inputs have the same dimension</description></item>
- </list>
- </summary>
- <returns></returns>
- </member>
- <member name="P:NetTopologySuite.Operation.OverlayNG.OverlayNG.Optimized">
- <summary>
- Gets or sets a value indicating whether overlay processing optimizations are enabled.
- <para/>
- It may be useful to disable optimizations
- for testing purposes.
- <para/>
- Default is <c>true</c> (optimization enabled).
- </summary>
- </member>
- <member name="P:NetTopologySuite.Operation.OverlayNG.OverlayNG.AreaResultOnly">
- <summary>
- Gets or sets whether the result can contain only <see cref="T:NetTopologySuite.Geometries.Polygon"/> components.
- This is used if it is known that the result must be an (possibly empty) area.
- </summary>
- <returns><c>true</c> if the result should contain only area components</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayNG.GetResult">
- <summary>
- Gets the result of the overlay operation.
- e</summary>
- <returns>The result of the overlay operation.</returns>
- <exception cref="T:System.ArgumentException">Thrown, if the input is not supported (e.g. a mixed-dimension geometry)</exception>
- <exception cref="T:NetTopologySuite.Geometries.TopologyException">Thrown, if a robustness error occurs</exception>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayNG.ExtractResult(NetTopologySuite.Operation.Overlay.SpatialFunction,NetTopologySuite.Operation.OverlayNG.OverlayGraph)">
- <summary>
- Extracts the result geometry components from the fully labelled topology graph.
- <para/>
- This method implements the semantic that the result of an
- intersection operation is homogeneous with highest dimension.
- In other words,
- if an intersection has components of a given dimension
- no lower-dimension components are output.
- For example, if two polygons intersect in an area,
- no linestrings or points are included in the result,
- even if portions of the input do meet in lines or points.
- This semantic choice makes more sense for typical usage,
- in which only the highest dimension components are of interest.
- </summary>
- <param name="opCode">The overlay operation</param>
- <param name="graph">The topology graph</param>
- <returns>The result geometry</returns>
- </member>
- <member name="T:NetTopologySuite.Operation.OverlayNG.OverlayNGRobust">
- <summary>
- Performs an overlay operation using <see cref="T:NetTopologySuite.Operation.OverlayNG.OverlayNG"/>,
- increasing robustness by using a series of
- increasingly robust (but slower) noding strategies.
- <para/>
- The noding strategies used are:
- <list type="number">
- <item><description>A simple fast noder using <see cref="F:NetTopologySuite.Geometries.PrecisionModels.Floating"/> precision</description></item>
- <item><description>A <see cref="T:NetTopologySuite.Noding.Snap.SnappingNoder"/> using an automatically-determined snap tolerance</description></item>
- <item><description>First snapping each geometry to itself, and then overlaying them wih a <see cref="T:NetTopologySuite.Noding.Snap.SnappingNoder"/></description></item>
- <item><description>The above two strategies are repeated with increasing snap tolerance, up to a limit</description></item>
- <item><description>Finally a <see cref="T:NetTopologySuite.Noding.Snapround.SnapRoundingNoder"/> is used with a automatically-determined scale factor.</description></item>
- </list>
- If all of the above heuristics fail to compute a valid overlay,
- the original <see cref="T:NetTopologySuite.Geometries.TopologyException"/> is thrown.
- In practice this should be extremely unlikely to occur.
- <para/>
- This algorithm relies on each overlay operation execution
- throwing a <see cref="T:NetTopologySuite.Geometries.TopologyException"/> if it is unable
- to compute the overlay correctly.
- Generally this occurs because the noding phase does
- not produce a valid noding.
- This requires the use of a <see cref="T:NetTopologySuite.Noding.ValidatingNoder"/>
- in order to check the results of using a floating noder.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayNGRobust.Union(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes the unary union of a geometry using robust computation.
- </summary>
- <param name="geom">The geometry to union</param>
- <returns>The union result</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayNGRobust.Union(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})">
- <summary>
- Computes the unary union of a collection of geometries using robust computation.
- </summary>
- <param name="geoms">An enumeration of geometries to union</param>
- <returns>The union result</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayNGRobust.Union(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry},NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
- Computes the unary union of a collection of geometries using robust computation.
- </summary>
- <param name="geoms">An enumeration of geometries to union</param>
- <param name="geomFact">The geometry factory to use</param>
- <returns>The union of the geometries</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayNGRobust.Overlay(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Operation.Overlay.SpatialFunction)">
- <summary>
- Overlay two geometries, using heuristics to ensure
- computation completes correctly.
- In practice the heuristics are observed to be fully correct.
- </summary>
- <param name="geom0">A geometry</param>
- <param name="geom1">A geometry</param>
- <param name="opCode">The overlay operation code</param>
- <returns>The overlay result geometry</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayNGRobust.OverlaySnapTries(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Operation.Overlay.SpatialFunction)">
- <summary>
- Attempt overlay using snapping with repeated tries with increasing snap tolerances.
- </summary>
- <param name ="geom0"></param>
- <param name ="geom1"></param>
- <param name ="opCode"></param>
- <returns>The computed overlay result, or null if the overlay fails</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayNGRobust.OverlaySnapping(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Operation.Overlay.SpatialFunction,System.Double)">
- <summary>
- Attempt overlay using a <see cref="T:NetTopologySuite.Noding.Snap.SnappingNoder"/>.
- </summary>
- <param name="geom0"></param>
- <param name="geom1"></param>
- <param name="opCode"></param>
- <param name="snapTol"></param>
- <returns>The computed overlay result, or null if the overlay fails</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayNGRobust.OverlaySnapBoth(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Operation.Overlay.SpatialFunction,System.Double)">
- <summary>
- Attempt overlay with first snapping each geometry individually.
- </summary>
- <param name="geom0"></param>
- <param name="geom1"></param>
- <param name="opCode"></param>
- <param name="snapTol"></param>
- <returns>The computed overlay result, or null if the overlay fails</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayNGRobust.SnapSelf(NetTopologySuite.Geometries.Geometry,System.Double)">
- <summary>
- Self-snaps a geometry by running a union operation with it as the only input.
- This helps to remove narrow spike/gore artifacts to simplify the geometry,
- which improves robustness.
- Collapsed artifacts are removed from the result to allow using
- it in further overlay operations.
- </summary>
- <param name="geom">Geometry to self-snap</param>
- <param name="snapTol">Snap tolerance</param>
- <returns>The snapped geometry (homogenous)</returns>
- </member>
- <member name="F:NetTopologySuite.Operation.OverlayNG.OverlayNGRobust.SnapTolFactor">
- <summary>
- A factor for a snapping tolerance distance which
- should allow noding to be computed robustly.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayNGRobust.SnapTolerance(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes a heuristic snap tolerance distance
- for overlaying a pair of geometries using a <see cref="T:NetTopologySuite.Noding.Snap.SnappingNoder"/>.
- </summary>
- <param name="geom0"></param>
- <param name="geom1"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayNGRobust.OrdinateMagnitude(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes the largest magnitude of the ordinates of a geometry,
- based on the geometry envelope.
- </summary>
- <param name="geom"></param>
- <returns>The magnitude of the largest ordinate</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayNGRobust.OverlaySR(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Operation.Overlay.SpatialFunction)">
- <summary>
- Attempt Overlay using Snap-Rounding with an automatically-determined
- scale factor.
- </summary>
- <param name="geom0"></param>
- <param name="geom1"></param>
- <param name="opCode"></param>
- <returns>the computed overlay result, or null if the overlay fails</returns>
- </member>
- <member name="T:NetTopologySuite.Operation.OverlayNG.OverlayPoints">
- <summary>
- Performs an overlay operation on inputs which are both point geometries.
- <para/>
- Semantics are:
- <list type="bullet">
- <item><description>Points are rounded to the precision model if provided</description></item>
- <item><description>Points with identical XY values are merged to a single point</description></item>
- <item><description>Extended ordinate values are preserved in the output, apart from merging</description></item>
- <item><description>An empty result is returned as <c>POINT EMPTY</c></description></item>
- </list>
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayPoints.Overlay(NetTopologySuite.Operation.Overlay.SpatialFunction,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.PrecisionModel)">
- <summary>
- Performs an overlay operation on inputs which are both point geometries.
- </summary>
- <param name="opCode">The code for the desired overlay operation</param>
- <param name="geom0">The first geometry argument</param>
- <param name="geom1">The second geometry argument</param>
- <param name="pm">The precision model to use</param>
- <returns>The result of the overlay operation</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayPoints.#ctor(NetTopologySuite.Operation.Overlay.SpatialFunction,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.PrecisionModel)">
- <summary>
- Creates an instance of an overlay operation on inputs which are both point geometries.
- </summary>
- <param name="opCode">The code for the desired overlay operation</param>
- <param name="geom0">The first geometry argument</param>
- <param name="geom1">The second geometry argument</param>
- <param name="pm">The precision model to use</param>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayPoints.GetResult">
- <summary>
- Gets the result of the overlay.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayPoints.RoundCoord(NetTopologySuite.Geometries.Point,NetTopologySuite.Geometries.PrecisionModel)">
- <summary>
- Round the key point if precision model is fixed.
- Note: return value is only copied if rounding is performed.
- </summary>
- </member>
- <member name="T:NetTopologySuite.Operation.OverlayNG.OverlayUtility">
- <summary>
- Utility methods for overlay processing.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayUtility.IsFloating(NetTopologySuite.Geometries.PrecisionModel)">
- <summary>
- A null-handling wrapper for <see cref="P:NetTopologySuite.Geometries.PrecisionModel.IsFloating"/>
- </summary>
- <param name="pm">A precision model</param>
- <returns><c>true</c> if the provided precision model is floating</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayUtility.ClippingEnvelope(NetTopologySuite.Operation.Overlay.SpatialFunction,NetTopologySuite.Operation.OverlayNG.InputGeometry,NetTopologySuite.Geometries.PrecisionModel)">
- <summary>
- Computes a clipping envelope for overlay input geometries.
- The clipping envelope encloses all geometry line segments which
- might participate in the overlay, with a buffer to
- account for numerical precision
- (in particular, rounding due to a precision model.
- The clipping envelope is used in both the <see cref="T:NetTopologySuite.Operation.OverlayNG.RingClipper"/>
- and in the <see cref="T:NetTopologySuite.Operation.OverlayNG.LineLimiter"/>.
- <para/>
- Some overlay operations (i.e. <see cref="F:NetTopologySuite.Operation.Overlay.SpatialFunction.Union"/> and <see cref="F:NetTopologySuite.Operation.Overlay.SpatialFunction.SymDifference"/>)
- cannot use clipping as an optimization,
- since the result envelope is the full extent of the two input geometries.
- In this case the returned
- envelope is <c>null</c> to indicate this.
- </summary>
- <param name="opCode">The overlay op code</param>
- <param name="inputGeom">The input geometries</param>
- <param name="pm">The precision model being used</param>
- <returns>An envelope for clipping and line limiting, or null if no clipping is performed</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayUtility.ResultEnvelope(NetTopologySuite.Operation.Overlay.SpatialFunction,NetTopologySuite.Operation.OverlayNG.InputGeometry,NetTopologySuite.Geometries.PrecisionModel)">
- <summary>
- Computes an envelope which covers the extent of the result of
- a given overlay operation for given inputs.
- The operations which have a result envelope smaller than the extent of the inputs
- are:
- <list type="bullet">
- <item><term><see cref="F:NetTopologySuite.Operation.Overlay.SpatialFunction.Intersection"/></term>
- <description>result envelope is the intersection of the input envelopes</description></item>
- <item><term><see cref="F:NetTopologySuite.Operation.Overlay.SpatialFunction.Difference"/></term>
- <description>result envelope is the envelope of the A input geometry</description></item>
- </list>
- Otherwise, <c>null</c> is returned to indicate full extent.
- </summary>
- <param name="opCode">The overlay op code</param>
- <param name="inputGeom">The input geometries</param>
- <param name="pm">The precision model being used</param>
- <returns>The result envelope, or null if the full extent</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayUtility.SafeEnv(NetTopologySuite.Geometries.Envelope,NetTopologySuite.Geometries.PrecisionModel)">
- <summary>
- Determines a safe geometry envelope for clipping,
- taking into account the precision model being used.
- </summary>
- <param name="env">A safe geometry envelope for clipping</param>
- <param name="pm">The precision model</param>
- <returns>A safe envelope to use for clipping</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayUtility.IsEmptyResult(NetTopologySuite.Operation.Overlay.SpatialFunction,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.PrecisionModel)">
- <summary>
- Tests if the result can be determined to be empty
- based on simple properties of the input geometries
- (such as whether one or both are empty,
- or their envelopes are disjoint).
- </summary>
- <param name="opCode">The overlay operation</param>
- <param name="a">The A operand geometry</param>
- <param name="b">The B operand geometry</param>
- <param name="pm">The precision model to use</param>
- <returns><c>true</c> if the overlay result is determined to be empty</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayUtility.IsEnvDisjoint(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.PrecisionModel)">
- <summary>
- Tests if the geometry envelopes are disjoint, or empty.
- The disjoint test must take into account the precision model
- being used, since geometry coordinates may shift under rounding.
- </summary>
- <param name="a">The A operand geometry</param>
- <param name="b">The B operand geometry</param>
- <param name="pm">The precision model to use</param>
- <returns><c>true</c> if the geometry envelopes are disjoint or empty</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayUtility.IsDisjoint(NetTopologySuite.Geometries.Envelope,NetTopologySuite.Geometries.Envelope,NetTopologySuite.Geometries.PrecisionModel)">
- <summary>
- Tests for disjoint envelopes adjusting for rounding
- caused by a fixed precision model.
- Assumes envelopes are non-empty.
- </summary>
- <param name="envA">The A operand envelope</param>
- <param name="envB">The B operand envelope</param>
- <param name="pm">The precision model to use</param>
- <returns><c>true</c> if the envelopes are disjoint</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayUtility.CreateEmptyResult(NetTopologySuite.Geometries.Dimension,NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
- Creates an empty result geometry of the appropriate dimension,
- based on the given overlay operation and the dimensions of the inputs.
- The created geometry is an atomic geometry,
- not a collection(unless the dimension is <see cref="F:NetTopologySuite.Geometries.Dimension.Unknown"/>,
- in which case a <c>GEOMETRYCOLLECTION EMPTY</c> is created.
- </summary>
- <param name="dim">The dimension of the empty geometry</param>
- <param name="geomFact">The geometry factory being used for the operation</param>
- <returns>An empty atomic geometry of the appropriate dimension</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayUtility.ResultDimension(NetTopologySuite.Operation.Overlay.SpatialFunction,NetTopologySuite.Geometries.Dimension,NetTopologySuite.Geometries.Dimension)">
- <summary>
- Computes the dimension of the result of
- applying the given operation to inputs
- with the given dimensions.
- This assumes that complete collapse does not occur.
- <para/>
- The result dimension is computed using the following rules:
- <list type="bullet">
- <item><term><see cref="F:NetTopologySuite.Operation.Overlay.SpatialFunction.Intersection"/></term><description>result has the dimension of the lowest input dimension</description></item>
- <item><term><see cref="F:NetTopologySuite.Operation.Overlay.SpatialFunction.Union"/></term><description>result has the dimension of the highest input dimension</description></item>
- <item><term><see cref="F:NetTopologySuite.Operation.Overlay.SpatialFunction.Difference"/></term><description>result has the dimension of the left-hand input</description></item>
- <item><term><see cref="F:NetTopologySuite.Operation.Overlay.SpatialFunction.SymDifference"/></term><description>result has the dimension of the highest input dimension
- (since the Symmetric Difference is the Union of the Differences).</description></item>
- </list>
- </summary>
- <param name="opCode">The overlay operation</param>
- <param name="dim0">Dimension of the LH input</param>
- <param name="dim1">Dimension of the RH input</param>
- <returns></returns>
- </member>
- <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)">
- <summary>
- Creates an overlay result geometry for homogeneous or mixed components.
- </summary>
- <param name="resultPolyList">An enumeration of result polygons (may be empty or <c>null</c>)</param>
- <param name="resultLineList">An enumeration of result lines (may be empty or <c>null</c>)</param>
- <param name="resultPointList">An enumeration of result points (may be empty or <c>null</c>)</param>
- <param name="geometryFactory">The geometry factory to use.</param>
- <returns>A geometry structured according to the overlay result semantics</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayUtility.Round(NetTopologySuite.Geometries.Point,NetTopologySuite.Geometries.PrecisionModel)">
- <summary>
- Round the key point if precision model is fixed.
- Note: return value is only copied if rounding is performed.
- </summary>
- <param name="pt">The point to round</param>
- <param name="pm">The precision model to use for rounding</param>
- <returns>The rounded point coordinate, or null if empty</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayUtility.Round(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.PrecisionModel)">
- <summary>
- Rounds a coordinate if precision model is fixed.<br/>
- <b>Note:</b> return value is only copied if rounding is performed.
- </summary>
- <param name="p">The coordinate to round</param>
- <param name="pm">The precision model to use for rounding</param>
- <returns>The rounded coordinate</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayUtility.IsResultAreaConsistent(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Operation.Overlay.SpatialFunction,NetTopologySuite.Geometries.Geometry)">
- <summary>
- A heuristic check for overlay result correctness
- comparing the areas of the input and result.
- The heuristic is necessarily coarse, but it detects some obvious issues.<br/>
- (e.g. <a href="https://github.com/locationtech/jts/issues/798"/>)
- <para/>
- <b>Note:</b> - this check is only safe if the precision model is floating.
- It should also be safe for snapping noding if the distance tolerance is reasonably small.
- (Fixed precision models can lead to collapse causing result area to expand.)
- </summary>
- <param name="geom0">Input geometry 0</param>
- <param name="geom1">Input geometry 1</param>
- <param name="opCode">The overlay opcode</param>
- <param name="result">The overlay result</param>
- <returns><c>true</c> if the result area is consistent</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayUtility.IsDifferenceAreaConsistent(System.Double,System.Double,System.Double,System.Double)">
- <summary>
- Tests if the area of a difference is greater than the minimum possible difference area.
- This is a heuristic which will only detect gross overlay errors.
- </summary>
- <param name="areaA">The area of A</param>
- <param name="areaB">The area of B</param>
- <param name="areaResult">The result area</param>
- <param name="tolFrac">The area tolerance fraction</param>
- <returns><c>true</c> if the difference area is consistent.</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.PolygonBuilder.BuildMaximalRings(System.Collections.Generic.IEnumerable{NetTopologySuite.Operation.OverlayNG.OverlayEdge})">
- <summary>
- For all OverlayEdges in result, form them into MaximalEdgeRings
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.PolygonBuilder.FindSingleShell(System.Collections.Generic.IEnumerable{NetTopologySuite.Operation.OverlayNG.OverlayEdgeRing})">
- <summary>
- Finds the single shell, if any, out of
- a list of minimal rings derived from a maximal ring.
- The other possibility is that they are a set of (connected) holes,
- in which case no shell will be found.
- </summary>
- <returns>The shell ring, if there is one
- or <c>null</c>, if all rings are holes
- </returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.PolygonBuilder.AssignHoles(NetTopologySuite.Operation.OverlayNG.OverlayEdgeRing,System.Collections.Generic.IEnumerable{NetTopologySuite.Operation.OverlayNG.OverlayEdgeRing})">
- <summary>
- For the set of minimal rings comprising a maximal ring,
- assigns the holes to the shell known to contain them.
- Assigning the holes directly to the shell serves two purposes:
- <list type="bullet">
- <item><description>it is faster than using a point-in-polygon check later on.</description></item>
- <item><description>it ensures correctness, since if the PIP test was used the point
- chosen might lie on the shell, which might return an incorrect result from the
- PIP test</description></item>
- </list>
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.PolygonBuilder.PlaceFreeHoles(System.Collections.Generic.IReadOnlyCollection{NetTopologySuite.Operation.OverlayNG.OverlayEdgeRing},System.Collections.Generic.IEnumerable{NetTopologySuite.Operation.OverlayNG.OverlayEdgeRing})">
- <summary>
- Place holes have not yet been assigned to a shell.
- These "free" holes should
- all be <b>properly</b> contained in their parent shells, so it is safe to use the
- <c>findEdgeRingContaining</c> method.
- (This is the case because any holes which are NOT
- properly contained (i.e. are connected to their
- parent shell) would have formed part of a MaximalEdgeRing
- and been handled in a previous step).
- </summary>
- <exception cref="T:NetTopologySuite.Geometries.TopologyException">If a hole cannot be assigned to a shell</exception>
- </member>
- <member name="T:NetTopologySuite.Operation.OverlayNG.PrecisionReducer">
- <summary>
- Functions to reduce the precision of a geometry
- by rounding it to a given precision model.
- <para/>
- This class handles only polygonal and linear inputs.
- For full functionality <see cref="T:NetTopologySuite.Precision.GeometryPrecisionReducer"/>.
- </summary>
- <seealso cref="T:NetTopologySuite.Precision.GeometryPrecisionReducer"/>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.PrecisionReducer.ReducePrecision(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.PrecisionModel)">
- <summary>
- Reduces the precision of a geometry by rounding and snapping it to the
- supplied <see cref="T:NetTopologySuite.Geometries.PrecisionModel"/>.<br/>
- The input geometry must be polygonal or linear.
- <para/>
- The output is always a valid geometry. This implies that input components
- may be merged if they are closer than the grid precision.
- if merging is not desired, then the individual geometry components
- should be processed separately.
- <para/>
- The output is fully noded (i.e. coincident lines are merged and noded).
- This provides an effective way to node / snap-round a collection of <see cref="T:NetTopologySuite.Geometries.LineString"/>s.
- </summary>
- <param name="geom">The geometry to reduce</param>
- <param name="pm">The precision model to use</param>
- <returns>The precision-reduced geometry</returns>
- </member>
- <member name="T:NetTopologySuite.Operation.OverlayNG.PrecisionUtility">
- <summary>
- Functions for computing precision model scale factors
- that ensure robust geometry operations.
- In particular, these can be used to
- automatically determine appropriate scale factors for operations
- using limited-precision noding (such as <see cref="T:NetTopologySuite.Operation.OverlayNG.OverlayNG"/>).
- <para/>
- WARNING: the <c>inherentScale</c> and <c>robustScale</c>
- functions can be very slow, due to the method used to determine
- number of decimal places of a number.
- These are not recommended for production use.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="F:NetTopologySuite.Operation.OverlayNG.PrecisionUtility.MAX_ROBUST_DP_DIGITS">
- <summary>
- A number of digits of precision which leaves some computational "headroom"
- to ensure robust evaluation of certain double-precision floating point geometric operations.
- <para/>
- This value should be less than the maximum decimal precision of double-precision values (16).
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.PrecisionUtility.SafeScale(System.Double)">
- <summary>
- Computes a safe scale factor for a numeric value.
- A safe scale factor ensures that rounded
- number has no more than <see cref="F:NetTopologySuite.Operation.OverlayNG.PrecisionUtility.MAX_ROBUST_DP_DIGITS"/>
- digits of precision.
- </summary>
- <param name="value">A numeric value.</param>
- <returns>A safe scale factor for the value</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.PrecisionUtility.SafeScale(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes a safe scale factor for a geometry.
- A safe scale factor ensures that rounded
- number has no more than <see cref="F:NetTopologySuite.Operation.OverlayNG.PrecisionUtility.MAX_ROBUST_DP_DIGITS"/>
- digits of precision.
- </summary>
- <param name="geom">A geometry.</param>
- <returns>A safe scale factor for the geometry ordinates</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.PrecisionUtility.SafeScale(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes a safe scale factor for two geometry.
- A safe scale factor ensures that rounded
- number has no more than <see cref="F:NetTopologySuite.Operation.OverlayNG.PrecisionUtility.MAX_ROBUST_DP_DIGITS"/>
- digits of precision.
- </summary>
- <param name="a">A geometry.</param>
- <param name="b">A geometry (which may be <c>null</c>).</param>
- <returns>A safe scale factor for the geometry ordinates</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.PrecisionUtility.MaxBoundMagnitude(NetTopologySuite.Geometries.Envelope)">
- <summary>
- Determines the maximum magnitude (absolute value) of the bounds of an
- of an envelope.
- This is equal to the largest ordinate value
- which must be accommodated by a scale factor.
- </summary>
- <param name="env">An envelope</param>
- <returns>The value of the maximum bound magnitude</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.PrecisionUtility.PrecisionScale(System.Double,System.Int32)">
- <summary>
- Computes the scale factor which will
- produce a given number of digits of precision(significant digits)
- when used to round the given number.
- <para/>
- For example: to provide 5 decimal digits of precision
- for the number 123.456 the precision scale factor is 100;
- for 3 digits of precision the scale factor is 1;
- for 2 digits of precision the scale factor is 0.1.
- <para/>
- Rounding to the scale factor can be performed with <see cref="M:NetTopologySuite.Geometries.PrecisionModel.MakePrecise(System.Double)"/>
- </summary>
- <param name="value">A number to be rounded</param>
- <param name="precisionDigits">The number of digits of precision required</param>
- <returns>The scale factor which provides the required number of digits of precision</returns>
- <seealso cref="M:NetTopologySuite.Geometries.PrecisionModel.MakePrecise(NetTopologySuite.Geometries.Coordinate)"/>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.PrecisionUtility.InherentScale(System.Double)">
- <summary>
- Computes the inherent scale of a number.
- The inherent scale is the scale factor for rounding
- which preserves <b>all</b> digits of precision
- (significant digits)
- present in the numeric value.
- In other words, it is the scale factor which does not
- change the numeric value when rounded:
- <code>
- num = round( num, inherentScale(num) )
- </code>
- </summary>
- <param name="value">A number</param>
- <returns>The inherent scale factor of the number</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.PrecisionUtility.InherentScale(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes the inherent scale of a geometry.
- The inherent scale is the scale factor for rounding
- which preserves <b>all</b> digits of precision
- (significant digits)
- present in the geometry ordinates.
- <para/>
- This is the maximum inherent scale
- of all ordinate values in the geometry.
- <para/>
- WARNING: this is <b>very</b> slow.
- </summary>
- <param name="geom">A geometry</param>
- <returns>The inherent scale factor in the geometry's ordinates</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.PrecisionUtility.InherentScale(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes the inherent scale of two geometries.
- The inherent scale is the scale factor for rounding
- which preserves <b>all</b> digits of precision
- (significant digits)
- present in the geometry ordinates.
- <para/>
- This is the maximum inherent scale
- of all ordinate values in the geometries.
- </summary>
- <param name="a">A geometry</param>
- <param name="b">A geomety (which may be <c>null</c>)</param>
- <returns>The inherent scale factor in the geometries' ordinates</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.PrecisionUtility.NumberOfDecimals(System.Double)">
- <summary>
- Determines the
- number of decimal places represented in a double-precision
- number (as determined by .NET).
- This uses the .NET double-precision print routine
- to determine the number of decimal places,
- This is likely not optimal for performance,
- but should be accurate and portable.
- </summary>
- <param name="value">A numeric value</param>
- <returns>The number of decimal places in the value</returns>
- </member>
- <member name="T:NetTopologySuite.Operation.OverlayNG.PrecisionUtility.InherentScaleFilter">
- <summary>
- Applies the inherent scale calculation
- to every ordinate in a geometry.
- <para/>
- WARNING: this is <b>very</b> slow.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.PrecisionUtility.RobustPM(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Determines a precision model to
- use for robust overlay operations for one geometry.
- The precision scale factor is chosen to maximize
- output precision while avoiding round-off issues.
- <para/>
- NOTE: this is a heuristic determination, so is not guaranteed to
- eliminate precision issues.
- <para/>
- WARNING: this is <b>very</b> slow.
- </summary>
- <param name="a">A geometry</param>
- <returns>A suitable precision model for overlay</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.PrecisionUtility.RobustScale(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Determines a scale factor which maximizes
- the digits of precision and is
- safe to use for overlay operations.
- The robust scale is the minimum of the
- inherent scale and the safe scale factors.
- <para/>
- WARNING: this is <b>very</b> slow.
- </summary>
- <param name="a">A geometry</param>
- <param name="b">A geometry</param>
- <returns>A scale factor for use in overlay operations</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.PrecisionUtility.RobustScale(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Determines a scale factor which maximizes
- the digits of precision and is
- safe to use for overlay operations.
- The robust scale is the minimum of the
- inherent scale and the safe scale factors.
- </summary>
- <param name="a">A geometry</param>
- <returns>A scale factor for use in overlay operations</returns>
- </member>
- <member name="T:NetTopologySuite.Operation.OverlayNG.RingClipper">
- <summary>
- Clips a ring of points to an rectangle.
- Uses a variant of Cohen-Sutherland clipping.
- <para/>
- In general the output is not topologically valid.
- In particular, the output may contain coincident non-noded line segments
- along the clip rectangle sides.
- However, the output is sufficiently well-structured
- that it can be used as input to the <see cref="T:NetTopologySuite.Operation.OverlayNG.OverlayNG"/> algorithm
- (which is able to process coincident linework due
- to the need to handle topology collapse under precision reduction).
- <para/>
- Because of the likelihood of creating
- extraneous line segments along the clipping rectangle sides,
- this class is not suitable for clipping linestrings.
- <para/>
- The clipping envelope should be generated using <see cref="T:NetTopologySuite.Operation.OverlayNG.RobustClipEnvelopeComputer"/>,
- to ensure that intersecting line segments are not perturbed
- by clipping.
- This is required to ensure that the overlay of the
- clipped geometry is robust and correct (i.e. the same as
- if clipping was not used).
- </summary>
- <seealso cref="T:NetTopologySuite.Operation.OverlayNG.LineLimiter"/>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.RingClipper.#ctor(NetTopologySuite.Geometries.Envelope)">
- <summary>
- Creates a new clipper for the given envelope.
- </summary>
- <param name="clipEnv">The clipping envelope</param>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.RingClipper.Clip(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Clips a list of points to the clipping rectangle box.
- </summary>
- <param name="pts">The points of the ring</param>
- <returns>The points of the clipped ring</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.RingClipper.ClipToBoxEdge(NetTopologySuite.Geometries.Coordinate[],System.Int32,System.Boolean)">
- <summary>
- Clips line to the axis-parallel line defined by a single box edge.
- </summary>
- <param name="pts">The coordinates</param>
- <param name="edgeIndex">An edge index</param>
- <param name="closeRing">A flag indicating whether to close the ring.</param>
- <returns>The clipped coordinates</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.RingClipper.Intersection(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,System.Int32)">
- <summary>
- Computes the intersection point of a segment
- with an edge of the clip box.
- The segment must be known to intersect the edge.
- </summary>
- <param name="a">First endpoint of the segment</param>
- <param name="b">Second endpoint of the segment</param>
- <param name="edgeIndex">Index of box edge</param>
- <returns>
- The intersection point with the box edge
- </returns>
- </member>
- <member name="T:NetTopologySuite.Operation.OverlayNG.RobustClipEnvelopeComputer">
- <summary>
- Computes a robust clipping envelope for a pair of polygonal geometries.
- The envelope is computed to be large enough to include the full
- length of all geometry line segments which intersect
- a given target envelope.
- This ensures that line segments which might intersect are
- not perturbed when clipped using <see cref="T:NetTopologySuite.Operation.OverlayNG.RingClipper"/>.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.RobustClipEnvelopeComputer.AddPolygonRing(NetTopologySuite.Geometries.LineString)">
- <summary>
- Adds a polygon ring to the graph. Empty rings are ignored.
- </summary>
- </member>
- <member name="T:NetTopologySuite.Operation.OverlayNG.UnaryUnionNG">
- <summary>
- Unions a collection of geometries in an
- efficient way, using <see cref="T:NetTopologySuite.Operation.OverlayNG.OverlayNG"/>
- to ensure robust computation.
- <para/>
- This class is most useful for performing UnaryUnion using
- a fixed-precision model.<br/>
- For unary union using floating precision,
- <see cref="M:NetTopologySuite.Operation.OverlayNG.OverlayNGRobust.Union(NetTopologySuite.Geometries.Geometry)"/> should be used.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.UnaryUnionNG.Union(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.PrecisionModel)">
- <summary>
- Unions a geometry (which is often a collection)
- using a given precision model.
- </summary>
- <param name="geom">The geometry to union</param>
- <param name="pm">The precision model to use</param>
- <returns>The union of the geometry</returns>
- <seealso cref="T:NetTopologySuite.Operation.OverlayNG.OverlayNGRobust"/>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.UnaryUnionNG.Union(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry},NetTopologySuite.Geometries.PrecisionModel)">
- <summary>
- Unions a geometry (which is often a collection)
- using a given precision model.
- </summary>
- <param name="geoms">The geometries to union</param>
- <param name="pm">The precision model to use</param>
- <returns>The union of the geometries</returns>
- <seealso cref="T:NetTopologySuite.Operation.OverlayNG.OverlayNGRobust"/>
- </member>
- <member name="M:NetTopologySuite.Operation.OverlayNG.UnaryUnionNG.Union(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry},NetTopologySuite.Geometries.GeometryFactory,NetTopologySuite.Geometries.PrecisionModel)">
- <summary>
- Unions a geometry (which is often a collection)
- using a given precision model.
- </summary>
- <param name="geoms">The geometries to union</param>
- <param name="geomFact">The geometry factory to use</param>
- <param name="pm">The precision model to use</param>
- <returns>The union of the geometries</returns>
- <seealso cref="T:NetTopologySuite.Operation.OverlayNG.OverlayNGRobust"/>
- </member>
- <member name="T:NetTopologySuite.Operation.Polygonize.EdgeRing">
- <summary>
- Represents a ring of <see cref="T:NetTopologySuite.Operation.Polygonize.PolygonizeDirectedEdge"/>s which form
- a ring of a polygon. The ring may be either an outer shell or a hole.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Polygonize.EdgeRing.FindEdgeRingContaining(NetTopologySuite.Operation.Polygonize.EdgeRing,System.Collections.Generic.IList{NetTopologySuite.Operation.Polygonize.EdgeRing})">
- <summary>
- Find the innermost enclosing shell EdgeRing containing the argument EdgeRing, if any.
- The innermost enclosing ring is the <i>smallest</i> enclosing ring.
- The algorithm used depends on the fact that:
- ring A contains ring B if envelope(ring A) contains envelope(ring B).
- This routine is only safe to use if the chosen point of the hole
- is known to be properly contained in a shell
- (which is guaranteed to be the case if the hole does not touch its shell).
- <para/>
- To improve performance of this function the caller should
- make the passed shellList as small as possible(e.g.
- by using a spatial index filter beforehand).
- </summary>
- <param name="erList"></param>
- <param name="testEr"></param>
- <returns>Containing EdgeRing or <c>null</c> if no containing EdgeRing is found.</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Polygonize.EdgeRing.FindDirEdgesInRing(NetTopologySuite.Operation.Polygonize.PolygonizeDirectedEdge)">
- <summary>
- Traverses a ring of DirectedEdges, accumulating them into a list.
- This assumes that all dangling directed edges have been removed
- from the graph, so that there is always a next dirEdge.
- </summary>
- <remarks>This function has a different return type than its counterpart
- in JTS. Use <see cref="M:NetTopologySuite.Operation.Polygonize.EdgeRing.FindPolyDirEdgesInRing(NetTopologySuite.Operation.Polygonize.PolygonizeDirectedEdge)"/>
- instead.</remarks>
- <param name="startDE">The DirectedEdge to start traversing at</param>
- <returns>A list of DirectedEdges that form a ring</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Polygonize.EdgeRing.FindPolyDirEdgesInRing(NetTopologySuite.Operation.Polygonize.PolygonizeDirectedEdge)">
- <summary>
- Traverses a ring of DirectedEdges, accumulating them into a list.
- This assumes that all dangling directed edges have been removed
- from the graph, so that there is always a next dirEdge.
- </summary>
- <remarks>This function is called <c>FindDirEdgesInRing</c> in JTS.</remarks>
- <param name="startDE">The DirectedEdge to start traversing at</param>
- <returns>A list of DirectedEdges that form a ring</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Polygonize.EdgeRing.Add(NetTopologySuite.Operation.Polygonize.PolygonizeDirectedEdge)">
- <summary>
- Adds a DirectedEdge which is known to form part of this ring.
- </summary>
- <param name="de">The DirectedEdge to add.</param>
- </member>
- <member name="P:NetTopologySuite.Operation.Polygonize.EdgeRing.IsHole">
- <summary>
- Tests whether this ring is a hole.
- Due to the way the edges in the polygonization graph are linked,
- a ring is a hole if it is oriented counter-clockwise.
- </summary>
- <returns><c>true</c> if this ring is a hole.</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Polygonize.EdgeRing.ComputeHole">
- <summary>
- Computes whether this ring is a hole.
- Due to the way the edges in the polygonization graph are linked,
- a ring is a hole if it is oriented counter-clockwise.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Polygonize.EdgeRing.AddHole(NetTopologySuite.Geometries.LinearRing)">
- <summary>
- Adds a hole to the polygon formed by this ring.
- </summary>
- <param name="hole">The LinearRing forming the hole.</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Polygonize.EdgeRing.AddHole(NetTopologySuite.Operation.Polygonize.EdgeRing)">
- <summary>
- Adds a hole to the polygon formed by this ring.
- </summary>
- <param name="holeER">the <see cref="T:NetTopologySuite.Geometries.LinearRing"/> forming the hole.</param>
- </member>
- <member name="P:NetTopologySuite.Operation.Polygonize.EdgeRing.Polygon">
- <summary>
- Computes and returns the Polygon formed by this ring and any contained holes.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Operation.Polygonize.EdgeRing.IsValid">
- <summary>
- Gets a value indicating if the <see cref="T:NetTopologySuite.Geometries.LinearRing" /> ring formed by this edge ring is topologically valid.
- </summary>
- <remarks><see cref="M:NetTopologySuite.Operation.Polygonize.EdgeRing.ComputeValid"/> must be called prior to accessing this property.</remarks>
- <return>true if the ring is valid.</return>
- </member>
- <member name="M:NetTopologySuite.Operation.Polygonize.EdgeRing.ComputeValid">
- <summary>
- Computes the validity of the ring.
- Must be called prior to calling <see cref="P:NetTopologySuite.Operation.Polygonize.EdgeRing.IsValid"/>.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Polygonize.EdgeRing.Contains(NetTopologySuite.Operation.Polygonize.EdgeRing)">
- <summary>
- Tests if an edgeRing is properly contained in this ring.
- Relies on property that edgeRings never overlap (although they may
- touch at single vertices).</summary>
- <param name="ring">The ring to test</param>
- <returns><c>true</c> if ring is properly contained</returns>
- </member>
- <member name="P:NetTopologySuite.Operation.Polygonize.EdgeRing.Coordinates">
- <summary>
- Computes and returns the list of coordinates which are contained in this ring.
- The coordinates are computed once only and cached.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Operation.Polygonize.EdgeRing.LineString">
- <summary>
- Gets the coordinates for this ring as a <c>LineString</c>.
- Used to return the coordinates in this ring
- as a valid point, when it has been detected that the ring is topologically
- invalid.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Operation.Polygonize.EdgeRing.Ring">
- <summary>
- Returns this ring as a LinearRing, or null if an Exception occurs while
- creating it (such as a topology problem).
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Polygonize.EdgeRing.AddEdge(NetTopologySuite.Geometries.Coordinate[],System.Boolean,NetTopologySuite.Geometries.CoordinateList)">
- <summary>
-
- </summary>
- <param name="coords"></param>
- <param name="isForward"></param>
- <param name="coordList"></param>
- </member>
- <member name="P:NetTopologySuite.Operation.Polygonize.EdgeRing.Shell">
- <summary>
- Gets or sets a value indicating the containing shell ring of a ring that has been determined to be a hole.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Operation.Polygonize.EdgeRing.HasShell">
- <summary>
- Gets a value indicating whether this ring has a shell assigned to it.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Operation.Polygonize.EdgeRing.IsOuterHole">
- <summary>
- Tests whether this ring is an outer hole.
- A hole is an outer hole if it is not contained by a shell.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Operation.Polygonize.EdgeRing.IsOuterShell">
- <summary>
- Tests whether this ring is an outer shell.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Operation.Polygonize.EdgeRing.OuterHole">
- <summary>
- Gets the outer hole of a shell, if it has one.
- An outer hole is one that is not contained
- in any other shell.
- Each disjoint connected group of shells
- is surrounded by an outer hole.
- </summary>
- <returns>The outer hole edge ring, or <c>null</c></returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Polygonize.EdgeRing.UpdateIncluded">
- <summary>
- Updates the included status for currently non-included shells
- based on whether they are adjacent to an included shell.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Polygonize.EdgeRing.ToString">
- <summary>
- Gets a string representation of this object.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Operation.Polygonize.EdgeRing.IsProcessed">
- <summary>
- Gets or sets a value indicating whether this ring has been processed.
- </summary>
- </member>
- <member name="T:NetTopologySuite.Operation.Polygonize.EdgeRing.EnvelopeComparator">
- <summary>
- Compares EdgeRings based on their envelope,
- using the standard lexicographic ordering.
- This ordering is sufficient to make edge ring sorting deterministic.
- </summary>
- <author>mbdavis</author>
- </member>
- <member name="T:NetTopologySuite.Operation.Polygonize.EdgeRing.EnvelopeAreaComparator">
- <summary>
- Compares EdgeRings based on the area of their envelopes.
- Smaller envelopes sort before bigger ones.
- This effectively sorts EdgeRings in order of containment.
- </summary>
- <author>mbdavis</author>
- </member>
- <member name="T:NetTopologySuite.Operation.Polygonize.HoleAssigner">
- <summary>
- Assigns hole rings to shell rings
- during polygonization.
- Uses spatial indexing to improve performance
- of shell lookup.
- </summary>
- <author>mdavis</author>
- </member>
- <member name="M:NetTopologySuite.Operation.Polygonize.HoleAssigner.AssignHolesToShells(System.Collections.Generic.IEnumerable{NetTopologySuite.Operation.Polygonize.EdgeRing},System.Collections.Generic.IEnumerable{NetTopologySuite.Operation.Polygonize.EdgeRing})">
- <summary>
- Assigns hole rings to shell rings.
- </summary>
- <param name="holes">An enumeration of hole rings to assign</param>
- <param name="shells">An enumeration of shell rings</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Polygonize.HoleAssigner.#ctor(System.Collections.Generic.IEnumerable{NetTopologySuite.Operation.Polygonize.EdgeRing})">
- <summary>
- Creates a new hole assigner.
- </summary>
- <param name="shells">An enumeration of shell rings to assign holes to</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Polygonize.HoleAssigner.AssignHolesToShells(System.Collections.Generic.IEnumerable{NetTopologySuite.Operation.Polygonize.EdgeRing})">
- <summary>
- Assigns holes to the shells.
- </summary>
- <param name="holes">An enumeration of holes to assign to shells</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Polygonize.HoleAssigner.FindShellContaining(NetTopologySuite.Operation.Polygonize.EdgeRing)">
- <summary>
- Find the innermost enclosing shell EdgeRing containing the argument EdgeRing, if any.
- The innermost enclosing ring is the <i>smallest</i> enclosing ring.
- The algorithm used depends on the fact that:
- <list type="Bullet">
- <item><term>ring A contains ring B if envelope(ring A) contains envelope(ring B)</term></item>
- </list>
- This routine is only safe to use if the chosen point of the hole
- is known to be properly contained in a shell
- (which is guaranteed to be the case if the hole does not touch its shell)
- </summary>
- <param name="testER">An edge ring to test</param>
- <returns>
- The containing shell EdgeRing, if there is one
- or <c>null</c> if no containing EdgeRing is found
- </returns>
- </member>
- <member name="T:NetTopologySuite.Operation.Polygonize.PolygonizeDirectedEdge">
- <summary>
- A <c>DirectedEdge</c> of a <c>PolygonizeGraph</c>, which represents
- an edge of a polygon formed by the graph.
- May be logically deleted from the graph by setting the <c>marked</c> flag.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Polygonize.PolygonizeDirectedEdge.#ctor(NetTopologySuite.Planargraph.Node,NetTopologySuite.Planargraph.Node,NetTopologySuite.Geometries.Coordinate,System.Boolean)">
- <summary>
- Constructs a directed edge connecting the <c>from</c> node to the
- <c>to</c> node.
- </summary>
- <param name="from"></param>
- <param name="to"></param>
- <param name="directionPt">
- Specifies this DirectedEdge's direction (given by an imaginary
- line from the <c>from</c> node to <c>directionPt</c>).
- </param>
- <param name="edgeDirection">
- Whether this DirectedEdge's direction is the same as or
- opposite to that of the parent Edge (if any).
- </param>
- </member>
- <member name="P:NetTopologySuite.Operation.Polygonize.PolygonizeDirectedEdge.Label">
- <summary>
- Returns the identifier attached to this directed edge.
- Attaches an identifier to this directed edge.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Operation.Polygonize.PolygonizeDirectedEdge.Next">
- <summary>
- Returns the next directed edge in the EdgeRing that this directed edge is a member of.
- Sets the next directed edge in the EdgeRing that this directed edge is a member of.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Operation.Polygonize.PolygonizeDirectedEdge.IsInRing">
- <summary>
- Returns the ring of directed edges that this directed edge is
- a member of, or null if the ring has not been set.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Operation.Polygonize.PolygonizeDirectedEdge.Ring">
- <summary>
- Gets/Sets the ring of directed edges that this directed edge is
- a member of.
- </summary>
- </member>
- <member name="T:NetTopologySuite.Operation.Polygonize.PolygonizeEdge">
- <summary>
- An edge of a polygonization graph.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Polygonize.PolygonizeEdge.#ctor(NetTopologySuite.Geometries.LineString)">
- <summary>
-
- </summary>
- <param name="line"></param>
- </member>
- <member name="P:NetTopologySuite.Operation.Polygonize.PolygonizeEdge.Line">
- <summary>
-
- </summary>
- </member>
- <member name="T:NetTopologySuite.Operation.Polygonize.PolygonizeGraph">
- <summary>
- Represents a planar graph of edges that can be used to compute a
- polygonization, and implements the algorithms to compute the
- <see cref="T:NetTopologySuite.Operation.Polygonize.EdgeRing"/>s formed by the graph.
- The marked flag on DirectedEdges is used to indicate that a directed edge
- has be logically deleted from the graph.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Polygonize.PolygonizeGraph.GetDegreeNonDeleted(NetTopologySuite.Planargraph.Node)">
- <summary>
-
- </summary>
- <param name="node"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Polygonize.PolygonizeGraph.GetDegree(NetTopologySuite.Planargraph.Node,System.Int64)">
- <summary>
-
- </summary>
- <param name="node"></param>
- <param name="label"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Polygonize.PolygonizeGraph.DeleteAllEdges(NetTopologySuite.Planargraph.Node)">
- <summary>
- Deletes all edges at a node.
- </summary>
- <param name="node"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Polygonize.PolygonizeGraph.#ctor(NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
- Create a new polygonization graph.
- </summary>
- <param name="factory"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Polygonize.PolygonizeGraph.AddEdge(NetTopologySuite.Geometries.LineString)">
- <summary>
- Add a <c>LineString</c> forming an edge of the polygon graph.
- </summary>
- <param name="line">The line to add.</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Polygonize.PolygonizeGraph.GetNode(NetTopologySuite.Geometries.Coordinate)">
- <summary>
-
- </summary>
- <param name="pt"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Polygonize.PolygonizeGraph.ComputeNextCWEdges">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Polygonize.PolygonizeGraph.ConvertMaximalToMinimalEdgeRings(System.Collections.Generic.IEnumerable{NetTopologySuite.Operation.Polygonize.PolygonizeDirectedEdge})">
- <summary>
- Convert the maximal edge rings found by the initial graph traversal
- into the minimal edge rings required by NTS polygon topology rules.
- </summary>
- <param name="ringEdges">The list of start edges for the edgeRings to convert.</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Polygonize.PolygonizeGraph.FindIntersectionNodes(NetTopologySuite.Operation.Polygonize.PolygonizeDirectedEdge,System.Int64)">
- <summary>
- Finds all nodes in a maximal edgering which are self-intersection nodes
- </summary>
- <param name="startDE"></param>
- <param name="label"></param>
- <returns>
- The list of intersection nodes found,
- or null if no intersection nodes were found.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Polygonize.PolygonizeGraph.GetEdgeRings">
- <summary>
- Computes the minimal EdgeRings formed by the edges in this graph.
- </summary>
- <returns>A list of the{EdgeRings found by the polygonization process.</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Polygonize.PolygonizeGraph.FindLabeledEdgeRings(System.Collections.Generic.IEnumerable{NetTopologySuite.Planargraph.DirectedEdge})">
- <summary>
- Finds and labels all edgerings in the graph.
- The edge rings are labeling with unique integers.
- The labeling allows detecting cut edges.
- </summary>
- <param name="dirEdges">A List of the DirectedEdges in the graph.</param>
- <returns>A List of DirectedEdges, one for each edge ring found.</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Polygonize.PolygonizeGraph.DeleteCutEdges">
- <summary>
- Finds and removes all cut edges from the graph.
- </summary>
- <returns>A list of the <c>LineString</c>s forming the removed cut edges.</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Polygonize.PolygonizeGraph.Label(System.Collections.Generic.IEnumerable{NetTopologySuite.Planargraph.DirectedEdge},System.Int64)">
- <summary>
-
- </summary>
- <param name="dirEdges"></param>
- <param name="label"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Polygonize.PolygonizeGraph.ComputeNextCWEdges(NetTopologySuite.Planargraph.Node)">
- <summary>
-
- </summary>
- <param name="node"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Polygonize.PolygonizeGraph.ComputeNextCCWEdges(NetTopologySuite.Planargraph.Node,System.Int64)">
- <summary>
- Computes the next edge pointers going CCW around the given node, for the
- given edgering label.
- This algorithm has the effect of converting maximal edgerings into minimal edgerings
- </summary>
- <param name="node"></param>
- <param name="label"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Polygonize.PolygonizeGraph.FindEdgeRing(NetTopologySuite.Operation.Polygonize.PolygonizeDirectedEdge)">
- <summary>
-
- </summary>
- <param name="startDE"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Polygonize.PolygonizeGraph.DeleteDangles">
- <summary>
- Marks all edges from the graph which are "dangles".
- Dangles are which are incident on a node with degree 1.
- This process is recursive, since removing a dangling edge
- may result in another edge becoming a dangle.
- In order to handle large recursion depths efficiently,
- an explicit recursion stack is used.
- </summary>
- <returns>A List containing the <see cref="T:NetTopologySuite.Geometries.LineString"/>s that formed dangles.</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Polygonize.PolygonizeGraph.ComputeDepthParity">
- <summary>
- Traverses the polygonized edge rings in the graph
- and computes the depth parity (odd or even)
- relative to the exterior of the graph.
-
- If the client has requested that the output
- be polygonally valid, only odd polygons will be constructed.
- </summary>
- <exception cref="T:System.NotSupportedException"/>
- </member>
- <member name="T:NetTopologySuite.Operation.Polygonize.Polygonizer">
- <summary>
- Polygonizes a set of <see cref="T:NetTopologySuite.Geometries.Geometry"/>s which contain linework that
- represents the edges of a planar graph.
- </summary>
- <remarks>
- <para>All types of Geometry are accepted as input;
- the constituent linework is extracted as the edges to be polygonized.
- The processed edges must be correctly noded; that is, they must only meet
- at their endpoints. Polygonization will accept incorrectly noded input
- but will not form polygons from non-noded edges,
- and reports them as errors.
- </para><para>
- The Polygonizer reports the follow kinds of errors:
- <list type="Table">
- <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>
- <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>
- <item><term><see cref="M:NetTopologySuite.Operation.Polygonize.Polygonizer.GetInvalidRingLines"/></term><description>edges which form rings which are invalid
- (e.g. the component lines contain a self-intersection)</description>
- </item></list>
- </para>
- <para>
- The <see cref="M:NetTopologySuite.Operation.Polygonize.Polygonizer.#ctor(System.Boolean)"/> constructor allows
- extracting only polygons which form a valid polygonal result.
- The set of extracted polygons is guaranteed to be edge-disjoint.
- This is useful for situations where it is known that the input lines form a
- valid polygonal geometry (which may include holes or nested polygons).</para>
- </remarks>
-
- </member>
- <member name="F:NetTopologySuite.Operation.Polygonize.Polygonizer.AllPolys">
- <summary>
- The default polygonizer output behavior
- </summary>
- </member>
- <member name="T:NetTopologySuite.Operation.Polygonize.Polygonizer.LineStringAdder">
- <summary>
- Adds every linear element in a <see cref="T:NetTopologySuite.Geometries.Geometry"/> into the polygonizer graph.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Polygonize.Polygonizer.LineStringAdder.Filter(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Filters all <see cref="T:NetTopologySuite.Geometries.LineString"/> geometry instances
- </summary>
- <param name="g">The geometry instance</param>
- </member>
- <member name="F:NetTopologySuite.Operation.Polygonize.Polygonizer._lineStringAdder">
- <summary>
- Default linestring adder.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Operation.Polygonize.Polygonizer.IsCheckingRingsValid">
- <summary>
- Allows disabling the valid ring checking,
- to optimize situations where invalid rings are not expected.
- </summary>
- <remarks>The default is <c>true</c></remarks>
- </member>
- <member name="M:NetTopologySuite.Operation.Polygonize.Polygonizer.#ctor">
- <summary>
- Creates a polygonizer that extracts all polygons.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Polygonize.Polygonizer.#ctor(System.Boolean)">
- <summary>
- Creates a polygonizer, specifying whether a valid polygonal geometry must be created.
- If the argument is <c>true</c>
- then areas may be discarded in order to
- ensure that the extracted geometry is a valid polygonal geometry.
- </summary>
- <param name="extractOnlyPolygonal"><c>true</c> if a valid polygonal geometry should be extracted</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Polygonize.Polygonizer.Add(System.Collections.Generic.ICollection{NetTopologySuite.Geometries.Geometry})">
- <summary>
- Adds a collection of <see cref="T:NetTopologySuite.Geometries.Geometry"/>s to be polygonized.
- May be called multiple times.
- Any dimension of Geometry may be added;
- the constituent linework will be extracted and used.
- </summary>
- <param name="geomList">A list of <c>Geometry</c>s with linework to be polygonized.</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Polygonize.Polygonizer.Add(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Adds a <see cref="T:NetTopologySuite.Geometries.Geometry"/> to the linework to be polygonized.
- May be called multiple times.
- Any dimension of Geometry may be added;
- the constituent linework will be extracted and used
- </summary>
- <param name="g">A <c>Geometry</c> with linework to be polygonized.</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Polygonize.Polygonizer.Add(NetTopologySuite.Geometries.LineString)">
- <summary>
- Adds a to the graph of polygon edges.
- </summary>
- <param name="line">The <see cref="T:NetTopologySuite.Geometries.LineString"/> to add.</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Polygonize.Polygonizer.GetPolygons">
- <summary>
- Gets the list of polygons formed by the polygonization.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Polygonize.Polygonizer.GetGeometry">
- <summary>
- Gets a geometry representing the polygons formed by the polygonization.
- If a valid polygonal geometry was extracted the result is a <see cref="T:NetTopologySuite.Geometries.IPolygonal"/> geometry.
- </summary>
- <returns>A geometry containing the polygons</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Polygonize.Polygonizer.GetDangles">
- <summary>
- Gets the list of dangling lines found during polygonization.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Polygonize.Polygonizer.GetCutEdges">
- <summary>
- Gets the list of cut edges found during polygonization.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Polygonize.Polygonizer.GetInvalidRingLines">
- <summary>
- Gets the list of lines forming invalid rings found during polygonization.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Polygonize.Polygonizer.Polygonize">
- <summary>
- Performs the polygonization, if it has not already been carried out.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Polygonize.Polygonizer.FindOuterShells(System.Collections.Generic.List{NetTopologySuite.Operation.Polygonize.EdgeRing})">
- <summary>
- For each outer hole finds and includes a single outer shell.
- This seeds the traversal algorithm for finding only polygonal shells.
- </summary>
- <param name="shellList">The list of shell EdgeRings</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Polygonize.Polygonizer.ExtractInvalidLines(System.Collections.Generic.List{NetTopologySuite.Operation.Polygonize.EdgeRing})">
- <summary>Extracts unique lines for invalid rings,
- discarding rings which correspond to outer rings and hence contain
- duplicate linework.
- </summary>
- <param name="invalidRings">A list of edge rings</param>
- <returns>The list of invalid LineString geometries</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Polygonize.Polygonizer.IsIncludedInvalid(NetTopologySuite.Operation.Polygonize.EdgeRing)">
- <summary>
- Tests if a invalid ring should be included in
- the list of reported invalid rings.
- <para/>
- Rings are included only if they contain
- linework which is not already in a valid ring,
- or in an already-included ring.
- <para/>
- Because the invalid rings list is sorted by extent area,
- this results in outer rings being discarded,
- since all their linework is reported in the rings they contain.
- </summary>
- <param name="invalidRing">The ring to test</param>
- <returns><c>true</c> if the ring should be included</returns>
- </member>
- <member name="T:NetTopologySuite.Operation.Predicate.RectangleContains">
- <summary>
- Optimized implementation of spatial predicate "contains"
- for cases where the first <c>Geometry</c> is a rectangle.
- As a further optimization,
- this class can be used directly to test many geometries against a single rectangle.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Predicate.RectangleContains.Contains(NetTopologySuite.Geometries.Polygon,NetTopologySuite.Geometries.Geometry)">
- <summary>
-
- </summary>
- <param name="rectangle"></param>
- <param name="b"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Predicate.RectangleContains.#ctor(NetTopologySuite.Geometries.Polygon)">
- <summary>
- Create a new contains computer for two geometries.
- </summary>
- <param name="rectangle">A rectangular geometry.</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Predicate.RectangleContains.Contains(NetTopologySuite.Geometries.Geometry)">
- <summary>
-
- </summary>
- <param name="geom"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Predicate.RectangleContains.IsContainedInBoundary(NetTopologySuite.Geometries.Geometry)">
- <summary>
-
- </summary>
- <param name="geom"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Predicate.RectangleContains.IsPointContainedInBoundary(NetTopologySuite.Geometries.Point)">
- <summary>
-
- </summary>
- <param name="point"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Predicate.RectangleContains.IsPointContainedInBoundary(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Tests if a point is contained in the boundary of the target rectangle.
- </summary>
- <param name="pt">the point to test</param>
- <returns>true if the point is contained in the boundary</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Predicate.RectangleContains.IsLineStringContainedInBoundary(NetTopologySuite.Geometries.LineString)">
- <summary>
- Tests if a linestring is completely contained in the boundary of the target rectangle.
- </summary>
- <param name="line">the linestring to test</param>
- <returns>true if the linestring is contained in the boundary</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Predicate.RectangleContains.IsLineSegmentContainedInBoundary(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Tests if a line segment is contained in the boundary of the target rectangle.
- </summary>
- <param name="p0">an endpoint of the segment</param>
- <param name="p1">an endpoint of the segment</param>
- <returns>true if the line segment is contained in the boundary</returns>
- </member>
- <member name="T:NetTopologySuite.Operation.Predicate.RectangleIntersects">
- <summary>I
- Implementation of the <tt>Intersects</tt> spatial predicate
- optimized for the case where one <see cref="T:NetTopologySuite.Geometries.Geometry"/> is a rectangle.
- </summary>
- <remarks>
- This class works for all input geometries, including <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/>s.
- <para/>
- As a further optimization, this class can be used in batch style
- to test many geometries against a single rectangle.
- </remarks>
- </member>
- <member name="F:NetTopologySuite.Operation.Predicate.RectangleIntersects.MaximumScanSegmentCount">
- <summary>
- Crossover size at which brute-force intersection scanning
- is slower than indexed intersection detection.
- Must be determined empirically. Should err on the
- safe side by making value smaller rather than larger.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Predicate.RectangleIntersects.Intersects(NetTopologySuite.Geometries.Polygon,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests whether a rectangle intersects a given geometry.
- </summary>
- <param name="rectangle">A rectangular polygon</param>
- <param name="b">A geometry of any kind</param>
- <returns><c>true</c> if the geometries intersect.</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Predicate.RectangleIntersects.#ctor(NetTopologySuite.Geometries.Polygon)">
- <summary>
- Create a new intersects computer for a rectangle.
- </summary>
- <param name="rectangle">A rectangular polygon.</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Predicate.RectangleIntersects.Intersects(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests whether the given Geometry intersects the query rectangle.
- </summary>
- <param name="geom">The Geometry to test (may be of any type)</param>
- <returns><c>true</c> if an intersection must occur
- or <c>false</c> if no conclusion about intersection can be made</returns>
- </member>
- <member name="T:NetTopologySuite.Operation.Predicate.EnvelopeIntersectsVisitor">
- <summary>
- Tests whether it can be concluded that a rectangle intersects a geometry,
- based on the relationship of the envelope(s) of the geometry.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Operation.Predicate.EnvelopeIntersectsVisitor.#ctor(NetTopologySuite.Geometries.Envelope)">
- <summary>
- Creates an instance of this class using the provided <c>Envelope</c>
- </summary>
- <param name="rectEnv">The query envelope</param>
- </member>
- <member name="P:NetTopologySuite.Operation.Predicate.EnvelopeIntersectsVisitor.Intersects">
- <summary>
- Reports whether it can be concluded that an intersection occurs,
- or whether further testing is required.
- </summary>
- <returns><c>true</c> if an intersection must occur <br/>
- or <c>false</c> if no conclusion about intersection can be made</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Predicate.EnvelopeIntersectsVisitor.Visit(NetTopologySuite.Geometries.Geometry)">
- <summary>
-
- </summary>
- <param name="element"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Predicate.EnvelopeIntersectsVisitor.IsDone">
- <summary>
-
- </summary>
- <returns></returns>
- </member>
- <member name="T:NetTopologySuite.Operation.Predicate.GeometryContainsPointVisitor">
- <summary>
- A visitor which tests whether it can be
- concluded that a geometry contains a vertex of
- a query geometry.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Operation.Predicate.GeometryContainsPointVisitor.#ctor(NetTopologySuite.Geometries.Polygon)">
- <summary>
-
- </summary>
- <param name="rectangle"></param>
- </member>
- <member name="P:NetTopologySuite.Operation.Predicate.GeometryContainsPointVisitor.ContainsPoint">
- <summary>
- Gets a value indicating whether it can be concluded that a corner point of the rectangle is
- contained in the geometry, or whether further testing is required.
- </summary>
- <returns><c>true</c> if a corner point is contained
- or <c>false</c> if no conclusion about intersection can be made
- </returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Predicate.GeometryContainsPointVisitor.Visit(NetTopologySuite.Geometries.Geometry)">
- <summary>
-
- </summary>
- <param name="geom"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Predicate.GeometryContainsPointVisitor.IsDone">
- <summary>
-
- </summary>
- <returns></returns>
- </member>
- <member name="T:NetTopologySuite.Operation.Predicate.RectangleIntersectsSegmentVisitor">
- <summary>
- A visitor to test for intersection between the query rectangle and the line segments of the geometry.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Operation.Predicate.RectangleIntersectsSegmentVisitor.#ctor(NetTopologySuite.Geometries.Polygon)">
- <summary>
- Creates a visitor for checking rectangle intersection with segments
- </summary>
- <param name="rectangle">the query rectangle </param>
- </member>
- <member name="P:NetTopologySuite.Operation.Predicate.RectangleIntersectsSegmentVisitor.Intersects">
- <summary>Reports whether any segment intersection exists.</summary>
- <returns>true if a segment intersection exists or
- false if no segment intersection exists</returns>
- </member>
- <member name="T:NetTopologySuite.Operation.Predicate.SegmentIntersectionTester">
- <summary>
- Tests if any line segments in two sets of <see cref="T:NetTopologySuite.Geometries.CoordinateSequences"/> intersect.
- Optimized for use when at least one input is of small size.
- Short-circuited to return as soon an intersection is found.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Predicate.SegmentIntersectionTester.HasIntersectionWithLineStrings(NetTopologySuite.Geometries.CoordinateSequence,System.Collections.Generic.ICollection{NetTopologySuite.Geometries.Geometry})">
- <summary>
-
- </summary>
- <param name="seq"></param>
- <param name="lines"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Predicate.SegmentIntersectionTester.HasIntersection(NetTopologySuite.Geometries.CoordinateSequence,NetTopologySuite.Geometries.CoordinateSequence)">
- <summary>
-
- </summary>
- <param name="seq0"></param>
- <param name="seq1"></param>
- <returns></returns>
- </member>
- <member name="T:NetTopologySuite.Operation.Relate.EdgeEndBuilder">
- <summary>
- An EdgeEndBuilder creates EdgeEnds for all the "split edges"
- created by the intersections determined for an Edge.
- Computes the <c>EdgeEnd</c>s which arise from a noded <c>Edge</c>.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Relate.EdgeEndBuilder.ComputeEdgeEnds(System.Collections.Generic.IEnumerable{NetTopologySuite.GeometriesGraph.Edge})">
- <summary>
-
- </summary>
- <param name="edges"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Relate.EdgeEndBuilder.ComputeEdgeEnds(NetTopologySuite.GeometriesGraph.Edge,System.Collections.Generic.IList{NetTopologySuite.GeometriesGraph.EdgeEnd})">
- <summary>
- Creates stub edges for all the intersections in this
- Edge (if any) and inserts them into the graph.
- </summary>
- <param name="edge"></param>
- <param name="l"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Relate.EdgeEndBuilder.CreateEdgeEndForPrev(NetTopologySuite.GeometriesGraph.Edge,System.Collections.Generic.IList{NetTopologySuite.GeometriesGraph.EdgeEnd},NetTopologySuite.GeometriesGraph.EdgeIntersection,NetTopologySuite.GeometriesGraph.EdgeIntersection)">
- <summary>
- Create a EdgeStub for the edge before the intersection eiCurr.
- The previous intersection is provided
- in case it is the endpoint for the stub edge.
- Otherwise, the previous point from the parent edge will be the endpoint.
- eiCurr will always be an EdgeIntersection, but eiPrev may be null.
- </summary>
- <param name="edge"></param>
- <param name="l"></param>
- <param name="eiCurr"></param>
- <param name="eiPrev"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Relate.EdgeEndBuilder.CreateEdgeEndForNext(NetTopologySuite.GeometriesGraph.Edge,System.Collections.Generic.IList{NetTopologySuite.GeometriesGraph.EdgeEnd},NetTopologySuite.GeometriesGraph.EdgeIntersection,NetTopologySuite.GeometriesGraph.EdgeIntersection)">
- <summary>
- Create a StubEdge for the edge after the intersection eiCurr.
- The next intersection is provided
- in case it is the endpoint for the stub edge.
- Otherwise, the next point from the parent edge will be the endpoint.
- eiCurr will always be an EdgeIntersection, but eiNext may be null.
- </summary>
- <param name="edge"></param>
- <param name="l"></param>
- <param name="eiCurr"></param>
- <param name="eiNext"></param>
- </member>
- <member name="T:NetTopologySuite.Operation.Relate.EdgeEndBundle">
- <summary>
- A collection of EdgeStubs which obey the following invariant:
- They originate at the same node and have the same direction.
- Contains all <c>EdgeEnd</c>s which start at the same point and are parallel.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Relate.EdgeEndBundle.#ctor(NetTopologySuite.Algorithm.IBoundaryNodeRule,NetTopologySuite.GeometriesGraph.EdgeEnd)">
- <summary>
-
- </summary>
- <param name="boundaryNodeRule"></param>
- <param name="e"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Relate.EdgeEndBundle.GetEnumerator">
- <summary>
-
- </summary>
- <returns></returns>
- </member>
- <member name="P:NetTopologySuite.Operation.Relate.EdgeEndBundle.EdgeEnds">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Relate.EdgeEndBundle.Insert(NetTopologySuite.GeometriesGraph.EdgeEnd)">
- <summary>
-
- </summary>
- <param name="e"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Relate.EdgeEndBundle.ComputeLabel(NetTopologySuite.Algorithm.IBoundaryNodeRule)">
- <summary>
- This computes the overall edge label for the set of
- edges in this EdgeStubBundle. It essentially merges
- the ON and side labels for each edge.
- These labels must be compatible
- </summary>
- <param name="boundaryNodeRule"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Relate.EdgeEndBundle.ComputeLabelOn(System.Int32,NetTopologySuite.Algorithm.IBoundaryNodeRule)">
- <summary>
- Compute the overall ON location for the list of EdgeStubs.
- (This is essentially equivalent to computing the self-overlay of a single Geometry)
- edgeStubs can be either on the boundary (e.g. Polygon edge)
- OR in the interior (e.g. segment of a LineString)
- of their parent Geometry.
- In addition, GeometryCollections use the <see cref="T:NetTopologySuite.Algorithm.IBoundaryNodeRule"/> to determine
- whether a segment is on the boundary or not.
- Finally, in GeometryCollections it can occur that an edge is both
- on the boundary and in the interior (e.g. a LineString segment lying on
- top of a Polygon edge.) In this case the Boundary is given precedence.
- These observations result in the following rules for computing the ON location:
- if there are an odd number of Bdy edges, the attribute is Bdy
- if there are an even number >= 2 of Bdy edges, the attribute is Int
- if there are any Int edges, the attribute is Int
- otherwise, the attribute is Null.
- </summary>
- <param name="geomIndex"></param>
- <param name="boundaryNodeRule"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Relate.EdgeEndBundle.ComputeLabelSides(System.Int32)">
- <summary>
- Compute the labelling for each side
- </summary>
- <param name="geomIndex"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Relate.EdgeEndBundle.ComputeLabelSide(System.Int32,NetTopologySuite.Geometries.Position)">
- <summary>
- To compute the summary label for a side, the algorithm is:
- FOR all edges
- IF any edge's location is Interior for the side, side location = Interior
- ELSE IF there is at least one Exterior attribute, side location = Exterior
- ELSE side location = Null
- Note that it is possible for two sides to have apparently contradictory information
- i.e. one edge side may indicate that it is in the interior of a point, while
- another edge side may indicate the exterior of the same point. This is
- not an incompatibility - GeometryCollections may contain two Polygons that touch
- along an edge. This is the reason for Interior-primacy rule above - it
- results in the summary label having the Geometry interior on both sides.
- </summary>
- <param name="geomIndex"></param>
- <param name="side"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Relate.EdgeEndBundle.UpdateIM(NetTopologySuite.Geometries.IntersectionMatrix)">
- <summary>
- Update the IM with the contribution for the computed label for the EdgeStubs.
- </summary>
- <param name="im"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Relate.EdgeEndBundle.Write(System.IO.StreamWriter)">
- <summary>
-
- </summary>
- <param name="outstream"></param>
- </member>
- <member name="T:NetTopologySuite.Operation.Relate.EdgeEndBundleStar">
- <summary>
- An ordered list of <c>EdgeEndBundle</c>s around a <c>RelateNode</c>.
- They are maintained in CCW order (starting with the positive x-axis) around the node
- for efficient lookup and topology building.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Relate.EdgeEndBundleStar.Insert(NetTopologySuite.GeometriesGraph.EdgeEnd)">
- <summary>
- Insert a EdgeEnd in order in the list.
- If there is an existing EdgeStubBundle which is parallel, the EdgeEnd is
- added to the bundle. Otherwise, a new EdgeEndBundle is created
- to contain the EdgeEnd.
- </summary>
- <param name="e"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Relate.EdgeEndBundleStar.UpdateIM(NetTopologySuite.Geometries.IntersectionMatrix)">
- <summary>
- Update the IM with the contribution for the EdgeStubs around the node.
- </summary>
- <param name="im"></param>
- </member>
- <member name="T:NetTopologySuite.Operation.Relate.RelateComputer">
- <summary>
- Computes the topological relationship between two Geometries.
- RelateComputer does not need to build a complete graph structure to compute
- the IntersectionMatrix. The relationship between the geometries can
- be computed by simply examining the labelling of edges incident on each node.
- RelateComputer does not currently support arbitrary GeometryCollections.
- This is because GeometryCollections can contain overlapping Polygons.
- In order to correct compute relate on overlapping Polygons, they
- would first need to be noded and merged (if not explicitly, at least
- implicitly).
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Relate.RelateComputer.#ctor(NetTopologySuite.GeometriesGraph.GeometryGraph[])">
- <summary>
-
- </summary>
- <param name="arg"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Relate.RelateComputer.ComputeIM">
- <summary>
-
- </summary>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Relate.RelateComputer.InsertEdgeEnds(System.Collections.Generic.IEnumerable{NetTopologySuite.GeometriesGraph.EdgeEnd})">
- <summary>
-
- </summary>
- <param name="ee"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Relate.RelateComputer.ComputeProperIntersectionIM(NetTopologySuite.GeometriesGraph.Index.SegmentIntersector,NetTopologySuite.Geometries.IntersectionMatrix)">
- <summary>
-
- </summary>
- <param name="intersector"></param>
- <param name="im"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Relate.RelateComputer.CopyNodesAndLabels(System.Int32)">
- <summary>
- Copy all nodes from an arg point into this graph.
- The node label in the arg point overrides any previously computed
- label for that argIndex.
- (E.g. a node may be an intersection node with
- a computed label of Boundary,
- but in the original arg Geometry it is actually
- in the interior due to the Boundary Determination Rule)
- </summary>
- <param name="argIndex"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Relate.RelateComputer.ComputeIntersectionNodes(System.Int32)">
- <summary>
- Insert nodes for all intersections on the edges of a Geometry.
- Label the created nodes the same as the edge label if they do not already have a label.
- This allows nodes created by either self-intersections or
- mutual intersections to be labelled.
- Endpoint nodes will already be labelled from when they were inserted.
- </summary>
- <param name="argIndex"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Relate.RelateComputer.LabelIntersectionNodes(System.Int32)">
- <summary>
- For all intersections on the edges of a Geometry,
- label the corresponding node IF it doesn't already have a label.
- This allows nodes created by either self-intersections or
- mutual intersections to be labelled.
- Endpoint nodes will already be labelled from when they were inserted.
- </summary>
- <param name="argIndex"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Relate.RelateComputer.ComputeDisjointIM(NetTopologySuite.Geometries.IntersectionMatrix,NetTopologySuite.Algorithm.IBoundaryNodeRule)">
- <summary>
- If the Geometries are disjoint, we need to enter their dimension and
- boundary dimension in the Ext rows in the IM
- </summary>
- <param name="im">An intersection matrix</param>
- <param name="boundaryNodeRule">The Boundary Node Rule to use</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Relate.RelateComputer.GetBoundaryDim(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Algorithm.IBoundaryNodeRule)">
- <summary>
- Compute the IM entry for the intersection of the boundary
- of a geometry with the Exterior.
- This is the nominal dimension of the boundary
- unless the boundary is empty, in which case it is <see cref="F:NetTopologySuite.Geometries.Dimension.False"/>.
- For linear geometries the Boundary Node Rule determines
- whether the boundary is empty.
- </summary>
- <param name="geom">The geometry providing the boundary</param>
- <param name="boundaryNodeRule">The Boundary Node Rule to use</param>
- <returns>The IM dimension entry</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Relate.RelateComputer.LabelNodeEdges">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Relate.RelateComputer.UpdateIM(NetTopologySuite.Geometries.IntersectionMatrix)">
- <summary>
- Update the IM with the sum of the IMs for each component.
- </summary>
- <param name="im"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Relate.RelateComputer.LabelIsolatedEdges(System.Int32,System.Int32)">
- <summary>
- Processes isolated edges by computing their labelling and adding them
- to the isolated edges list.
- Isolated edges are guaranteed not to touch the boundary of the target (since if they
- did, they would have caused an intersection to be computed and hence would
- not be isolated).
- </summary>
- <param name="thisIndex"></param>
- <param name="targetIndex"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Relate.RelateComputer.LabelIsolatedEdge(NetTopologySuite.GeometriesGraph.Edge,System.Int32,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Label an isolated edge of a graph with its relationship to the target point.
- If the target has dim 2 or 1, the edge can either be in the interior or the exterior.
- If the target has dim 0, the edge must be in the exterior.
- </summary>
- <param name="e"></param>
- <param name="targetIndex"></param>
- <param name="target"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Relate.RelateComputer.LabelIsolatedNodes">
- <summary>
- Isolated nodes are nodes whose labels are incomplete
- (e.g. the location for one Geometry is null).
- This is the case because nodes in one graph which don't intersect
- nodes in the other are not completely labelled by the initial process
- of adding nodes to the nodeList.
- To complete the labelling we need to check for nodes that lie in the
- interior of edges, and in the interior of areas.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Relate.RelateComputer.LabelIsolatedNode(NetTopologySuite.GeometriesGraph.Node,System.Int32)">
- <summary>
- Label an isolated node with its relationship to the target point.
- </summary>
- <param name="n"></param>
- <param name="targetIndex"></param>
- </member>
- <member name="T:NetTopologySuite.Operation.Relate.RelateNode">
- <summary>
- A RelateNode is a Node that maintains a list of EdgeStubs
- for the edges that are incident on it.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Relate.RelateNode.#ctor(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.GeometriesGraph.EdgeEndStar)">
- <summary>
-
- </summary>
- <param name="coord"></param>
- <param name="edges"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Relate.RelateNode.ComputeIM(NetTopologySuite.Geometries.IntersectionMatrix)">
- <summary>
- Update the IM with the contribution for this component.
- A component only contributes if it has a labelling for both parent geometries.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Relate.RelateNode.UpdateIMFromEdges(NetTopologySuite.Geometries.IntersectionMatrix)">
- <summary>
- Update the IM with the contribution for the EdgeEnds incident on this node.
- </summary>
- <param name="im"></param>
- </member>
- <member name="T:NetTopologySuite.Operation.Relate.RelateNodeFactory">
- <summary>
- Used by the <c>NodeMap</c> in a <c>RelateNodeGraph</c> to create <c>RelateNode</c>s.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Relate.RelateNodeFactory.CreateNode(NetTopologySuite.Geometries.Coordinate)">
- <summary>
-
- </summary>
- <param name="coord"></param>
- <returns></returns>
- </member>
- <member name="T:NetTopologySuite.Operation.Relate.RelateNodeGraph">
- <summary>
- Implements the simple graph of Nodes and EdgeEnd which is all that is
- required to determine topological relationships between Geometries.
- Also supports building a topological graph of a single Geometry, to
- allow verification of valid topology.
- It is not necessary to create a fully linked
- PlanarGraph to determine relationships, since it is sufficient
- to know how the Geometries interact locally around the nodes.
- In fact, this is not even feasible, since it is not possible to compute
- exact intersection points, and hence the topology around those nodes
- cannot be computed robustly.
- The only Nodes that are created are for improper intersections;
- that is, nodes which occur at existing vertices of the Geometries.
- Proper intersections (e.g. ones which occur between the interior of line segments)
- have their topology determined implicitly, without creating a Node object
- to represent them.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Relate.RelateNodeGraph.GetNodeEnumerator">
- <summary>
-
- </summary>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Relate.RelateNodeGraph.Build(NetTopologySuite.GeometriesGraph.GeometryGraph)">
- <summary>
-
- </summary>
- <param name="geomGraph"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Relate.RelateNodeGraph.ComputeIntersectionNodes(NetTopologySuite.GeometriesGraph.GeometryGraph,System.Int32)">
- <summary>
- Insert nodes for all intersections on the edges of a Geometry.
- Label the created nodes the same as the edge label if they do not already have a label.
- This allows nodes created by either self-intersections or
- mutual intersections to be labelled.
- Endpoint nodes will already be labelled from when they were inserted.
- Precondition: edge intersections have been computed.
- </summary>
- <param name="geomGraph"></param>
- <param name="argIndex"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Relate.RelateNodeGraph.CopyNodesAndLabels(NetTopologySuite.GeometriesGraph.GeometryGraph,System.Int32)">
- <summary>
- Copy all nodes from an arg point into this graph.
- The node label in the arg point overrides any previously computed
- label for that argIndex.
- (E.g. a node may be an intersection node with
- a computed label of Boundary,
- but in the original arg Geometry it is actually
- in the interior due to the Boundary Determination Rule).
- </summary>
- <param name="geomGraph"></param>
- <param name="argIndex"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Relate.RelateNodeGraph.InsertEdgeEnds(System.Collections.Generic.IList{NetTopologySuite.GeometriesGraph.EdgeEnd})">
- <summary>
-
- </summary>
- <param name="ee"></param>
- </member>
- <member name="T:NetTopologySuite.Operation.Relate.RelateOp">
- <summary>
- Implements the SFS <c>relate()</c> generalized spatial predicate on two <see cref="T:NetTopologySuite.Geometries.Geometry"/>s.
- <br/>
- The class supports specifying a custom <see cref="T:NetTopologySuite.Algorithm.IBoundaryNodeRule"/>
- to be used during the relate computation.
- </summary>
- <remarks>
- If named spatial predicates are used on the result <see cref="P:NetTopologySuite.Operation.Relate.RelateOp.IntersectionMatrix"/>
- of the RelateOp, the result may or not be affected by the
- choice of <tt>BoundaryNodeRule</tt>, depending on the exact nature of the pattern.
- For instance, <see cref="M:NetTopologySuite.Geometries.IntersectionMatrix.IsIntersects"/> is insensitive
- to the choice of <tt>BoundaryNodeRule</tt>,
- whereas <see cref="M:NetTopologySuite.Geometries.IntersectionMatrix.IsTouches(NetTopologySuite.Geometries.Dimension,NetTopologySuite.Geometries.Dimension)"/> is affected by the rule chosen.
- <para/>
- <b>Note:</b> custom Boundary Node Rules do not (currently)
- affect the results of other <see cref="T:NetTopologySuite.Geometries.Geometry"/> methods (such
- as <see cref="P:NetTopologySuite.Geometries.Geometry.Boundary"/>. The results of
- these methods may not be consistent with the relationship computed by
- a custom Boundary Node Rule.
- </remarks>
- </member>
- <member name="M:NetTopologySuite.Operation.Relate.RelateOp.Relate(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes the <see cref="P:NetTopologySuite.Operation.Relate.RelateOp.IntersectionMatrix"/> for the spatial relationship
- between two <see cref="T:NetTopologySuite.Geometries.Geometry"/>s, using the default (OGC SFS) Boundary Node Rule
- </summary>
- <param name="a">A geometry to test</param>
- <param name="b">A geometry to test</param>
- <returns>The <c>IntersectionMatrix</c> for the spatial relationship between the geometries</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Relate.RelateOp.Relate(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Algorithm.IBoundaryNodeRule)">
- <summary>
- Computes the <see cref="P:NetTopologySuite.Operation.Relate.RelateOp.IntersectionMatrix"/> for the spatial relationship
- between two <see cref="T:NetTopologySuite.Geometries.Geometry"/>s, using the specified Boundary Node Rule
- </summary>
- <param name="a">A geometry to test</param>
- <param name="b">A geometry to test</param>
- <param name="boundaryNodeRule">The Boundary Node Rule to use</param>
- <returns>The <c>IntersectionMatrix</c> for the spatial relationship between the geometries</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Relate.RelateOp.#ctor(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Creates a new Relate operation, using the default (OGC SFS) Boundary Node Rule.
- </summary>
- <param name="g0">a Geometry to relate</param>
- <param name="g1">another Geometry to relate</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Relate.RelateOp.#ctor(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Algorithm.IBoundaryNodeRule)">
- <summary>
- Creates a new Relate operation, using the default (OGC SFS) Boundary Node Rule.
- </summary>
- <param name="g0">a Geometry to relate</param>
- <param name="g1">another Geometry to relate</param>
- <param name="boundaryNodeRule">The Boundary Node Rule to use</param>
- </member>
- <member name="P:NetTopologySuite.Operation.Relate.RelateOp.IntersectionMatrix">
- <summary>
- Gets the IntersectionMatrix for the spatial relationship
- between the input geometries.
- </summary>
- </member>
- <member name="T:NetTopologySuite.Operation.RelateNG.AdjacentEdgeLocator">
- <summary>
- Determines the location for a point which is known to lie
- on at least one edge of a set of polygons.
- This provides the union-semantics for determining
- point location in a GeometryCollection, which may
- have polygons with adjacent edges which are effectively
- in the interior of the geometry.
- Note that it is also possible to have adjacent edges which
- lie on the boundary of the geometry
- (e.g. a polygon contained within another polygon with adjacent edges).
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="T:NetTopologySuite.Operation.RelateNG.BasicPredicate">
- <summary>
- The base class for relate topological predicates
- with a boolean value.
- Implements tri-state logic for the predicate value,
- to detect when the final value has been determined.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.BasicPredicate.IsIntersection(NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Location)">
- <summary>
- Tests if two geometries intersect
- based on an interaction at given locations.
- </summary>
- <param name="locA">The location on geometry A</param>
- <param name="locB">The location on geometry B</param>
- <returns><c>true</c> if the geometries intersect</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.BasicPredicate.SetValue(System.Boolean)">
- <summary>
- Updates the predicate value to the given state
- if it is currently unknown.
- </summary>
- <param name="val">The predicate value to update</param>
- </member>
- <member name="T:NetTopologySuite.Operation.RelateNG.DimensionLocation">
- <summary>
- Codes which combine a geometry <see cref="T:NetTopologySuite.Geometries.Dimension"/> and a <see cref="T:NetTopologySuite.Geometries.Location"/>
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="T:NetTopologySuite.Operation.RelateNG.EdgeSegmentIntersector">
- <summary>
- Tests segments of <see cref="T:NetTopologySuite.Operation.RelateNG.RelateSegmentString"/>s
- and if they intersect adds the intersection(s)
- to the <see cref="T:NetTopologySuite.Operation.RelateNG.TopologyComputer"/>.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="T:NetTopologySuite.Operation.RelateNG.IMPatternMatcher">
- <summary>
- A predicate that matches a DE-9IM pattern.
- <para/>
- <h3>FUTURE WORK</h3>
- <para/>
- Extend the expressiveness of the DE-9IM pattern language to allow:
- <list type="bullet">
- <item><description>Combining patterns via disjunction using "|".</description></item>
- <item><description>Limiting patterns via geometry dimension.
- A dimension limit specifies the allowable dimensions
- for both or individual geometries as [d] or[ab] or[ab; cd]</description></item>
- </list>
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="T:NetTopologySuite.Operation.RelateNG.IMPredicate">
- <summary>
- A base class for predicates which are
- determined using entries in a <see cref="T:NetTopologySuite.Geometries.IntersectionMatrix"/>.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="F:NetTopologySuite.Operation.RelateNG.IMPredicate.dimA">
- <summary>
- Dimenension of geometry A
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.RelateNG.IMPredicate.dimB">
- <summary>
- Dimenension of geometry B
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.RelateNG.IMPredicate.intMatrix">
- <summary>
- The intersection matrix
- </summary>
- </member>
- <member name="P:NetTopologySuite.Operation.RelateNG.IMPredicate.IsDetermined">
- <summary>
- Tests whether predicate evaluation can be short-circuited
- due to the current state of the matrix providing
- enough information to determine the predicate value.
- <para/>
- If this value is true then <see cref="P:NetTopologySuite.Operation.RelateNG.IMPredicate.ValueIM"/>
- must provide the correct result of the predicate.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.IMPredicate.IntersectsExteriorOf(System.Boolean)">
- <summary>
- Tests whether the exterior of the specified input geometry
- is intersected by any part of the other input.
- </summary>
- <param name="isA">A flag defining the input geometry</param>
- <returns><c>true</c> if the input geometry exterior is intersected</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.IMPredicate.Finish">
- <summary>
- Sets the final value based on the state of the IM.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Operation.RelateNG.IMPredicate.ValueIM">
- <summary>
- Gets the value of the predicate according to the current
- intersection matrix state.
- </summary>
- </member>
- <member name="T:NetTopologySuite.Operation.RelateNG.IntersectionMatrixPattern">
- <summary>
- String constants for DE-9IM matrix patterns for topological relationships.
- These can be used with <see cref="M:NetTopologySuite.Operation.RelateNG.RelateNG.Evaluate(NetTopologySuite.Geometries.Geometry,System.String)"/>
- and <see cref="M:NetTopologySuite.Operation.RelateNG.RelateNG.Relate(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,System.String)"/>.
- <para/>
- <h3> DE - 9IM Pattern Matching </h3>
- Matrix patterns are specified as a 9 - character string
- containing the pattern symbols for the DE-9IM 3x3 matrix entries,
- listed row - wise.
- The pattern symbols are:
- <list type="table">
- <listheader><term>Code</term><description>Description</description></listheader>
- <item><term>0</term><description>topological interaction has dimension 0</description></item>
- <item><term>1</term><description>topological interaction has dimension 1</description></item>
- <item><term>2</term><description>topological interaction has dimension 2</description></item>
- <item><term>F</term><description>no topological interaction</description></item>
- <item><term>T</term><description>topological interaction of any dimension</description></item>
- <item><term>*</term><description>any topological interaction is allowed, including none</description></item>
- </list>
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="F:NetTopologySuite.Operation.RelateNG.IntersectionMatrixPattern.Adjacent">
- <summary>
- A DE-9IM pattern to detect whether two polygonal geometries are adjacent along
- an edge, but do not overlap.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.RelateNG.IntersectionMatrixPattern.ContainsProperly">
- <summary>
- A DE-9IM pattern to detect a geometry which properly contains another
- geometry (i.e. which lies entirely in the interior of the first geometry).
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.RelateNG.IntersectionMatrixPattern.InteriorIntersects">
- <summary>
- A DE-9IM pattern to detect if two geometries intersect in their interiors.
- This can be used to determine if a polygonal coverage contains any overlaps
- (although not whether they are correctly noded).
- </summary>
- </member>
- <member name="T:NetTopologySuite.Operation.RelateNG.LinearBoundary">
- <summary>
- Determines the boundary points of a linear geometry,
- using a <see cref="T:NetTopologySuite.Algorithm.IBoundaryNodeRule"/>.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="T:NetTopologySuite.Operation.RelateNG.NodeSection">
- <summary>
- Represents a computed node along with the incident edges on either side of
- it (if they exist).
- <para/>
- This captures the information about a node in a geometry component
- required to determine the component's contribution to the node topology.
- A node in an area geometry always has edges on both sides of the node.
- A node in a linear geometry may have one or other incident edge missing, if
- the node occurs at an endpoint of the line.
- The edges of an area node are assumed to be provided
- with CW-shell orientation (as per JTS and NTS norm).
- This must be enforced by the caller.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="T:NetTopologySuite.Operation.RelateNG.NodeSection.EdgeAngleComparator">
- <summary>
- Compares sections by the angle the entering edge makes with the positive X axis.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Operation.RelateNG.NodeSection.Polygonal">
- <summary>
- Gets the polygon this section is part of.
- Will be <c>null</c> if section is not on a polygon boundary.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.NodeSection.CompareTo(NetTopologySuite.Operation.RelateNG.NodeSection)">
- <summary>
- Compare node sections by parent geometry, dimension, element id and ring id,
- and edge vertices.
- Sections are assumed to be at the same node point.</summary>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.NodeSections.PrepareSections">
- <summary>
- Sorts the sections so that:
- <list type="bullet">
- <item><description>lines are before areas</description></item>
- <item><description>edges from the same polygon are contiguous</description></item>
- </list>
- </summary>
- </member>
- <member name="T:NetTopologySuite.Operation.RelateNG.PolygonNodeConverter">
- <summary>
- Converts the node sections at a polygon node where
- a shell and one or more holes touch, or two or more holes touch.
- This converts the node topological structure from
- the OGC "touching-rings" (AKA "minimal-ring") model to the equivalent "self-touch"
- (AKA "inverted/exverted ring" or "maximal ring") model.
- In the "self-touch" model the converted NodeSection corners enclose areas
- which all lies inside the polygon
- (i.e. they does not enclose hole edges).
- This allows {@link RelateNode} to use simple area-additive semantics
- for adding edges and propagating edge locations.
- <para/>
- The input node sections are assumed to have canonical orientation
- (CW shells and CCW holes).
- The arrangement of shells and holes must be topologically valid.
- Specifically, the node sections must not cross or be collinear.
- <para/>
- This supports multiple shell-shell touches
- (including ones containing holes), and hole-hole touches,
- This generalizes the relate algorithm to support
- both the OGC model and the self-touch model.
- </summary>
- <author>Martin Davis</author>
- <seealso cref="T:NetTopologySuite.Operation.RelateNG.RelateNode"/>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.PolygonNodeConverter.Convert(System.Collections.Generic.List{NetTopologySuite.Operation.RelateNG.NodeSection})">
- <summary>
- Converts a list of sections of valid polygon rings
- to have "self-touching" structure.
- There are the same number of output sections as input ones.
- </summary>
- <param name="polySections">The original sections</param>
- <returns>The converted sections</returns>
- </member>
- <member name="F:NetTopologySuite.Operation.RelateNG.RelateEdge.DIM_UNKNOWN">
- <summary>
- The dimension of an input geometry which is not known
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.RelateNG.RelateEdge.LOC_UNKNOWN">
- <summary>
- Indicates that the location is currently unknown
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.RelateEdge.MergeDimEdgeLoc(System.Boolean,NetTopologySuite.Geometries.Location)">
- <summary>
- Area edges override Line edges.
- Merging edges of same dimension is a no-op for
- the dimension and on location.
- But merging an area edge into a line edge
- sets the dimension to A and the location to BOUNDARY.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.RelateGeometry.IsZeroLength(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests if all geometry linear elements are zero-length.
- For efficiency the test avoids computing actual length.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Operation.RelateNG.RelateGeometry.DimensionReal">
- <summary>
- Gets the actual non-empty dimension of the geometry.
- Zero-length <c>LineString</c>s are treated as <c>Point</c>s.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.RelateGeometry.LocateAreaVertex(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Locates a vertex of a polygon.
- <para/>
- A vertex of a <c>Polygon</c> or <c>MultiPolygon</c> is on
- the <see cref="F:NetTopologySuite.Geometries.Location.Boundary"/>.
- But a vertex of an overlapped polygon in a <c>GeometryCollection</c>
- may be in the <see cref="F:NetTopologySuite.Geometries.Location.Interior"/>.
- </summary>
- <param name="pt">The polygon vertex</param>
- <returns>The location of the vertex</returns>
- </member>
- <member name="P:NetTopologySuite.Operation.RelateNG.RelateGeometry.IsSelfNodingRequired">
- <summary>
- Gets a value that indicates whether the geometry requires self-noding
- for correct evaluation of specific spatial predicates.
- Self-noding is required for geometries which may self-cross
- - i.e.lines, and overlapping elements in GeometryCollections.
- Self-noding is not required for polygonal geometries,
- since they can only touch at vertices.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Operation.RelateNG.RelateGeometry.IsPolygonal">
- <summary>
- Tests whether the geometry has polygonal topology.
- This is not the case if it is a GeometryCollection
- containing more than one polygon (since they may overlap
- or be adjacent).
- The significance is that polygonal topology allows more assumptions
- about the location of boundary vertices.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.RelateGeometry.ExtractSegmentStrings(System.Boolean,NetTopologySuite.Geometries.Envelope)">
- <summary>
- Extract RelateSegmentStrings from the geometry which
- intersect a given envelope.
- If the envelope is null all edges are extracted.
- </summary>
- <param name="isA">Flag indicating if this </param>
- <param name="env"></param>
- <returns>A list of <c>RelateSegmentString</c>s</returns>
- </member>
- <member name="T:NetTopologySuite.Operation.RelateNG.RelateMatrixPredicate">
- <summary>
- Evaluates the full relate <see cref="T:NetTopologySuite.Geometries.IntersectionMatrix"/>.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="P:NetTopologySuite.Operation.RelateNG.RelateMatrixPredicate.IM">
- <summary>
- Gets the current state of the IM matrix (which may only be partially complete).
- </summary>
- </member>
- <member name="T:NetTopologySuite.Operation.RelateNG.RelateNG">
- <summary>
- Computes the value of topological predicates between two geometries based on the
- <a href = "https://en.wikipedia.org/wiki/DE-9IM" > Dimensionally - Extended 9-Intersection Model</a>(DE-9IM).
- Standard and custom topological predicates are provided by <see cref="T:NetTopologySuite.Operation.RelateNG.RelatePredicate"/>.
- <para/>
- The RelateNG algorithm has the following capabilities:
- <list type="number">
- <item><description>Efficient short-circuited evaluation of topological predicates
- (including matching custom DE-9IM matrix patterns)</description></item>
- <item><description>Optimized repeated evaluation of predicates against a single geometry
- via cached spatial indexes (AKA "prepared mode")</description></item>
- <item><description>Robust computation (only point-local topology is required,
- so invalid geometry topology does not cause failures)</description></item>
- <item><description><see cref="T:NetTopologySuite.Geometries.GeometryCollection"/> inputs containing mixed types and overlapping polygons
- are supported, using <i>union semantics</i>.</description></item>
- <item><description>Zero - length LineStrings are treated as being topologically identical to Points.</description></item>
- <item><description>Support for <see cref="T:NetTopologySuite.Algorithm.IBoundaryNodeRule"/>s.</description></item>
- </list>
-
- See <see cref="T:NetTopologySuite.Operation.RelateNG.IntersectionMatrixPattern"/>
- for a description of DE - 9IM patterns.
-
- If not specified, the standard <see cref="T:NetTopologySuite.Algorithm.BoundaryNodeRules.Mod2BoundaryNodeRule"/> is used.
- RelateNG operates in 2D only; it ignores any Z ordinates.
-
- This implementation replaces <see cref="T:NetTopologySuite.Operation.Relate.RelateOp"/>
- and <see cref="T:NetTopologySuite.Geometries.Prepared.IPreparedGeometry"/>.
-
- <h3>FUTURE WORK</h3>
- <list type="bullet">
- <item><description>Support for a distance tolerance to provide "approximate" predicate evaluation</description></item>
- </list>
- </summary>
- <author>Martin Davis</author>
- <seealso cref="T:NetTopologySuite.Operation.Relate.RelateOp"/>
- <seealso cref="T:NetTopologySuite.Geometries.Prepared.IPreparedGeometry"/>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.RelateNG.Relate(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Operation.RelateNG.TopologyPredicate)">
- <summary>
- Tests whether the topological relationship between two geometries
- satisfies a topological predicate.
- </summary>
- <param name="a">The A input geometry</param>
- <param name="b">The B input geometry</param>
- <param name="pred">The topological predicate</param>
- <returns><c>true</c> if the topological relationship is satisfied</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.RelateNG.Relate(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Operation.RelateNG.TopologyPredicate,NetTopologySuite.Algorithm.IBoundaryNodeRule)">
- <summary>
- Tests whether the topological relationship between two geometries
- satisfies a topological predicate,
- using a given <see cref="T:NetTopologySuite.Algorithm.IBoundaryNodeRule"/>.</summary>
- <param name="a">The A input geometry</param>
- <param name="b">The B input geometry</param>
- <param name="pred">The topological predicate</param>
- <param name="bnRule">The Boundary Node Rule to use</param>
- <returns><c>true</c> if the topological relationship is satisfied</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.RelateNG.Relate(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,System.String)">
- <summary>
- Tests whether the topological relationship to a geometry
- matches a DE-9IM matrix pattern.
- </summary>
- <param name="a">The A input geometry</param>
- <param name="b">The B input geometry</param>
- <param name="imPattern">The DE-9IM pattern to match</param>
- <returns><c>true</c> if the geometries relationship matches the DE-9IM pattern</returns>
- <seealso cref="T:NetTopologySuite.Operation.RelateNG.IntersectionMatrixPattern"/>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.RelateNG.Relate(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes the DE-9IM matrix
- for the topological relationship between two geometries.
- </summary>
- <param name="a">The A input geometry</param>
- <param name="b">The B input geometry</param>
- <returns>The DE-9IM matrix for the topological relationship</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.RelateNG.Relate(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Algorithm.IBoundaryNodeRule)">
- <summary>
- Computes the DE-9IM matrix
- for the topological relationship between two geometries.
- </summary>
- <param name="a">The A input geometry</param>
- <param name="b">The B input geometry</param>
- <param name="bnRule">The Boundary Node Rule to use</param>
- <returns>The DE-9IM matrix for the topological relationship</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.RelateNG.Prepare(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Creates a prepared RelateNG instance to optimize the
- evaluation of relationships against a single geometry.
- </summary>
- <param name="a">The A input geometry</param>
- <returns>A prepared instance</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.RelateNG.Prepare(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Algorithm.IBoundaryNodeRule)">
- <summary>
- Creates a prepared RelateNG instance to optimize the
- computation of predicates against a single geometry,
- using a given <see cref="T:NetTopologySuite.Algorithm.IBoundaryNodeRule"/>.
- </summary>
- <param name="a">The A input geometry</param>
- <param name="bnRule">The Boundary Node Rule to use</param>
- <returns>A prepared instance</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.RelateNG.Evaluate(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes the DE-9IM matrix for the topological relationship to a geometry.
- </summary>
- <param name="b">The B geometry</param>
- <returns>the DE-9IM matrix</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.RelateNG.Evaluate(NetTopologySuite.Geometries.Geometry,System.String)">
- <summary>
- Tests whether the topological relationship to a geometry
- matches a DE-9IM matrix pattern.</summary>
- <param name="b">The B geometry</param>
- <param name="imPattern"></param>
- <returns><c>true</c> if the geometry's topological relationship matches the DE-9IM pattern</returns>
- <seealso cref="T:NetTopologySuite.Operation.RelateNG.IntersectionMatrixPattern"/>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.RelateNG.Evaluate(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Operation.RelateNG.TopologyPredicate)">
- <summary>
- Tests whether the topological relationship to a geometry
- satisfies a topology predicate.
- </summary>
- <param name="b">The B geometry</param>
- <param name="predicate">The topological predicate</param>
- <returns><c>true</c> if the predicate is satisfied</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.RelateNG.ComputePP(NetTopologySuite.Operation.RelateNG.RelateGeometry,NetTopologySuite.Operation.RelateNG.TopologyComputer)">
- <summary>
- An optimized algorithm for evaluating P/P cases.
- It tests one point set against the other.
- </summary>
- </member>
- <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)">
- <summary>
- Compute the topology of a line endpoint.
- Also reports if the line end is in the exterior of the target geometry,
- to optimize testing multiple exterior endpoints.
- </summary>
- <param name="geom"></param>
- <param name="isA"></param>
- <param name="pt"></param>
- <param name="geomTarget"></param>
- <param name="topoComputer"></param>
- <returns><c>true</c> if the line endpoint is in the exterior of the target</returns>
- </member>
- <member name="F:NetTopologySuite.Operation.RelateNG.RelateNode._edges">
- <summary>
- A list of the edges around the node in CCW order,
- ordered by their CCW angle with the positive X-axis.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.RelateNode.AddEdge(System.Boolean,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Dimension,System.Boolean)">
- <summary>
- Adds or merges an edge to the node.
- </summary>
- <param name="isA"></param>
- <param name="dirPt"></param>
- <param name="dim">Dimension of the geometry element containing the edge</param>
- <param name="isForward">The direction of the edge</param>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.RelateNode.Finish(System.Boolean,System.Boolean)">
- <summary>
- Computes the final topology for the edges around this node.
- Although nodes lie on the boundary of areas or the interior of lines,
- in a mixed GC they may also lie in the interior of an area.
- This changes the locations of the sides and line to Interior.
- </summary>
- <param name="isAreaInteriorA"><c>true</c> if the node is in the interior of A</param>
- <param name="isAreaInteriorB"><c>true</c> if the node is in the interior of B</param>
- </member>
- <member name="T:NetTopologySuite.Operation.RelateNG.RelatePointLocator">
- <summary>
- Locates a point on a geometry, including mixed-type collections.
- The dimension of the containing geometry element is also determined.
- GeometryCollections are handled with union semantics;
- i.e. the location of a point is that location of that point
- on the union of the elements of the collection.
- <para/>
- Union semantics for GeometryCollections has the following behaviours:
- <list type="number">
- <item><description>For a mixed-dimension (heterogeneous) collection
- a point may lie on two geometry elements with different dimensions.
- In this case the location on the largest-dimension element is reported.</description></item>
- <item><description>For a collection with overlapping or adjacent polygons,
- points on polygon element boundaries may lie in the effective interior
- of the collection geometry.</description></item>
- </list>
- Prepared mode is supported via cached spatial indexes.
- <para/>
- Supports specifying the <see cref="T:NetTopologySuite.Algorithm.IBoundaryNodeRule"/> to use.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.RelatePointLocator.LocateLineEndWithDim(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Locates a line endpoint, as a <see cref="T:NetTopologySuite.Operation.RelateNG.DimensionLocation"/>.
- In a mixed-dim GC, the line end point may also lie in an area.
- In this case the area location is reported.
- Otherwise, the dimLoc is either LINE_BOUNDARY
- or LINE_INTERIOR, depending on the endpoint valence
- and the BoundaryNodeRule in place.
- </summary>
- <param name="p">The line end point to locate</param>
- <returns>The dimension and location of the line end point</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.RelatePointLocator.LocateNode(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Locates a point which is known to be a node of the geometry
- (i.e. a vertex or on an edge).
- </summary>
- <param name="p">The node point to locate</param>
- <param name="parentPolygonal">The polygon the point is a node of</param>
- <returns>The location of the node point</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.RelatePointLocator.LocateNodeWithDim(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Locates a point which is known to be a node of the geometry,
- as a <see cref="T:NetTopologySuite.Operation.RelateNG.DimensionLocation"/>.
- </summary>
- <param name="p">The node point to locate</param>
- <param name="parentPolygonal">The polygon the point is a node of</param>
- <returns>The dimension and location of the point</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.RelatePointLocator.LocateWithDim(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Computes the topological location (<see cref="T:NetTopologySuite.Geometries.Location"/>) of a single point
- in a Geometry, as well as the dimension of the geometry element the point
- is located in (if not in the Exterior).
- It handles both single-element and multi-element Geometries.
- The algorithm for multi-part Geometries
- takes into account the SFS Boundary Determination Rule.
- </summary>
- <param name="p">The point to locate</param>
- <returns>The <see cref="T:NetTopologySuite.Geometries.Location"/> of the point relative to the input Geometry</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.RelatePointLocator.LocateWithDim(NetTopologySuite.Geometries.Coordinate,System.Boolean,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes the topological location (<see cref="T:NetTopologySuite.Geometries.Location"/>) of a single point
- in a Geometry, as well as the dimension of the geometry element the point
- is located in (if not in the Exterior).
- It handles both single-element and multi-element Geometries.
- The algorithm for multi-part Geometries
- takes into account the SFS Boundary Determination Rule.
- </summary>
- <param name="p">The coordinate to locate</param>
- <param name="isNode">A flag indicating whether the coordinate is a node (on an edge) of the geometry</param>
- <param name="parentPolygonal">The polygon the point is a node of</param>
- <returns>The <see cref="T:NetTopologySuite.Geometries.Location"/> and <see cref="T:NetTopologySuite.Geometries.Dimension"/> of the point relative to the input Geometry
- </returns>
- </member>
- <member name="T:NetTopologySuite.Operation.RelateNG.RelatePredicate">
- <summary>
- Creates predicate instances for evaluating OGC-standard named topological relationships.
- Predicates can be evaluated for geometries using <see cref="T:NetTopologySuite.Operation.RelateNG.RelateNG"/>.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.RelatePredicate.Intersects">
- <summary>
- Creates a predicate to determine whether two geometries intersect.
- <para/>
- The <c>Intersects</c> predicate has the following equivalent definitions:
- <list type="bullet">
- <item><description>The two geometries have at least one point in common</description></item>
- <item><description>The DE-9IM Intersection Matrix for the two geometries matches
- at least one of the patterns
- <list type="bullet">
- <item><description><c>[T********]</c></description></item>
- <item><description><c>[*T*******]</c></description></item>
- <item><description><c>[***T*****]</c></description></item>
- <item><description><c>[****T****]</c></description></item>
- </list>
- <item><description><c>Disjoint() = false</c>
- <br/>(<c>Intersects</c> is the inverse of <c>Disjoint</c>)</description></item></description></item>
- </list>
- </summary>
- <returns>The predicate instance</returns>
- <seealso cref="M:NetTopologySuite.Operation.RelateNG.RelatePredicate.Disjoint"/>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.RelatePredicate.Disjoint">
- <summary>
- Creates a predicate to determine whether two geometries are disjoint.
- <para/>
- The <c>Disjoint</c> predicate has the following equivalent definitions:
- <list type="bullet">
- <item><description>The two geometries have no point in common</description></item>
- <item><description>The DE-9IM Intersection Matrix for the two geometries matches
- <c>[FF*FF****]</c></description></item>
- <item><description><c>Intersects() = false</c>
- <br/>(<c>Disjoint</c> is the inverse of <c>Intersects</c>)</description></item>
- </list>
- </summary>
- <returns>The predicate instance</returns>
- <seealso cref="M:NetTopologySuite.Operation.RelateNG.RelatePredicate.Intersects"/>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.RelatePredicate.Contains">
- <summary>
- Creates a predicate to determine whether a geometry contains another geometry.
- <para/>
- The <c>Contains</c> predicate has the following equivalent definitions:
- <list type="bullet">
- <item><description>Every point of the other geometry is a point of this geometry,
- and the interiors of the two geometries have at least one point in common.</description></item>
- <item><description>The DE-9IM Intersection Matrix for the two geometries matches
- the pattern <c>[T*****FF*]</c></description></item>
- <item><description><c>within(B, A) = true </c>
- <br/>(<c> contains </c> is the converse of <see cref="M:NetTopologySuite.Operation.RelateNG.RelatePredicate.Within"/>)</description></item>
- </list>
- An implication of the definition is that "Geometries do not
- contain their boundary". In other words, if a geometry A is a subset of
- the points in the boundary of a geometry B, <c>B.contains(A) = false</c>.
- (As a concrete example, take A to be a LineString which lies in the boundary of a Polygon B.)
- For a predicate with similar behavior but avoiding
- this subtle limitation, see <see cref="M:NetTopologySuite.Operation.RelateNG.RelatePredicate.Covers"/>.
- </summary>
- <returns>The predicate instance</returns>
- <seealso cref="M:NetTopologySuite.Operation.RelateNG.RelatePredicate.Within"/>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.RelatePredicate.Within">
- <summary>
- Creates a predicate to determine whether a geometry is within another geometry.
- <para/>
- The <c>Within</c> predicate has the following equivalent definitions:
- <list type="bullet">
- <item><description>Every point of this geometry is a point of the other geometry,
- and the interiors of the two geometries have at least one point in common.</description></item>
- <item><description>The DE-9IM Intersection Matrix for the two geometries matches
- <c>[T*F**F***]</c></description></item>
- <item><description><c>contains(B, A) = true</c>
- <br/>(<c>Within</c> is the converse of <see cref="M:NetTopologySuite.Operation.RelateNG.RelatePredicate.Contains"/>)</description></item>
- </list>
- An implication of the definition is that
- "The boundary of a Geometry is not within the Geometry".
- In other words, if a geometry A is a subset of
- the points in the boundary of a geometry B, <c>within(B, A) = false</c>
- (As a concrete example, take A to be a LineString which lies in the boundary of a Polygon B.)
- For a predicate with similar behavior but avoiding
- this subtle limitation, see <see cref="M:NetTopologySuite.Operation.RelateNG.RelatePredicate.CoveredBy"/>.
- </summary>
- <returns>The predicate instance</returns>
- <seealso cref="M:NetTopologySuite.Operation.RelateNG.RelatePredicate.Contains"/>
- <seealso cref="M:NetTopologySuite.Operation.RelateNG.RelatePredicate.CoveredBy"/>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.RelatePredicate.Covers">
- <summary>
- Creates a predicate to determine whether a geometry covers another geometry.
- <para/>
- The <c>Covers</c> predicate has the following equivalent definitions:
- <list type="bullet">
- <item><description>Every point of the other geometry is a point of this geometry.</description></item>
- <item><description>The DE-9IM Intersection Matrix for the two geometries matches
- at least one of the following patterns:
- <list type="bullet">
- <item><c><description>[T*****FF*]</description></c></item>
- <item><c><description>[*T****FF*]</description></c></item>
- <item><c><description>[***T**FF*]</description></c></item>
- <item><c><description>[****T*FF*]</description></c></item>
- </list></description></item>
- <item><description><c>CoveredBy(b, a) = true</c>
- <br/>(<c>Covers</c> is the converse of <see cref="M:NetTopologySuite.Operation.RelateNG.RelatePredicate.CoveredBy"/>)</description></item>
- </list>
- If either geometry is empty, the value of this predicate is <c>false</c>.
- <para/>
- This predicate is similar to <see cref="M:NetTopologySuite.Operation.RelateNG.RelatePredicate.Contains"/>,
- but is more inclusive (i.e. returns <c>true</c> for more cases).
- In particular, unlike <c>Contains</c> it does not distinguish between
- points in the boundary and in the interior of geometries.
- For most cases, <c>Covers</c> should be used in preference to <c>Contains</c>.
- As an added benefit, <c>Covers</c> is more amenable to optimization,
- and hence should be more performant.
- </summary>
- <returns>The predicate instance</returns>
- <seealso cref="M:NetTopologySuite.Operation.RelateNG.RelatePredicate.CoveredBy"/>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.RelatePredicate.CoveredBy">
- <summary>
- Creates a predicate to determine whether a geometry is covered by another geometry.
- <para/>
- The <c>CoveredBy</c> predicate has the following equivalent definitions:
- <list type="bullet">
- <item><description>Every point of this geometry is a point of the other geometry.</description></item>
- <item><description>The DE-9IM Intersection Matrix for the two geometries matches
- at least one of the following patterns:
- <list type="bullet">
- <item><description><c>[T*F**F***]</c></description></item>
- <item><description><c>[*TF**F***]</c></description></item>
- <item><description><c>[**FT*F***]</c></description></item>
- <item><description><c>[**F*TF***]</c></description></item>
- </list></description></item>
- <item><description><c>Covers(B, A) = true</c>
- <br/>(<c>CoveredBy</c> is the converse of <see cref="M:NetTopologySuite.Operation.RelateNG.RelatePredicate.Covers"/>)</description></item>
- </list>
- If either geometry is empty, the value of this predicate is <c>false</c>.
- <para/>
- This predicate is similar to {@link #within},
- but is more inclusive (i.e. returns <c>true</c> for more cases).
- </summary>
- <returns>The predicate instance</returns>
- <seealso cref="M:NetTopologySuite.Operation.RelateNG.RelatePredicate.Covers"/>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.RelatePredicate.Crosses">
- <summary>Creates a predicate to determine whether a geometry crosses another geometry.
- <para/>
- The <c>Crosses</c> predicate has the following equivalent definitions:
- <list type="bullet">
- <item><description>The geometries have some but not all interior points in common.</description></item>
- <item><description>The DE-9IM Intersection Matrix for the two geometries matches
- one of the following patterns:
- <list type="bullet">
- <item><description><c>[T*T******]</c> (for P/L, P/A, and L/A cases)</description></item>
- <item><description><c>[T*****T**]</c> (for L/P, A/P, and A/L cases)</description></item>
- <item><description><c>[0********]</c> (for L/L cases)</description></item>
- </list></description></item>
- </list>
- For the A/A and P/P cases this predicate returns <c>false</c>.
- <para/>
- The SFS defined this predicate only for P/L, P/A, L/L, and L/A cases.
- To make the relation symmetric
- NTS extends the definition to apply to L/P, A/P and A/L cases as well.
- </summary>
- <returns>The crosses predicate</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.RelatePredicate.EqualsTopologically">
- <summary>
- Creates a predicate to determine whether two geometries are topologically equal.
- <para/>
- The <c>Equals</c> predicate has the following equivalent definitions:
- <list type="bullet">
- <item><description> The two geometries have at least one point in common,
- and no point of either geometry lies in the exterior of the other geometry.</description></item>
- <item><description>The DE-9IM Intersection Matrix for the two geometries matches
- the pattern <c>T*F**FFF*</c></description></item></list>
- </summary>
- <returns>The predicate instance</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.RelatePredicate.Overlaps">
- <summary>
- Creates a predicate to determine whether a geometry overlaps another geometry.
- <para/>
- The <c>Overlaps</c> predicate has the following equivalent definitions:
- <list type="bullet">
- <item><description>The geometries have at least one point each not shared by the other
- (or equivalently neither covers the other),
- they have the same dimension,
- and the intersection of the interiors of the two geometries has
- the same dimension as the geometries themselves.</description></item>
- <item><description>The DE-9IM Intersection Matrix for the two geometries matches
- <c>[T*T***T**]</c> (for P/P and A/A cases)
- or <c>[1*T***T**]</c> (for L/L cases)</description></item>
- </list>
- If the geometries are of different dimension this predicate returns <c>false</c>.
- This predicate is symmetric.
- </summary>
- <returns>The predicate instance</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.RelatePredicate.Touches">
- <summary>
- Creates a predicate to determine whether a geometry touches another geometry.
- <para/>
- The <c>Touches</c> predicate has the following equivalent definitions:
- <list type="bullet">
- <item><description>The geometries have at least one point in common,
- but their interiors do not intersect.</description></item>
- <item><description>The DE-9IM Intersection Matrix for the two geometries matches
- at least one of the following patterns
- <list type="bullet">
- <item><description><c>[FT*******]</c></description></item>
- <item><description><c>[F**T*****]</c></description></item>
- <item><description><c>[F***T****]</c></description></item>
- </list></description></item>
- </list>
- If both geometries have dimension 0, the predicate returns <c>false</c>,
- since points have only interiors.
- This predicate is symmetric.
- </summary>
- <returns>The predicate instance</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.RelatePredicate.Matches(System.String)">
- <summary>
- Creates a predicate that matches a DE-9IM matrix pattern.
- </summary>
- <param name="imPattern">The pattern to match</param>
- <returns>A predicate that matches the pattern</returns>
- <seealso cref="T:NetTopologySuite.Operation.RelateNG.IntersectionMatrixPattern"/>
- </member>
- <member name="T:NetTopologySuite.Operation.RelateNG.RelateSegmentString">
- <summary>
- Models a linear edge of a <see cref="T:NetTopologySuite.Operation.RelateNG.RelateGeometry"/>.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.RelateSegmentString.PrevVertex(System.Int32,NetTopologySuite.Geometries.Coordinate)">
- <returns>The previous vertex, or null if none exists</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.RelateSegmentString.NextVertex(System.Int32,NetTopologySuite.Geometries.Coordinate)">
- <returns>The previous vertex, or null if none exists</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.RelateSegmentString.IsContainingSegment(System.Int32,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Tests if a segment intersection point has that segment as its
- canonical containing segment.
- Segments are half-closed, and contain their start point but not the endpoint,
- except for the final segment in a non-closed segment string, which contains
- its endpoint as well.
- This test ensures that vertices are assigned to a unique segment in a segment string.
- In particular, this avoids double-counting intersections which lie exactly
- at segment endpoints.
- </summary>
- <param name="segIndex">The segment the point may lie on</param>
- <param name="pt">The point</param>
- <returns><c>true</c> if the segment contains the point</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.TopologyComputer.InitExteriorDims">
- <summary>
- Determine a priori partial EXTERIOR topology based on dimensions.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Operation.RelateNG.TopologyComputer.IsSelfNodingRequired">
- <summary>
- Indicates whether the input geometries require self-noding
- for correct evaluation of specific spatial predicates.
- Self-noding is required for geometries which may self-cross
- - i.e.lines, and overlapping polygons in GeometryCollections.
- Self-noding is required for geometries which may
- have self-crossing linework.
- This causes the coordinates of nodes created by
- crossing segments to be computed explicitly.
- This ensures that node locations match in situations
- where a self-crossing and mutual crossing occur at the same logical location.
- The canonical example is a self-crossing line tested against a single segment
- identical to one of the crossed segments.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.TopologyComputer.Finish">
- <summary>
- Finalize the evaluation
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.TopologyComputer.UpdateIntersectionAB(NetTopologySuite.Operation.RelateNG.NodeSection,NetTopologySuite.Operation.RelateNG.NodeSection)">
- <summary>
- Update topology for an intersection between A and B.
- </summary>
- <param name="a">The section for geometry A</param>
- <param name="b">The section for geometry B</param>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.TopologyComputer.UpdateAreaAreaCross(NetTopologySuite.Operation.RelateNG.NodeSection,NetTopologySuite.Operation.RelateNG.NodeSection)">
- <summary>
- Updates topology for an AB Area-Area crossing node.
- Sections cross at a node if (a) the intersection is proper
- (i.e. in the interior of two segments)
- or(b) if non-proper then whether the linework crosses
- is determined by the geometry of the segments on either side of the node.
- In these situations the area geometry interiors intersect(in dimension 2).
- </summary>
- <param name="a">The section for geometry A</param>
- <param name="b">The section for geometry B</param>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.TopologyComputer.UpdateNodeLocation(NetTopologySuite.Operation.RelateNG.NodeSection,NetTopologySuite.Operation.RelateNG.NodeSection)">
- <summary>
- Updates topology for a node at an AB edge intersection.
- </summary>
- <param name="a">The section for geometry A</param>
- <param name="b">The section for geometry B</param>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.TopologyComputer.AddLineEndOnGeometry(System.Boolean,NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Dimension,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Add topology for a line end.
- The line end point must be "significant";
- i.e.not contained in an area if the source is a mixed-dimension GC.
- </summary>
- <param name="isLineA">the input containing the line end</param>
- <param name="locLineEnd">the location of the line end (Interior or Boundary)</param>
- <param name="locTarget">the location on the target geometry</param>
- <param name="dimTarget">the dimension of the interacting target geometry element,
- (if any), or the dimension of the target</param>
- <param name="pt">the line end coordinate</param>
- <exception cref="T:System.InvalidOperationException"></exception>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.TopologyComputer.AddAreaVertex(System.Boolean,NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Dimension,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Adds topology for an area vertex interaction with a target geometry element.
- Assumes the target geometry element has highest dimension
- (i.e. if the point lies on two elements of different dimension,
- the location on the higher dimension element is provided.
- This is the semantic provided by <see cref="T:NetTopologySuite.Operation.RelateNG.RelatePointLocator"/>.
- <para/>
- Note that in a GeometryCollection containing overlapping or adjacent polygons,
- the area vertex location may be <see cref="F:NetTopologySuite.Geometries.Location.Interior"/> instead of <see cref="F:NetTopologySuite.Geometries.Location.Boundary"/>.
- </summary>
- <param name="isAreaA">The input that is the area</param>
- <param name="locArea">The location on the area</param>
- <param name="locTarget">The location on the target geometry element</param>
- <param name="dimTarget">The dimension of the target geometry element</param>
- <param name="pt">The point of interaction</param>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.TopologyComputer.AddAreaVertexOnPoint(System.Boolean,NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Updates topology for an area vertex (in Interior or on Boundary)
- intersecting a point.
- Note that because the largest dimension of intersecting target is determined,
- the intersecting point is not part of any other target geometry,
- and hence its neighbourhood is in the Exterior of the target.
- </summary>
- <param name="isAreaA">A flag indicating whether the area is the A input</param>
- <param name="locArea">The location of th evertex in the area</param>
- <param name="pt">The point at whicht topology is being updated</param>
- </member>
- <member name="T:NetTopologySuite.Operation.RelateNG.TopologyPredicate">
- <summary>
- The API for strategy classes implementing
- spatial predicates based on the DE-9IM topology model.
- Predicate values for specific geometry pairs can be evaluated by <see cref="T:NetTopologySuite.Operation.RelateNG.RelateNG"/>.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.TopologyPredicate.#ctor(System.String)">
- <summary>
- Creates an instance of this class
- </summary>
- <param name="name">The name of the predicate</param>
- </member>
- <member name="P:NetTopologySuite.Operation.RelateNG.TopologyPredicate.Name">
- <summary>
- Gets the name of the predicate
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.TopologyPredicate.RequireSelfNoding">
- <summary>
- Reports whether this predicate requires self-noding for
- geometries which contain crossing edges
- (for example, <see cref="T:NetTopologySuite.Geometries.LineString"/>s, or <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/>s
- containing lines or polygons which may self-intersect).
- Self-noding ensures that intersections are computed consistently
- in cases which contain self-crossings and mutual crossings.
- <para/>
- Most predicates require this, but it can
- be avoided for simple intersection detection
- (such as in <see cref="M:NetTopologySuite.Operation.RelateNG.RelatePredicate.Intersects"/>
- and <see cref="M:NetTopologySuite.Operation.RelateNG.RelatePredicate.Disjoint"/>.
- Avoiding self-noding improves performance for polygonal inputs.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.TopologyPredicate.RequireInteraction">
- <summary>
- Reports whether this predicate requires interaction between
- the input geometries.
- This is the case if
- <code>
- IM[I, I] >= 0 or IM[I, B] >= 0 or IM[B, I] >= 0 or IM[B, B] >= 0
- </code>
- This allows a fast result if
- the envelopes of the geometries are disjoint.
- </summary>
- <returns><c>true</c> if the geometries must interact</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.TopologyPredicate.RequireCovers(System.Boolean)">
- <summary>
- Reports whether this predicate requires that the source
- cover the target.
- This is the case if
- <code>
- IM[Ext(Src), Int(Tgt)] = F and IM[Ext(Src), Bdy(Tgt)] = F
- </code>
- If <c>true</c>, this allows a fast result if
- the source envelope does not cover the target envelope.
- </summary>
- <param name="isSourceA">A flag indicating the source input geometry</param>
- <returns><c>true</c> if the predicate requires checking whether the source covers the target</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.TopologyPredicate.RequireExteriorCheck(System.Boolean)">
- <summary>
- Reports whether this predicate requires checking if the source input intersects
- the Exterior of the target input.
- This is the case if:
- <code>
- IM[Int(Src), Ext(Tgt)] >= 0 or IM[Bdy(Src), Ext(Tgt)] >= 0
- </code>
- If <c>false</c>, this may permit a faster result in some geometric situations.
- </summary>
- <param name="isSourceA">A flag indicating the source input geometry</param>
- <returns><c>true</c> if the predicate requires checking whether the source intersects the target exterior</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.TopologyPredicate.Init(NetTopologySuite.Geometries.Dimension,NetTopologySuite.Geometries.Dimension)">
- <summary>
- Initializes the predicate for a specific geometric case.
- This may allow the predicate result to become known
- if it can be inferred from the dimensions.
- </summary>
- <param name="dimA">The dimension of geometry A</param>
- <param name="dimB">The dimension of geometry B</param>
- <seealso cref="T:NetTopologySuite.Geometries.Dimension"/>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.TopologyPredicate.Init(NetTopologySuite.Geometries.Envelope,NetTopologySuite.Geometries.Envelope)">
- <summary>
- Initializes the predicate for a specific geometric case.
- This may allow the predicate result to become known
- if it can be inferred from the envelopes.
- </summary>
- <param name="envA">The envelope of geometry A</param>
- <param name="envB">The envelope of geometry B</param>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.TopologyPredicate.UpdateDimension(NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Dimension)">
- <summary>
- Updates the entry in the DE-9IM intersection matrix
- for given {@link Location}s in the input geometries.
- <para/>
- If this method is called with a {@link Dimension} value
- which is less than the current value for the matrix entry,
- the implementing class should avoid changing the entry
- if this would cause information loss.
- </summary>
- <param name="locA">The location on the A axis of the matrix</param>
- <param name="locB">The location on the B axis of the matrix</param>
- <param name="dimension">The dimension value for the entry</param>
- <seealso cref="T:NetTopologySuite.Geometries.Location"/>
- <seealso cref="T:NetTopologySuite.Geometries.Dimension"/>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.TopologyPredicate.Finish">
- <summary>
- Indicates that the value of the predicate can be finalized
- based on its current state.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Operation.RelateNG.TopologyPredicate.IsKnown">
- <summary>
- Tests if the predicate value is known.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Operation.RelateNG.TopologyPredicate.Value">
- <summary>
- Gets the current value of the predicate result.
- The value is only valid if <see cref="P:NetTopologySuite.Operation.RelateNG.TopologyPredicate.IsKnown"/> is <c>true</c>.
- </summary>
- </member>
- <member name="T:NetTopologySuite.Operation.RelateNG.TopologyPredicateTracer">
- <summary>
- Traces the evaluation of a <see cref="T:NetTopologySuite.Operation.RelateNG.TopologyPredicate"/>.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.TopologyPredicateTracer.Trace(NetTopologySuite.Operation.RelateNG.TopologyPredicate)">
- <summary>
- Creates a new predicate tracing the evaluation of a given predicate.
- </summary>
- <param name="pred">The predicate to trace</param>
- <returns>the traceable predicate</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.RelateNG.TopologyPredicateTracer.Trace(NetTopologySuite.Operation.RelateNG.TopologyPredicate,System.IO.TextWriter)">
- <summary>
- Creates a new predicate tracing the evaluation of a given predicate.
- </summary>
- <param name="pred">The predicate to trace</param>
- <param name="tw">A text writer</param>
- <returns>the traceable predicate</returns>
- </member>
- <member name="T:NetTopologySuite.Operation.Union.CascadedPolygonUnion">
- <summary>
- Provides an efficient method of unioning a collection of
- <see cref="T:NetTopologySuite.Geometries.IPolygonal"/> geometries.
- The geometries are indexed using a spatial index,
- and unioned recursively in index order.
- For geometries with a high degree of overlap,
- this has the effect of reducing the number of vertices
- early in the process, which increases speed
- and robustness.
- <para/>
- This algorithm is faster and more robust than
- the simple iterated approach of
- repeatedly unioning each polygon to a result geometry.
- </summary>
- <author>Martin Davis</author>
- <seealso href="http://code.google.com/p/nettopologysuite/issues/detail?id=44"/>
- </member>
- <member name="F:NetTopologySuite.Operation.Union.CascadedPolygonUnion.ClassicUnion">
- <summary>
- A union strategy that uses the classic NTS <see cref="T:NetTopologySuite.Operation.Overlay.Snap.SnapIfNeededOverlayOp"/>,
- with a robustness fallback to OverlayNG.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Union.CascadedPolygonUnion.Union(System.Collections.Generic.ICollection{NetTopologySuite.Geometries.Geometry})">
- <summary>
- Computes the union of
- a collection of <see cref="T:NetTopologySuite.Geometries.Geometry"/>s.
- </summary>
- <param name="polys">A collection of <see cref="T:NetTopologySuite.Geometries.IPolygonal"/> <see cref="T:NetTopologySuite.Geometries.Geometry"/>s.</param>
- <returns>The union of the <paramref name="polys"/></returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Union.CascadedPolygonUnion.Union(System.Collections.Generic.ICollection{NetTopologySuite.Geometries.Geometry},NetTopologySuite.Operation.Union.UnionStrategy)">
- <summary>
- Computes the union of
- a collection of <see cref="T:NetTopologySuite.Geometries.Geometry"/>s.
- </summary>
- <param name="polys">A collection of <see cref="T:NetTopologySuite.Geometries.IPolygonal"/> <see cref="T:NetTopologySuite.Geometries.Geometry"/>s.</param>
- <param name="unionStrategy">A strategy to perform the unioning.</param>
- <returns>The union of the <paramref name="polys"/></returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Union.CascadedPolygonUnion.#ctor(System.Collections.Generic.ICollection{NetTopologySuite.Geometries.Geometry})">
- <summary>
- Creates a new instance to union
- the given collection of <see cref="T:NetTopologySuite.Geometries.Geometry"/>s.
- </summary>
- <param name="polys">A collection of <see cref="T:NetTopologySuite.Geometries.IPolygonal"/> <see cref="T:NetTopologySuite.Geometries.Geometry"/>s</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Union.CascadedPolygonUnion.#ctor(System.Collections.Generic.ICollection{NetTopologySuite.Geometries.Geometry},NetTopologySuite.Operation.Union.UnionStrategy)">
- <summary>
- Creates a new instance to union
- the given collection of <see cref="T:NetTopologySuite.Geometries.Geometry"/>s.
- </summary>
- <param name="polys">A collection of <see cref="T:NetTopologySuite.Geometries.IPolygonal"/> <see cref="T:NetTopologySuite.Geometries.Geometry"/>s</param>
- <param name="unionStrategy"></param>
- </member>
- <member name="F:NetTopologySuite.Operation.Union.CascadedPolygonUnion.STRtreeNodeCapacity">
- <summary>
- The effectiveness of the index is somewhat sensitive
- to the node capacity.
- Testing indicates that a smaller capacity is better.
- For an STRtree, 4 is probably a good number (since
- this produces 2x2 "squares").
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Union.CascadedPolygonUnion.Union">
- <summary>
- Computes the union of the input geometries.
- </summary>
- <returns>
- <remarks>
- This method discards the input geometries as they are processed.
- In many input cases this reduces the memory retained
- as the operation proceeds.
- Optimal memory usage is achieved
- by disposing of the original input collection
- before calling this method.
- </remarks>
- The union of the input geometries,
- or <c>null</c> if no input geometries were provided
- </returns>
- <exception cref="T:System.InvalidOperationException">if this method is called more than once</exception>
- </member>
- <member name="M:NetTopologySuite.Operation.Union.CascadedPolygonUnion.BinaryUnion(System.Collections.Generic.IList{NetTopologySuite.Geometries.Geometry})">
- <summary>
- Unions a list of geometries
- by treating the list as a flattened binary tree,
- and performing a cascaded union on the tree.
- </summary>
- <param name="geoms">The list of geometries to union</param>
- <returns>The union of the list</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Union.CascadedPolygonUnion.BinaryUnion(System.Collections.Generic.IList{NetTopologySuite.Geometries.Geometry},System.Int32,System.Int32)">
- <summary>
- Unions a section of a list using a recursive binary union on each half
- of the section.
- </summary>
- <param name="geoms">The list of geometries containing the section to union</param>
- <param name="start">The start index of the section</param>
- <param name="end">The index after the end of the section</param>
- <returns>The union of the list section</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Union.CascadedPolygonUnion.GetGeometry(System.Collections.Generic.IList{NetTopologySuite.Geometries.Geometry},System.Int32)">
- <summary>
- Gets the element at a given list index, or
- null if the index is out of range.
- </summary>
- <param name="list">The list of geometries</param>
- <param name="index">The index</param>
- <returns>The geometry at the given index or
- <c>null</c> if the index is out of range</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Union.CascadedPolygonUnion.ReduceToGeometries(System.Collections.Generic.IList{System.Object})">
- <summary>
- Reduces a tree of geometries to a list of geometries
- by recursively unioning the subtrees in the list.
- </summary>
- <param name="geomTree">A tree-structured list of geometries</param>
- <returns>A list of Geometrys</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Union.CascadedPolygonUnion.UnionSafe(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes the union of two geometries,
- either or both of which may be null.
- </summary>
- <param name="g0">A Geometry</param>
- <param name="g1">A Geometry</param>
- <returns>The union of the input(s) or
- <c>null</c> if both inputs are null</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Union.CascadedPolygonUnion.UnionActual(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Operation.Union.UnionStrategy)">
- <summary>
- Encapsulates the actual unioning of two polygonal geometries.
- </summary>
- <param name="g0">A geometry to union</param>
- <param name="g1">A geometry to union</param>
- <param name="unionStrategy">A </param>
- <returns>The union of the inputs</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Union.CascadedPolygonUnion.RestrictToPolygons(NetTopologySuite.Geometries.Geometry)">
- <summary> Computes a <see cref="T:NetTopologySuite.Geometries.Geometry"/> containing only <see cref="T:NetTopologySuite.Geometries.IPolygonal"/> components.
- Extracts the <see cref="T:NetTopologySuite.Geometries.Polygon"/>s from the input
- and returns them as an appropriate <see cref="T:NetTopologySuite.Geometries.IPolygonal"/> geometry.
- <para/>
- If the input is already <tt>Polygonal</tt>, it is returned unchanged.
- <para/>
- A particular use case is to filter out non-polygonal components
- returned from an overlay operation.
- </summary>
- <param name="g">The geometry to filter</param>
- <returns>A polygonal geometry</returns>
- </member>
- <member name="T:NetTopologySuite.Operation.Union.InputExtracter">
- <summary>
- Extracts atomic elements from
- input geometries or collections,
- recording the dimension found.
- Empty geometries are discarded since they
- do not contribute to the result of <see cref="T:NetTopologySuite.Operation.Union.UnaryUnionOp"/>.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Operation.Union.InputExtracter.Extract(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})">
- <summary>
- Extracts elements from an enumeration of geometries.
- </summary>
- <param name="geoms">An enumeration of geometries</param>
- <returns>An extracter over the geometries.</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Union.InputExtracter.Extract(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Extracts elements from a geometry.
- </summary>
- <param name="geom">An geometry to extract from</param>
- <returns>An extracter over the geometry.</returns>
- </member>
- <member name="F:NetTopologySuite.Operation.Union.InputExtracter._dimension">
- <summary>The default dimension for an empty GeometryCollection</summary>
- </member>
- <member name="P:NetTopologySuite.Operation.Union.InputExtracter.IsEmpty">
- <summary>
- Gets a value indicating if there were any non-empty geometries extracted
- </summary>
- </member>
- <member name="P:NetTopologySuite.Operation.Union.InputExtracter.Dimension">
- <summary>
- Gets a value indicating the maximum <see cref="T:NetTopologySuite.Geometries.Dimension"/> extracted.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Operation.Union.InputExtracter.Factory">
- <summary>
- Gets a value indicating the geometry factory from the extracted geometry,
- if there is one. <para/>
- If an empty collection was extracted, will return <c>null</c>.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Union.InputExtracter.GetExtract(NetTopologySuite.Geometries.Dimension)">
- <summary>
- Gets the extracted atomic geometries of the given dimension <c>dim</c>.
- </summary>
- <param name="dim">The dimension of geometry to return</param>
- <returns>A list of the extracted geometries of dimension dim.</returns>
- </member>
- <member name="T:NetTopologySuite.Operation.Union.OverlapUnion">
- <summary>
- Unions MultiPolygons efficiently by
- using full topological union only for polygons which may overlap,
- and combining with the remaining polygons.
- Polygons which may overlap are those which intersect the common extent of the inputs.
- Polygons wholly outside this extent must be disjoint to the computed union.
- They can thus be simply combined with the union result,
- which is much more performant.
- (There is one caveat to this, which is discussed below).
- <para/>
- This situation is likely to occur during cascaded polygon union,
- since the partitioning of polygons is done heuristically
- and thus may group disjoint polygons which can lie far apart.
- It may also occur in real world data which contains many disjoint polygons
- (e.g. polygons representing parcels on different street blocks).
- </summary>
- <remarks>
- <h2>Algorithm</h2>
- The overlap region is determined as the common envelope of intersection.
- The input polygons are partitioned into two sets:
- <list type="bullet">
- <item><term>Overlapping</term><description>Polygons which intersect the overlap region, and thus potentially overlap each other</description></item>
- <item><term>Disjoint</term><description>Polygons which are disjoint from (lie wholly outside) the overlap region</description></item>
- </list>
- The Overlapping set is fully unioned, and then combined with the Disjoint set.
- Performing a simple combine works because
- the disjoint polygons do not interact with each
- other(since the inputs are valid MultiPolygons).
- They also do not interact with the Overlapping polygons,
- since they are outside their envelope.
- <h2>Discussion</h2>
- In general the Overlapping set of polygons will
- extend beyond the overlap envelope. This means that the union result
- will extend beyond the overlap region.
- There is a small chance that the topological
- union of the overlap region will shift the result linework enough
- that the result geometry intersects one of the Disjoint geometries.
- This situation is detected and if it occurs
- is remedied by falling back to performing a full union of the original inputs.
- Detection is done by a fairly efficient comparison of edge segments which
- extend beyond the overlap region. If any segments have changed
- then there is a risk of introduced intersections, and full union is performed.
- <para/>
- This situation has not been observed in JTS using floating precision,
- but it could happen due to snapping. It has been observed
- in other APIs(e.g.GEOS) due to more aggressive snapping.
- It is more likely to happen if a Snap - Rounding overlay is used.
- <para/>
- <b>NOTE: Test has shown that using this heuristic impairs performance.</b>
- </remarks>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Operation.Union.OverlapUnion.Union(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Union a pair of geometries,
- using the more performant overlap union algorithm if possible.
- </summary>
- <param name="g0">A geometry to union</param>
- <param name="g1">A geometry to union</param>
- <returns>The union of the inputs</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Union.OverlapUnion.Union(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Operation.Union.UnionStrategy)">
- <summary>
- Union a pair of geometries,
- using the more performant overlap union algorithm if possible.
- </summary>
- <param name="g0">A geometry to union</param>
- <param name="g1">A geometry to union</param>
- <param name="unionFun">Function to union two geometries</param>
- <returns>The union of the inputs</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Union.OverlapUnion.#ctor(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Creates a new instance for unioning the given geometries.
- </summary>
- <param name="g0">A geometry to union</param>
- <param name="g1">A geometry to union</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Union.OverlapUnion.#ctor(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Operation.Union.UnionStrategy)">
- <summary>
- Creates a new instance for unioning the given geometries.
- </summary>
- <param name="g0">A geometry to union</param>
- <param name="g1">A geometry to union</param>
- <param name="unionFun">Function to union two geometries</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Union.OverlapUnion.Union">
- <summary>
- Union a pair of geometries,
- using the more performant overlap union algorithm if possible.
- </summary>
- <returns>The union of the inputs</returns>
- </member>
- <member name="P:NetTopologySuite.Operation.Union.OverlapUnion.IsUnionOptimized">
- <summary>
- Gets a value indicating whether the optimized
- or full union was performed.
- </summary>
- <remarks>Used for unit testing.</remarks>>
- <returns><c>true</c> if the optimized union was performed</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Union.PointGeometryUnion.Union(NetTopologySuite.Geometries.IPuntal,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes the union of a <see cref="T:NetTopologySuite.Geometries.Point"/> geometry with
- another arbitrary <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
- Does not copy any component geometries.
- </summary>
- <param name="pointGeom"></param>
- <param name="otherGeom"></param>
- <returns></returns>
- </member>
- <member name="T:NetTopologySuite.Operation.Union.UnaryUnionOp">
- <summary>
- 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.
- </summary>
- <remarks>
- <para>
- By using this special-purpose operation over a collection of geometries
- it is possible to take advantage of various optimizations to improve performance.
- </para>
- <para>
- Heterogeneous <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/>s are fully supported.
- </para>
- <para>
- The result obeys the following contract:
- <list type="bullet">
- <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>
- <item><description>Unioning a set of <see cref="T:NetTopologySuite.Geometries.LineString"/>s has the effect of <b>fully noding</b>
- and <b>dissolving</b> the input linework.
- In this context "fully noded" means that there will be
- an endpoint or node in the result
- for every endpoint or line segment crossing in the input.
- "Dissolved" means that any duplicate (e.g. coincident) line segments or portions
- of line segments will be reduced to a single line segment in the output.
- This is consistent with the semantics of the
- <see cref="M:NetTopologySuite.Geometries.Geometry.Union(NetTopologySuite.Geometries.Geometry)"/> operation.
- If <b>merged</b> linework is required, the <see cref="T:NetTopologySuite.Operation.Linemerge.LineMerger"/> class can be used.</description></item>
- <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>
- </para>
- <para>
- <c>UnaryUnion</c> always operates on the individual components of MultiGeometries.
- So it is possible to use it to "clean" invalid self-intersecting MultiPolygons
- (although the polygon components must all still be individually valid.)
- </para>
- </remarks>
- <author>
- mbdavis
- </author>
- </member>
- <member name="M:NetTopologySuite.Operation.Union.UnaryUnionOp.Union(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})">
- <summary>
- Computes the geometric union of a <see cref="T:System.Collections.Generic.IEnumerable`1"/>
- </summary>
- <param name="geoms">A collection of geometries</param>
- <returns>The union of the geometries,
- or <c>null</c> if the input is empty</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Union.UnaryUnionOp.Union(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry},NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
- Computes the geometric union of a <see cref="T:System.Collections.Generic.IEnumerable`1"/><para/>
- If no input geometries were provided but a <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/> was provided,
- an empty <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/> is returned.
- </summary>
- <param name="geoms">A collection of geometries</param>
- <param name="geomFact">The geometry factory to use if the collection is empty</param>
- <returns>The union of the geometries
- or an empty GEOMETRYCOLLECTION</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Union.UnaryUnionOp.Union(NetTopologySuite.Geometries.Geometry)">
- <summary>Constructs a unary union operation for a <see cref="T:NetTopologySuite.Geometries.Geometry"/>
- (which may be a <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/>).
- </summary>
- <param name="geom">A geometry to union</param>
- <returns>The union of the elements of the geometry
- or an empty GEOMETRYCOLLECTION</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Union.UnaryUnionOp.#ctor(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})">
- <summary>
- Constructs a unary union operation for an enumeration
- of <see cref="T:NetTopologySuite.Geometries.Geometry"/>s, using the <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>
- of the input geometries.
- </summary>
- <param name="geoms">An enumeration of geometries</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Union.UnaryUnionOp.#ctor(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry},NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
- Constructs a unary union operation for an enumeration
- of <see cref="T:NetTopologySuite.Geometries.Geometry"/>s. <para/>
- If no input geometries were provided but a <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/> was provided,
- </summary>
- <param name="geoms">An enumeration of geometries</param>
- <param name="geomFact">The geometry factory to use if the enumeration is empty</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Union.UnaryUnionOp.#ctor(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Constructs a unary union operation for a <see cref="T:NetTopologySuite.Geometries.Geometry"/>
- (which may be a <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/>).
- </summary>
- <param name="geom">A geometry to union</param>
- </member>
- <member name="P:NetTopologySuite.Operation.Union.UnaryUnionOp.UnionStrategy">
- <remarks>
- Named setter named setUnionFun[ction] in JTS
- </remarks>
- </member>
- <member name="M:NetTopologySuite.Operation.Union.UnaryUnionOp.Union">
- <summary>
- Gets the union of the input geometries.
- <para/>
- The result of empty input is determined as follows:
- <list type="Bullet">
- <item><description>If the input is empty and a dimension can be
- determined (i.e. an empty geometry is present),
- an empty atomic geometry of that dimension is returned.</description></item>
- <item><description>If no input geometries were provided but a <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/> was provided,
- an empty <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/> is returned.</description></item>
- <item><description>Otherwise, the return value is <c>null</c>.</description></item>
- </list>
- </summary>
- <returns>
- A Geometry containing the union,
- or an empty atomic geometry, or an empty <c>GEOMETRYCOLLECTION</c>,
- or<c>null</c> if no GeometryFactory was provided
- </returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Union.UnaryUnionOp.UnionWithNull(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes the union of two geometries, either of both of which may be null.
- </summary>
- <param name="g0"></param>
- <param name="g1"></param>
- <returns>
- The union of the input(s)
- or <c>null</c> if both inputs are <c>null</c>
- </returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Union.UnaryUnionOp.UnionNoOpt(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes a unary union with no extra optimization, and no short-circuiting.
- </summary>
- <remarks>
- Due to the way the overlay operations are implemented, this is still efficient in the case of linear and puntal geometries.
- </remarks>
- <param name="g0">A geometry</param>
- <returns>The union of the input geometry</returns>
- </member>
- <member name="T:NetTopologySuite.Operation.Union.UnionInteracting">
- <summary>
- Experimental code to union MultiPolygons with processing limited to the elements which actually interact.
- </summary>
- <remarks>Not currently used, since it doesn't seem to offer much of a performance advantage.</remarks>
- <author>mbdavis</author>
- </member>
- <member name="T:NetTopologySuite.Operation.Union.UnionStrategy">
- <summary>
- An strategy class that allows UnaryUnion to adapt to different
- kinds of overlay algorithms.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Operation.Union.UnionStrategy.Union(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes the union of two geometries.
- This method may throw a <see cref="T:NetTopologySuite.Geometries.TopologyException"/>
- if one is encountered.
- </summary>
- <param name="g0">A geometry</param>
- <param name="g1">A geometry</param>
- <returns>The union of the input</returns>
- </member>
- <member name="P:NetTopologySuite.Operation.Union.UnionStrategy.IsFloatingPrecision">
- <summary>
- Indicates whether the union function operates using
- a floating(full) precision model.
- If this is the case, then the unary union code
- can make use of the { @link OverlapUnion}
- performance optimization,
- and perhaps other optimizations as well.
- Otherwise, the union result extent may not be the same as the extent of the inputs,
- which prevents using some optimizations.
- </summary>
- </member>
- <member name="T:NetTopologySuite.Operation.Valid.ConnectedInteriorTester">
- <summary>
- This class tests that the interior of an area <see cref="T:NetTopologySuite.Geometries.Geometry" />
- (<see cref="T:NetTopologySuite.Geometries.Polygon" /> or <see cref="T:NetTopologySuite.Geometries.MultiPolygon" />)
- is connected. An area Geometry is invalid if the interior is disconnected.
- This can happen if:
- - a shell self-intersects,
- - one or more holes form a connected chain touching a shell at two different points,
- - one or more holes form a ring around a subset of the interior.
- If a disconnected situation is found the location of the problem is recorded.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.ConnectedInteriorTester.FindDifferentPoint(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.Geometries.Coordinate)">
- <summary>
-
- </summary>
- <param name="coord"></param>
- <param name="pt"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.ConnectedInteriorTester.#ctor(NetTopologySuite.GeometriesGraph.GeometryGraph)">
- <summary>
-
- </summary>
- <param name="geomGraph"></param>
- </member>
- <member name="P:NetTopologySuite.Operation.Valid.ConnectedInteriorTester.Coordinate">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.ConnectedInteriorTester.IsInteriorsConnected">
- <summary>
-
- </summary>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.ConnectedInteriorTester.SetInteriorEdgesInResult(NetTopologySuite.GeometriesGraph.PlanarGraph)">
- <summary>
-
- </summary>
- <param name="graph"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.ConnectedInteriorTester.BuildEdgeRings(System.Collections.Generic.IEnumerable{NetTopologySuite.GeometriesGraph.EdgeEnd})">
- <summary>
- Form <see cref="T:NetTopologySuite.GeometriesGraph.DirectedEdge" />s in graph into Minimal EdgeRings.
- (Minimal Edgerings must be used, because only they are guaranteed to provide
- a correct isHole computation).
- </summary>
- <param name="dirEdges"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.ConnectedInteriorTester.VisitShellInteriors(NetTopologySuite.Geometries.Geometry,NetTopologySuite.GeometriesGraph.PlanarGraph)">
- <summary>
- Mark all the edges for the edgeRings corresponding to the shells of the input polygons.
- Only ONE ring gets marked for each shell - if there are others which remain unmarked
- this indicates a disconnected interior.
- </summary>
- <param name="g"></param>
- <param name="graph"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.ConnectedInteriorTester.VisitInteriorRing(NetTopologySuite.Geometries.LineString,NetTopologySuite.GeometriesGraph.PlanarGraph)">
- <summary>
-
- </summary>
- <param name="ring"></param>
- <param name="graph"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.ConnectedInteriorTester.VisitLinkedDirectedEdges(NetTopologySuite.GeometriesGraph.DirectedEdge)">
- <summary>
-
- </summary>
- <param name="start"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.ConnectedInteriorTester.HasUnvisitedShellEdge(System.Collections.Generic.IList{NetTopologySuite.GeometriesGraph.EdgeRing})">
- <summary>
- Check if any shell ring has an unvisited edge.
- A shell ring is a ring which is not a hole and which has the interior
- of the parent area on the RHS.
- (Note that there may be non-hole rings with the interior on the LHS,
- since the interior of holes will also be polygonized into CW rings
- by the <c>LinkAllDirectedEdges()</c> step).
- </summary>
- <param name="edgeRings"></param>
- <returns><c>true</c> if there is an unvisited edge in a non-hole ring.</returns>
- </member>
- <member name="T:NetTopologySuite.Operation.Valid.ConsistentAreaTester">
- <summary>
- Checks that a <see cref="T:NetTopologySuite.GeometriesGraph.GeometryGraph"/> representing an area
- (a <c>Polygon</c> or <c>MultiPolygon</c> )
- is consistent with the SFS semantics for area geometries.
- Checks include:
- Testing for rings which self-intersect (both properly and at nodes).
- Testing for duplicate rings.
- If an inconsistency if found the location of the problem is recorded.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.ConsistentAreaTester.#ctor(NetTopologySuite.GeometriesGraph.GeometryGraph)">
- <summary>
-
- </summary>
- <param name="geomGraph"></param>
- </member>
- <member name="P:NetTopologySuite.Operation.Valid.ConsistentAreaTester.InvalidPoint">
- <summary>
- Returns the intersection point, or <c>null</c> if none was found.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Operation.Valid.ConsistentAreaTester.IsNodeConsistentArea">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.Operation.Valid.ConsistentAreaTester.IsNodeEdgeAreaLabelsConsistent">
- <summary>
- Check all nodes to see if their labels are consistent.
- If any are not, return false.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Operation.Valid.ConsistentAreaTester.HasDuplicateRings">
- <summary>
- Checks for two duplicate rings in an area.
- Duplicate rings are rings that are topologically equal
- (that is, which have the same sequence of points up to point order).
- If the area is topologically consistent (determined by calling the
- <c>isNodeConsistentArea</c>,
- duplicate rings can be found by checking for EdgeBundles which contain more than one EdgeEnd.
- (This is because topologically consistent areas cannot have two rings sharing
- the same line segment, unless the rings are equal).
- The start point of one of the equal rings will be placed in invalidPoint.
- Returns <c>true</c> if this area Geometry is topologically consistent but has two duplicate rings.
- </summary>
- </member>
- <member name="T:NetTopologySuite.Operation.Valid.IndexedNestedHoleTester">
- <summary>
- Tests whether any holes of a Polygon are
- nested inside another hole, using a spatial
- index to speed up the comparisons.
- <para/>
- The logic assumes that the holes do not overlap and have no collinear segments
- (so they are properly nested, and there are no duplicate holes).
- <para/>
- The situation where every vertex of a hole touches another hole
- is invalid because either the hole is nested,
- or else it disconnects the polygon interior.
- This class detects the nested situation.
- The disconnected interior situation must be checked elsewhere.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Operation.Valid.IndexedNestedHoleTester.NestedPoint">
- <summary>
- Gets a value indicating a point on a nested hole, if one exists.
- </summary>
- <returns>A point on a nested hole, or <c>null</c> if none are nested</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.IndexedNestedHoleTester.IsNested">
- <summary>
- Tests if any hole is nested (contained) within another hole.
- <b>This is invalid</b>.
- The <see cref="P:NetTopologySuite.Operation.Valid.IndexedNestedHoleTester.NestedPoint"/> will be set to reflect this.
- </summary>
- <returns><c>true</c> if some hole is nested.</returns>
- </member>
- <member name="T:NetTopologySuite.Operation.Valid.IndexedNestedPolygonTester">
- <summary>
- Tests whether a MultiPolygon has any element polygon
- improperly nested inside another polygon, using a spatial
- index to speed up the comparisons.
- <para/>
- The logic assumes that the polygons do not overlap and have no collinear segments.
- So the polygon rings may touch at discrete points,
- but they are properly nested, and there are no duplicate rings.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Operation.Valid.IndexedNestedPolygonTester.NestedPoint">
- <summary>
- Gets a point on a nested polygon, if one exists.
- </summary>
- <returns>A point on a nested polygon, or null if none are nested</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.IndexedNestedPolygonTester.IsNested">
- <summary>
- Tests if any polygon is improperly nested (contained) within another polygon.
- <b>This is invalid.</b>
- The nested point will be set to reflect this.
- </summary>
- <returns><c>true</c> if some polygon is nested</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.IndexedNestedPolygonTester.FindNestedPoint(NetTopologySuite.Geometries.LineString,NetTopologySuite.Geometries.Polygon,NetTopologySuite.Algorithm.Locate.IndexedPointInAreaLocator)">
- <summary>
- Finds an improperly nested point, if one exists.
- </summary>
- <param name="shell">The test polygon shell</param>
- <param name="possibleOuterPoly">A polygon which may contain it</param>
- <param name="locator">The locator for the outer polygon</param>
- <returns>A nested point, if one exists, or <c>null</c></returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.IndexedNestedPolygonTester.FindIncidentSegmentNestedPoint(NetTopologySuite.Geometries.LineString,NetTopologySuite.Geometries.Polygon)">
- <summary>
- Finds a point of a shell segment which lies inside a polygon, if any.
- The shell is assumed to touch the polygon only at shell vertices,
- and does not cross the polygon.
- </summary>
- <param name="shell">The shell to test</param>
- <param name="poly">The polygon to test against</param>
- <returns>An interior segment point, or <c>null</c> if the shell is nested correctly</returns>
- </member>
- <member name="T:NetTopologySuite.Operation.Valid.IndexedNestedRingTester">
- <summary>
- Tests whether any of a set of <see cref="T:NetTopologySuite.Geometries.LinearRing"/>s are
- nested inside another ring in the set, using a spatial
- index to speed up the comparisons.
- </summary>
- </member>
- <member name="T:NetTopologySuite.Operation.Valid.IsSimpleOp">
- <summary>
- Tests whether a <c>Geometry</c> is simple as defined by the OGC SFS specification.
- <para/>
- Simplicity is defined for each <see cref="T:NetTopologySuite.Geometries.Geometry"/>
- type as follows:
- <list type="bullet">
- <item><term>Point</term><description>geometries are simple.</description></item>
- <item><term>MultiPoint</term><description>geometries are simple if every point is unique</description></item>
- <item><term>LineString</term><description>geometries are simple if they do not self-intersect at interior points
- (i.e.points other than the endpoints).
- Closed linestrings which intersect only at their endpoints are simple
- (i.e. valid <b>LinearRings</b>s.
- </description></item>
- <item><term>MultiLineString</term><description>geometries are simple if
- their elements are simple and they intersect only at points
- which are boundary points of both elements.
- (The notion of boundary points can be user-specified - see below).</description></item>
- <item><term>Polygonal</term><description>geometries have no definition of simplicity.
- The <c>IsSimple</c> code checks if all polygon rings are simple.
- (Note: this means that<tt>IsSimple</tt> cannot be used to test
- for <i>all</i> self-intersections in <tt>Polygon</tt> s.
- In order to check if a <tt>IPolygonal</tt> geometry has self-intersections,
- use <see cref="P:NetTopologySuite.Geometries.Geometry.IsValid"/>.</description></item>
- <item><term>GeometryCollection</term><description>geometries are simple if all their elements are simple.</description></item>
- <item><description>Empty geometries are simple</description></item>
- </list>
- For <see cref="T:NetTopologySuite.Geometries.ILineal"/> geometries the evaluation of simplicity
- can be customized by supplying a <see cref="T:NetTopologySuite.Algorithm.IBoundaryNodeRule"/>
- to define how boundary points are determined.
- The default is the SFS-standard <see cref="F:NetTopologySuite.Algorithm.BoundaryNodeRules.Mod2BoundaryRule"/>.
- <para/>
- Note that under the <tt>Mod-2</tt> rule, closed <tt>LineString</tt>s (rings)
- have no boundary.
- This means that an intersection at the endpoints of
- two closed LineStrings makes the geometry non-simple.
- This means that an intersection at their endpoints makes the geometry non-simple.
- If it is required to test whether a set of <c>LineString</c>s touch
- only at their endpoints, use <see cref="F:NetTopologySuite.Algorithm.BoundaryNodeRules.EndpointBoundaryRule"/>.
- For example, this can be used to validate that a collection of lines
- form a topologically valid linear network.
- <para/>
- By default this class finds a single non-simple location.
- To find all non-simple locations, set <see cref="P:NetTopologySuite.Operation.Valid.IsSimpleOp.FindAllLocations"/>
- before calling <see cref="M:NetTopologySuite.Operation.Valid.IsSimpleOp.IsSimple"/>, and retrieve the locations
- via <see cref="P:NetTopologySuite.Operation.Valid.IsSimpleOp.NonSimpleLocations"/>.
- This can be used to find all intersection points in a linear network.
- </summary>
- <seealso cref="T:NetTopologySuite.Algorithm.IBoundaryNodeRule"/>
- <seealso cref="P:NetTopologySuite.Geometries.Geometry.IsEmpty"/>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.IsSimpleOp.IsSimple(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests whether a geometry is simple.
- </summary>
- <param name="geom">The input geometry</param>
- <returns><c>true</c> if the geometry is simple</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.IsSimpleOp.GetNonSimpleLocation(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Gets a non-simple location in a geometry, if any.
- </summary>
- <param name="geom">The input geometry</param>
- <returns>A non-simple location, or <c>null</c> if the geometry is simple</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.IsSimpleOp.#ctor(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Creates a simplicity checker using the default SFS Mod-2 Boundary Node Rule
- </summary>
- <param name="geom">The geometry to test</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.IsSimpleOp.#ctor(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Algorithm.IBoundaryNodeRule)">
- <summary>
- Creates a simplicity checker using a given <see cref="T:NetTopologySuite.Algorithm.IBoundaryNodeRule"/>
- </summary>
- <param name="geom">The geometry to test</param>
- <param name="boundaryNodeRule">The boundary node rule to use</param>
- </member>
- <member name="P:NetTopologySuite.Operation.Valid.IsSimpleOp.FindAllLocations">
- <summary>Gets or sets a value indicating if all non-simple points should be reported.</summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.IsSimpleOp.IsSimple">
- <summary>
- Tests whether the geometry is simple.
- </summary>
- <returns><c>true</c> if the geometry is simple.</returns>
- </member>
- <member name="P:NetTopologySuite.Operation.Valid.IsSimpleOp.NonSimpleLocation">
- <summary>
- Gets the coordinate for an location where the geometry
- fails to be simple (i.e. where it has a non-boundary
- self-intersection).
- </summary>
- <returns>A <c>Coordinate</c> for the location of the non-boundary self-intersection
- or <c>null</c> if the geometry is simple</returns>
- </member>
- <member name="P:NetTopologySuite.Operation.Valid.IsSimpleOp.NonSimpleLocations">
- <summary>
- Gets all non-simple intersection locations.
- </summary>
- <returns>A list of the <c>Coordinate</c>s of non-simple locations.</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.IsSimpleOp.IsSimplePolygonal(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes simplicity for polygonal geometries.
- Polygonal geometries are simple if and only if
- all of their component rings are simple.
- </summary>
- <param name="geom">A <see cref="T:NetTopologySuite.Geometries.IPolygonal"/> geometry</param>
- <returns><c>true</c> if the geometry is simple</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.IsSimpleOp.IsSimpleGeometryCollection(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Semantics for GeometryCollection is
- simple if all components are simple.
- </summary>
- <param name="geom">A geometry collection</param>
- <returns><c>true</c> if the geometry is simple</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.IsSimpleOp.NonSimpleIntersectionFinder.#ctor(NetTopologySuite.Algorithm.ElevationModel,System.Boolean,System.Boolean,System.Collections.Generic.List{NetTopologySuite.Geometries.Coordinate})">
- <summary>
- Creates an instance of this class
- </summary>
- <param name="isClosedEndpointsInInterior">A flag indicating if closed endpoints belong to the interior</param>
- <param name="isFindAll">A flag indicating that all non-simple intersection points should be found</param>
- <param name="intersectionPts">A list to add the non-simple intersection points to.</param>
- </member>
- <member name="P:NetTopologySuite.Operation.Valid.IsSimpleOp.NonSimpleIntersectionFinder.HasIntersection">
- <summary>
- Tests whether an intersection was found.
- </summary>
- <returns><c>true</c> if an intersection was found.</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.IsSimpleOp.NonSimpleIntersectionFinder.ProcessIntersections(NetTopologySuite.Noding.ISegmentString,System.Int32,NetTopologySuite.Noding.ISegmentString,System.Int32)">
- <inheritdoc cref="M:NetTopologySuite.Noding.ISegmentIntersector.ProcessIntersections(NetTopologySuite.Noding.ISegmentString,System.Int32,NetTopologySuite.Noding.ISegmentString,System.Int32)"/>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.IsSimpleOp.NonSimpleIntersectionFinder.IsIntersectionEndpoint(NetTopologySuite.Noding.ISegmentString,System.Int32,NetTopologySuite.Algorithm.LineIntersector,System.Int32)">
- <summary>
- Tests whether an intersection vertex is an endpoint of a segment string.
- </summary>
- <param name="ss">The segment string</param>
- <param name="ssIndex">The index of the segment in <paramref name="ss"/></param>
- <param name="li">The line intersector</param>
- <param name="liSegmentIndex">The index of the segment in intersector</param>
- <returns><c>true</c> if the intersection vertex is an endpoint</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.IsSimpleOp.NonSimpleIntersectionFinder.IntersectionVertexIndex(NetTopologySuite.Algorithm.LineIntersector,System.Int32)">
- <summary>
- Finds the vertex index in a segment of an intersection
- which is known to be a vertex.
- </summary>
- <param name="li">The line intersector</param>
- <param name="segmentIndex">The intersection segment index</param>
- <returns>
- The vertex index (0 or 1) in the segment vertex of the intersection point
- </returns>
- </member>
- <member name="P:NetTopologySuite.Operation.Valid.IsSimpleOp.NonSimpleIntersectionFinder.IsDone">
- <inheritdoc cref="P:NetTopologySuite.Noding.ISegmentIntersector.IsDone"/>
- </member>
- <member name="T:NetTopologySuite.Operation.Valid.IsValidOp">
- <summary>
- Implements the algorithms required to compute the <see cref="P:NetTopologySuite.Geometries.Geometry.IsValid" />
- method for <see cref="T:NetTopologySuite.Geometries.Geometry" />s.
- See the documentation for the various geometry types for a specification of validity.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.IsValidOp.CheckValid(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Tests whether a <see cref="T:NetTopologySuite.Geometries.Geometry"/> is valid.
- </summary>
- <param name="geom">The geometry to test</param>
- <returns><c>true</c> if the geometry is valid</returns>
- <remarks>In JTS this function is called <c>IsValid</c></remarks>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.IsValidOp.IsValidCoordinate(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Checks whether a coordinate is valid for processing.
- Coordinates are valid if their x and y ordinates are in the
- range of the floating point representation.
- </summary>
- <param name="coord">The coordinate to validate</param>
- <returns><c>true</c> if the coordinate is valid</returns>
- </member>
- <member name="F:NetTopologySuite.Operation.Valid.IsValidOp._inputGeometry">
- <summary>
- The geometry being validated
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.Valid.IsValidOp._isInvertedRingValid">
- <summary>
- If the following condition is TRUE JTS will validate inverted shells and exverted holes
- (the ESRI SDE model)
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.IsValidOp.#ctor(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Creates a new validator for a geometry
- </summary>
- <param name="inputGeometry">The geometry to validate</param>
- </member>
- <member name="P:NetTopologySuite.Operation.Valid.IsValidOp.SelfTouchingRingFormingHoleValid">
- <summary>
- Gets or sets a value indicating whether polygons using <b>Self-Touching Rings</b> to form
- holes are reported as valid.
- If this flag is set, the following Self-Touching conditions
- are treated as being valid:
- <list type="bullet">
- <item><description>the shell ring self-touches to create a hole touching the shell</description></item>
- <item><description>a hole ring self-touches to create two holes touching at a point</description></item>
- </list>
- <para/>
- The default (following the OGC SFS standard)
- is that this condition is <b>not</b> valid (<c>false</c>).
- <para/>
- Self-Touching Rings which disconnect the
- the polygon interior are still considered to be invalid
- (these are <b>invalid</b> under the SFS, and many other
- spatial models as well).
- This includes:
- <list type="bullet">
- <item><description>exverted ("bow-tie") shells which self-touch at a single point</description></item>
- <item><description>inverted shells with the inversion touching the shell at another point</description></item>
- <item><description>exverted holes with exversion touching the hole at another point</description></item>
- <item><description>inverted ("C-shaped") holes which self-touch at a single point causing an island to be formed</description></item>
- <item><description>inverted shells or exverted holes which form part of a chain of touching rings
- (which disconnect the interior)</description></item>
- </list>
- </summary>
- </member>
- <member name="P:NetTopologySuite.Operation.Valid.IsValidOp.IsSelfTouchingRingFormingHoleValid">
- <summary>
- <para>
- Gets/Sets whether polygons using Self-Touching Rings to form
- holes are reported as valid.
- If this flag is set, the following Self-Touching conditions
- are treated as being valid:<br/>
- - The shell ring self-touches to create a hole touching the shell.<br/>
- - A hole ring self-touches to create two holes touching at a point.<br/>
- </para>
- <para>
- The default (following the OGC SFS standard)
- is that this condition is not valid (<c>false</c>).
- </para>
- <para>
- This does not affect whether Self-Touching Rings
- disconnecting the polygon interior are considered valid
- (these are considered to be invalid under the SFS, and many other
- spatial models as well).
- This includes "bow-tie" shells,
- which self-touch at a single point causing the interior to be disconnected,
- and "C-shaped" holes which self-touch at a single point causing an island to be formed.
- </para>
- </summary>
- <value>States whether geometry with this condition is valid.</value>
- </member>
- <member name="P:NetTopologySuite.Operation.Valid.IsValidOp.IsValid">
- <summary>
- Tests the validity of the input geometry.
- </summary>
- <returns><c>true</c> if the geometry is valid.</returns>
- </member>
- <member name="P:NetTopologySuite.Operation.Valid.IsValidOp.ValidationError">
- <summary>
- Gets a value indicating the validity of the geometry
- If not valid, returns the validation error for the geometry,
- or <c>null</c> if the geometry is valid.
- </summary>
- <returns>The validation error, if the geometry is invalid
- or null if the geometry is valid</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.IsValidOp.IsValidGeometry(NetTopologySuite.Geometries.Point)">
- <summary>
- Tests validity of a <c>Point</c>.
- </summary>
- <param name="g">The <c>Point</c> to test</param>
- <returns><c>true</c> if the <c>Point</c> is valid</returns>
- <remarks>In JTS this function is called <c>IsValid</c></remarks>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.IsValidOp.IsValidGeometry(NetTopologySuite.Geometries.MultiPoint)">
- <summary>
- Tests validity of a <c>MultiPoint</c>.
- </summary>
- <param name="g">The <c>MultiPoint</c> to test</param>
- <returns><c>true</c> if the <c>MultiPoint</c> is valid</returns>
- <remarks>In JTS this function is called <c>IsValid</c></remarks>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.IsValidOp.IsValidGeometry(NetTopologySuite.Geometries.LineString)">
- <summary>
- Tests validity of a <c>LineString</c>.<br/>
- Almost anything goes for <c>LineString</c>s!
- </summary>
- <param name="g">The <c>LineString</c> to test</param>
- <remarks>In JTS this function is called <c>IsValid</c></remarks>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.IsValidOp.IsValidGeometry(NetTopologySuite.Geometries.LinearRing)">
- <summary>
- Tests validity of a <c>LinearRing</c>.<br/>
- </summary>
- <param name="g">The <c>LinearRing</c> to test</param>
- <remarks>In JTS this function is called <c>IsValid</c></remarks>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.IsValidOp.IsValidGeometry(NetTopologySuite.Geometries.Polygon)">
- <summary>
- Tests validity of a <c>Polygon</c>.<br/>
- </summary>
- <param name="g">The <c>Polygon</c> to test</param>
- <remarks>In JTS this function is called <c>IsValid</c></remarks>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.IsValidOp.IsValidGeometry(NetTopologySuite.Geometries.MultiPolygon)">
- <summary>
- Tests validity of a <c>MultiPolygon</c>.<br/>
- </summary>
- <param name="g">The <c>MultiPolygon</c> to test</param>
- <remarks>In JTS this function is called <c>IsValid</c></remarks>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.IsValidOp.IsValidGeometry(NetTopologySuite.Geometries.GeometryCollection)">
- <summary>
- Tests validity of a <c>GeometryCollection</c>.<br/>
- </summary>
- <param name="gc">The <c>GeometryCollection</c> to test</param>
- <remarks>In JTS this function is called <c>IsValid</c></remarks>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.IsValidOp.CheckPointSize(NetTopologySuite.Geometries.LineString,System.Int32)">
- <summary>
- Check the number of non-repeated points is at least a given size.
- </summary>
- <param name="line">The line to test</param>
- <param name="minSize">The minimum number of points in <paramref name="line"/></param>
- <returns><c>true</c> if the line has the required number of points</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.IsValidOp.IsNonRepeatedSizeAtLeast(NetTopologySuite.Geometries.LineString,System.Int32)">
- <summary>
- Test if the number of non-repeated points in a line
- is at least a given minimum size.
- </summary>
- <param name="line">The line to test</param>
- <param name="minSize">The minimum number of points in <paramref name="line"/></param>
- <returns><c>true</c> if the line has the required number of non-repeated points</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.IsValidOp.CheckRingSimple(NetTopologySuite.Geometries.LinearRing)">
- <summary>
- Check whether a ring self-intersects (except at its endpoints).
- </summary>
- <param name="ring">The linear ring to check</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.IsValidOp.CheckHolesInShell(NetTopologySuite.Geometries.Polygon)">
- <summary>
- Tests that each hole is inside the polygon shell.
- This routine assumes that the holes have previously been tested
- to ensure that all vertices lie on the shell or on the same side of it
- (i.e. that the hole rings do not cross the shell ring).
- Given this, a simple point-in-polygon test of a single point in the hole can be used,
- provided the point is chosen such that it does not lie on the shell.
- </summary>
- <param name="poly">The polygon to be tested for hole inclusion</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.IsValidOp.FindHoleOutsideShellPoint(NetTopologySuite.Geometries.LineString,NetTopologySuite.Geometries.LineString)">
- <summary>
- Checks if a polygon hole lies inside its shell
- and if not returns a point indicating this.
- The hole is known to be wholly inside or outside the shell,
- so it suffices to find a single point which is interior or exterior,
- or check the edge topology at a point on the boundary of the shell.
- </summary>
- <param name="hole">The hole to test</param>
- <param name="shell">The polygon shell to test against</param>
- <returns>A hole point outside the shell, or <c>null</c> if it is inside.</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.IsValidOp.CheckHolesNotNested(NetTopologySuite.Geometries.Polygon)">
- <summary>
- Checks if any polygon hole is nested inside another.
- Assumes that holes do not cross (overlap),
- This is checked earlier.
- </summary>
- <param name="poly">The polygon with holes to test</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.IsValidOp.CheckShellsNotNested(NetTopologySuite.Geometries.MultiPolygon)">
- <summary>
- Checks that no element polygon is in the interior of another element polygon.
- <para/>Preconditions:
- <list type="bullet">
- <item><description>shells do not partially overlap</description></item>
- <item><description>shells do not touch along an edge</description></item>
- <item><description>no duplicate rings exist</description></item></list>
- These have been confirmed by the <see cref="T:NetTopologySuite.Operation.Valid.PolygonTopologyAnalyzer"/>.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.IsValidOp.FindPointNotNode(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.Geometries.LinearRing,NetTopologySuite.GeometriesGraph.GeometryGraph)">
- <summary>
- Find a point from the list of testCoords
- that is NOT a node in the edge for the list of searchCoords.
- </summary>
- <param name="testCoords"></param>
- <param name="searchRing"></param>
- <param name="graph"></param>
- <returns>The point found, or <c>null</c> if none found.</returns>
- </member>
- <member name="T:NetTopologySuite.Operation.Valid.PolygonIntersectionAnalyzer">
- <summary>Finds and analyzes intersections in and between polygons,
- to determine if they are valid.
- <para/>
- The <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s which are analyzed can have <see cref="T:NetTopologySuite.Operation.Valid.PolygonRing"/>s
- attached. If so they will be updated with intersection information
- to support further validity analysis which must be done after
- basic intersection validity has been confirmed.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.PolygonIntersectionAnalyzer.#ctor(System.Boolean)">
- <summary>
- Creates a new finder, allowing for the mode where inverted rings are valid.
- </summary>
- <param name="isInvertedRingValid"><c>true</c> if inverted rings are valid.</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.PolygonIntersectionAnalyzer.#ctor(System.Boolean,NetTopologySuite.Algorithm.ElevationModel)">
- <summary>
- Creates a new finder, allowing for the mode where inverted rings are valid.
- </summary>
- <param name="isInvertedRingValid"><c>true</c> if inverted rings are valid.</param>
- <param name="em"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.PolygonIntersectionAnalyzer.PrevCoordinateInRing(NetTopologySuite.Noding.ISegmentString,System.Int32)">
- <summary>
- For a segment string for a ring, gets the coordinate
- previous to the given index (wrapping if the index is 0)
- </summary>
- <param name="ringSS">The ring segment string</param>
- <param name="segIndex">The segment index</param>
- <returns>The coordinate previous to the given segment</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.PolygonIntersectionAnalyzer.IsAdjacentInRing(NetTopologySuite.Noding.ISegmentString,System.Int32,System.Int32)">
- <summary>
- Tests if two segments in a closed <see cref="T:NetTopologySuite.Noding.ISegmentString"/> are adjacent.
- This handles determining adjacency across the start/end of the ring.
- </summary>
- <param name="ringSS">The segment string</param>
- <param name="segIndex0">A segment index</param>
- <param name="segIndex1">A segment index</param>
- <returns><c>true</c> if the segments are adjacent</returns>
- </member>
- <member name="T:NetTopologySuite.Operation.Valid.PolygonNode">
- <summary>
- Functions to compute topological information
- about nodes (ring intersections) in polygonal geometry.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.PolygonNode.IsCrossing(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Check if the edges at a node between two rings (or one ring) cross.
- The node is topologically valid if the ring edges do not cross.
- This function assumes that the edges are not collinear.
- </summary>
- <param name="nodePt">The node location</param>
- <param name="a0">The previous edge endpoint in a ring</param>
- <param name="a1">The next edge endpoint in a ring</param>
- <param name="b0">The previous edge endpoint in the other ring</param>
- <param name="b1">The next edge endpoint in the other ring</param>
- <returns>
- <c>true</c> if the edges cross at the node
- </returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.PolygonNode.IsInteriorSegment(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Tests whether an edge node-b lies in the interior or exterior
- of a corner of a ring given by a0-node-a1.
- The ring interior is assumed to be on the right of the corner (a CW ring).
- The edge must not be collinear with the corner segments.
- </summary>
- <param name="nodePt">The node location</param>
- <param name="a0">The first vertex of the corner</param>
- <param name="a1">The second vertex of the corner</param>
- <param name="b">The destination vertex of the edge</param>
- <returns><c>true</c> if the edge is interior to the ring corner</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.PolygonNode.IsBetween(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Tests if an edge p is between edges e0 and e1,
- where the edges all originate at a common origin.
- The "inside" of e0 and e1 is the arc which does not include the origin.
- The edges are assumed to be distinct (non-collinear).
- </summary>
- <param name="origin">the origin</param>
- <param name="p">the destination point of edge p</param>
- <param name="e0">the destination point of edge e0</param>
- <param name="e1">the destination point of edge e1</param>
- <returns><c>true</c> if p is between e0 and e1</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.PolygonNode.IsAngleGreater(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Tests if the angle with the origin of a vector P is greater than that of the
- vector Q.
- </summary>
- <param name="origin">The origin of the vectors</param>
- <param name="p">The endpoint of the vector P</param>
- <param name="q">The endpoint of the vector Q</param>
- <returns><c>true</c> if vector P has angle greater than Q</returns>
- </member>
- <member name="T:NetTopologySuite.Operation.Valid.PolygonRing">
- <summary>
- A ring of a polygon being analyzed for topological validity.
- The shell and hole rings of valid polygons touch only at discrete points.
- The "touch" relationship induces a graph over the set of rings.
- The interior of a valid polygon must be connected.
- This is the case if there is no "chain" of touching rings
- (which would partition off part of the interior).
- This is equivalent to the touch graph having no cycles.
- Thus the touch graph of a valid polygon is a forest - a set of disjoint trees.
- <para/>
- Also, in a valid polygon two rings can touch only at a single location,
- since otherwise they disconnect a portion of the interior between them.
- This is checked as the touches relation is built
- (so the touch relation representation for a polygon ring does not need to support
- more than one touch location for each adjacent ring).
- <para/>
- The cycle detection algorithm works for polygon rings which also contain self-touches
- (inverted shells and exverted holes).
- <para/>
- Polygons with no holes do not need to be checked for
- a connected interior, unless self-touches are allowed.
- <para/>
- The class also records the topology at self-touch nodes,
- to support checking if an invalid self-touch disconnects the polygon.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.PolygonRing.IsShell(NetTopologySuite.Operation.Valid.PolygonRing)">
- <summary>
- Tests if a polygon ring represents a shell.
- </summary>
- <param name="polyRing">The ring to test (may be <c>null</c>)</param>
- <returns><c>true</c> if the ring represents a shell</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.PolygonRing.AddTouch(NetTopologySuite.Operation.Valid.PolygonRing,NetTopologySuite.Operation.Valid.PolygonRing,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Records a touch location between two rings,
- and checks if the rings already touch in a different location.
- </summary>
- <param name="ring0">A polygon ring</param>
- <param name="ring1">A polygon ring</param>
- <param name="pt">The location where they touch</param>
- <returns><c>true</c> if the polygons already touch</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.PolygonRing.FindHoleCycleLocation(System.Collections.Generic.IEnumerable{NetTopologySuite.Operation.Valid.PolygonRing})">
- <summary>
- Finds a location (if any) where a chain of holes forms a cycle
- in the ring touch graph.
- The shell may form part of the chain as well.
- This indicates that a set of holes disconnects the interior of a polygon.
- </summary>
- <param name="polyRings">The list of rings to check</param>
- <returns>A vertex contained in a ring cycle or <c>null</c> if none is found.</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.PolygonRing.FindInteriorSelfNode(System.Collections.Generic.IEnumerable{NetTopologySuite.Operation.Valid.PolygonRing})">
- <summary>
- Finds a location of an interior self-touch in a list of rings,
- if one exists.
- This indicates that a self-touch disconnects the interior of a polygon,
- which is invalid.
- </summary>
- <param name="polyRings">The list of rings to check</param>
- <returns>The location of an interior self-touch node, or <c>null</c> if there are none</returns>
- </member>
- <member name="F:NetTopologySuite.Operation.Valid.PolygonRing._touchSetRoot">
- <summary>
- The root of the touch graph tree containing this ring.
- Serves as the id for the graph partition induced by the touch relation.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.Valid.PolygonRing._touches">
- <summary>
- The set of <see cref="T:NetTopologySuite.Operation.Valid.PolygonRingTouch"/> links
- for this ring.
- The set of all touches in the rings of a polygon
- forms the polygon touch graph.
- This supports detecting touch cycles, which
- reveal the condition of a disconnected interior.
- <para/>
- Only a single touch is recorded between any two rings,
- since more than one touch between two rings
- indicates interior disconnection as well.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.Valid.PolygonRing._selfNodes">
- <summary>
- The set of self-nodes in this ring.
- This supports checking valid ring self-touch topology.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.PolygonRing.#ctor(NetTopologySuite.Geometries.LinearRing)">
- <summary>
- Creates a ring for a polygon shell.
- </summary>
- <param name="ring">The polygon shell</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.PolygonRing.#ctor(NetTopologySuite.Geometries.LinearRing,System.Int32,NetTopologySuite.Operation.Valid.PolygonRing)">
- <summary>
- Creates a ring for a polygon hole.
- </summary>
- <param name="ring">The ring geometry</param>
- <param name="index">The index of the hole</param>
- <param name="shell">The parent polygon shell</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.PolygonRing.AddTouch(NetTopologySuite.Operation.Valid.PolygonRing,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Adds a point where a <see cref="T:NetTopologySuite.Operation.Valid.PolygonRing"/> touches another one.
- </summary>
- <param name="ring">The other <see cref="T:NetTopologySuite.Operation.Valid.PolygonRing"/></param>
- <param name="pt">The touch location</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.PolygonRing.AddSelfTouch(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Adds the node (intersection point)
- and the endpoints of the four adjacent segments.
- </summary>
- <param name="origin">The node</param>
- <param name="e00">The 1st position of the 1st edge</param>
- <param name="e01">The 2nd position of the 1st edge</param>
- <param name="e10">The 1st position of the 2nd edge</param>
- <param name="e11">The 2nd position of the 2nd edge</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.PolygonRing.IsOnlyTouch(NetTopologySuite.Operation.Valid.PolygonRing,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Tests if this ring touches a given ring at
- the single point specified.
- </summary>
- <param name="ring">The other polygon ring</param>
- <param name="pt">The touch point</param>
- <returns><c>true</c> if the rings touch only at the given point.</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.PolygonRing.FindHoleCycleLocation">
- <summary>
- Detects whether the subgraph of holes linked by touch to this ring
- contains a hole cycle.
- If no cycles are detected, the set of touching rings is a tree.
- The set is marked using this ring as the root.
- </summary>
- <returns>A vertex om a hole cycle or <c>null</c> if no cycle found</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.PolygonRing.ScanForHoleCycle(NetTopologySuite.Operation.Valid.PolygonRingTouch,NetTopologySuite.Operation.Valid.PolygonRing,System.Collections.Generic.Queue{NetTopologySuite.Operation.Valid.PolygonRingTouch})">
- <summary>
- Scans for a hole cycle starting at a given touch.
- </summary>
- <param name="currentTouch">The touch to investigate</param>
- <param name="root">The root of the touch subgraph</param>
- <param name="touchQueue">The queue of rings to scan</param>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.PolygonRing.FindInteriorSelfNode">
- <summary>
- Finds the location of an invalid interior self-touch in this ring,
- if one exists.
- </summary>
- <returns>The location of an interior self-touch node, or <c>null</c> if there are none
- </returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.PolygonRing.ToString">
- <inheritdoc cref="M:System.Object.ToString"/>
- </member>
- <member name="T:NetTopologySuite.Operation.Valid.PolygonRingTouch">
- <summary>
- Records a point where a <see cref="T:NetTopologySuite.Operation.Valid.PolygonRing"/> touches another one.
- This forms an edge in the induced ring touch graph.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.PolygonRingTouch.#ctor(NetTopologySuite.Operation.Valid.PolygonRing,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Creates an instance of this item
- </summary>
- <param name="ring">The polygon ring</param>
- <param name="pt">The touch position</param>
- </member>
- <member name="T:NetTopologySuite.Operation.Valid.PolygonRingSelfNode">
- <summary>
- Represents a ring self-touch node, recording the node (intersection point)
- and the endpoints of the four adjacent segments.
- <para/>
- This is used to evaluate validity of self-touching nodes,
- when they are allowed.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.PolygonRingSelfNode.#ctor(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Creates an instance of this point
- </summary>
- <param name="nodePt">The self touch position</param>
- <param name="e00">The 1st position of the 1st edge</param>
- <param name="e01">The 2nd position of the 1st edge</param>
- <param name="e10">The 1st position of the 2nd edge</param>
- <param name="e11">The 2nd position of the 2nd edge</param>
- </member>
- <member name="P:NetTopologySuite.Operation.Valid.PolygonRingSelfNode.Coordinate">
- <summary>
- Gets a value indicating the node point
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.PolygonRingSelfNode.IsExterior(System.Boolean)">
- <summary>
- Tests if a self-touch has the segments of each half of the touch
- lying in the exterior of a polygon.
- This is a valid self-touch.
- It applies to both shells and holes.
- Only one of the four possible cases needs to be tested,
- since the situation has full symmetry.
- </summary>
- <param name="isInteriorOnRight">A flag indicating if the interior is to the right of the parent ring</param>
- <returns><c>true</c> if the self-touch is on the exterior.</returns>
- </member>
- <member name="T:NetTopologySuite.Operation.Valid.PolygonTopologyAnalyzer">
- <summary>
- Analyzes the topology of polygonal geometry
- to determine whether it is valid.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.PolygonTopologyAnalyzer.IsRingNested(NetTopologySuite.Geometries.LineString,NetTopologySuite.Geometries.LineString)">
- <summary>
- Tests whether a ring is nested inside another ring
- <para/>
- Preconditions:
- <list type="bullet">
- <item><description>The rings do not cross (i.e. the test is wholly inside or outside the target)</description></item>
- <item><description>The rings may touch at discrete points only</description></item>
- <item><description>The <paramref name="target"/> ring does not self-cross, but it may self-touch</description></item>
- </list>
- If the test ring start point is properly inside or outside, that provides the result.
- Otherwise the start point is on the target ring,
- and the incident start segment(accounting for repeated points) is
- tested for its topology relative to the target ring.
- </summary>
- <param name="test">The ring to test</param>
- <param name="target">The ring to test against</param>
- <returns><c>true</c> if the <paramref name="test"/> ring lies inside the <paramref name="target"/> ring</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.PolygonTopologyAnalyzer.IsIncidentSegmentInRing(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Tests whether a touching segment is interior to a ring.
- <para/>
- Preconditions:
- <list type="bullet">
- <item><description>The segment does not intersect the ring other than at the endpoints</description></item>
- <item><description>The segment vertex p0 lies on the ring</description></item>
- <item><description>The ring does not self-cross, but it may self-touch</description></item>
- </list>
- This works for both shells and holes, but the caller must know
- the ring role.
- </summary>
- <param name="p0">The touching vertex of the segment</param>
- <param name="p1">The second vertex of the segment</param>
- <param name="ringPts">The points of the ring</param>
- <returns><c>true</c> if the segment is inside the ring.</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.PolygonTopologyAnalyzer.FindRingVertexPrev(NetTopologySuite.Geometries.Coordinate[],System.Int32,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Finds the ring vertex previous to a node point on a ring
- (which is contained in the index'th segment,
- as either the start vertex or an interior point).
- Repeated points are skipped over.
- </summary>
- <param name="ringPts">The ring</param>
- <param name="index">The index of the segment containing the node</param>
- <param name="node">The node point</param>
- <returns>The previous ring vertex</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.PolygonTopologyAnalyzer.FindRingVertexNext(NetTopologySuite.Geometries.Coordinate[],System.Int32,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Finds the ring vertex next from a node point on a ring
- (which is contained in the index'th segment,
- as either the start vertex or an interior point).
- </summary>
- <param name="ringPts">The ring</param>
- <param name="index">The index of the segment containing the node</param>
- <param name="node">The node point</param>
- <returns>The next ring vertex</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.PolygonTopologyAnalyzer.IntersectingSegIndex(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Computes the index of the segment which intersects a given point.
- </summary>
- <param name="ringPts">The ring points</param>
- <param name="pt">The intersection point</param>
- <returns>The intersection segment index, or <c>-1</c> if not intersection is found.</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.PolygonTopologyAnalyzer.FindSelfIntersection(NetTopologySuite.Geometries.LinearRing)">
- <summary>
- Finds a self-intersection (if any) in a <see cref="T:NetTopologySuite.Geometries.LinearRing"/>.
- </summary>
- <param name="ring">The ring to analyze</param>
- <returns>A self-intersection point if one exists, or <c>null</c></returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.PolygonTopologyAnalyzer.IsInteriorDisconnected">
- <summary>
- Tests whether the interior of the polygonal geometry is
- disconnected.<br/>
- If true, the disconnection location is available from
- <see cref="P:NetTopologySuite.Operation.Valid.PolygonTopologyAnalyzer.DisconnectionLocation"/>.
- </summary>
- <returns><c>true</c> if the interior is disconnected</returns>
- </member>
- <member name="P:NetTopologySuite.Operation.Valid.PolygonTopologyAnalyzer.DisconnectionLocation">
- <summary>
- Gets a location where the polyonal interior is disconnected.<br/>
- <see cref="M:NetTopologySuite.Operation.Valid.PolygonTopologyAnalyzer.IsInteriorDisconnected"/> must be called first.
- </summary>
- <returns>The location of an interior disconnection, or <c>null</c></returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.PolygonTopologyAnalyzer.CheckInteriorDisconnectedByHoleCycle">
- <summary>
- Tests whether any polygon with holes has a disconnected interior
- by virtue of the holes (and possibly shell) forming a touch cycle.
- <para/>
- This is a global check, which relies on determining
- the touching graph of all holes in a polygon.
- <para/>
- If inverted rings disconnect the interior
- via a self-touch, this is checked by the <see cref="T:NetTopologySuite.Operation.Valid.PolygonIntersectionAnalyzer"/>.
- If inverted rings are part of a disconnected ring chain
- this is detected here.
- </summary>
- <returns><c>true</c> if a polygon has a disconnected interior.</returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.PolygonTopologyAnalyzer.CheckInteriorDisconnectedBySelfTouch">
- <summary>
- Tests if an area interior is disconnected by a self-touching ring.
- This must be evaluated after other self-intersections have been analyzed
- and determined to not exist, since the logic relies on
- the rings not self-crossing (winding).
- </summary>
- <returns><c>true</c> if an area interior is disconnected by a self-touch</returns>
- </member>
- <member name="T:NetTopologySuite.Operation.Valid.RepeatedPointTester">
- <summary>
- Implements the appropriate checks for repeated points
- (consecutive identical coordinates) as defined in the
- NTS spec.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Operation.Valid.RepeatedPointTester.Coordinate">
- <summary>
- Gets a value indicating the location of the repeated point
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.RepeatedPointTester.HasRepeatedPoint(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Checks if a geometry has a repeated point
- </summary>
- <param name="g">The geometry to test</param>
- <returns><c>true</c> if the geometry has a repeated point, otherwise <c>false</c></returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.RepeatedPointTester.HasRepeatedPoint(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Checks if an array of <c>Coordinate</c>s has a repeated point
- </summary>
- <param name="coord">An array of coordinates</param>
- <returns><c>true</c> if <paramref name="coord"/> has a repeated point, otherwise <c>false</c></returns>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.RepeatedPointTester.HasRepeatedPoint(NetTopologySuite.Geometries.CoordinateSequence)">
- <summary>
- Checks if an array of <c>Coordinate</c>s has a repeated point
- </summary>
- <param name="sequence">A coordinate sequence</param>
- <returns><c>true</c> if <paramref name="sequence"/> has a repeated point, otherwise <c>false</c></returns>
- </member>
- <member name="T:NetTopologySuite.Operation.Valid.TopologyValidationErrors">
- <summary>
- Contains information about the nature and location of
- a <see cref="T:NetTopologySuite.Geometries.Geometry" /> validation error.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.Valid.TopologyValidationErrors.NoInvalidIntersection">
- <summary>
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.Valid.TopologyValidationErrors.HoleOutsideShell">
- <summary>
- Indicates that a hole of a polygon lies partially
- or completely in the exterior of the shell.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.Valid.TopologyValidationErrors.NestedHoles">
- <summary>
- Indicates that a hole lies
- in the interior of another hole in the same polygon.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.Valid.TopologyValidationErrors.DisconnectedInteriors">
- <summary>
- Indicates that the interior of a polygon is disjoint
- (often caused by set of contiguous holes splitting
- the polygon into two parts).
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.Valid.TopologyValidationErrors.SelfIntersection">
- <summary>
- Indicates that two rings of a polygonal geometry intersect.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.Valid.TopologyValidationErrors.RingSelfIntersection">
- <summary>
- Indicates that a ring self-intersects.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.Valid.TopologyValidationErrors.NestedShells">
- <summary>
- Indicates that a polygon component of a
- <see cref="T:NetTopologySuite.Geometries.MultiPolygon" /> lies inside another polygonal component.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.Valid.TopologyValidationErrors.DuplicateRings">
- <summary>
- Indicates that a polygonal geometry
- contains two rings which are identical.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.Valid.TopologyValidationErrors.TooFewPoints">
- <summary>
- Indicates that either:
- - A <see cref="T:NetTopologySuite.Geometries.LineString" /> contains a single point.
- - A <see cref="T:NetTopologySuite.Geometries.LinearRing" /> contains 2 or 3 points.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.Valid.TopologyValidationErrors.InvalidCoordinate">
- <summary>
- Indicates that the <c>X</c> or <c>Y</c> ordinate of
- a <see cref="T:NetTopologySuite.Geometries.Coordinate" /> is not a valid
- numeric value (e.g. <see cref="F:System.Double.NaN" />).
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.Valid.TopologyValidationErrors.RingNotClosed">
- <summary>
- Indicates that a ring is not correctly closed
- (the first and the last coordinate are different).
- </summary>
- </member>
- <member name="T:NetTopologySuite.Operation.Valid.TopologyValidationError">
- <summary>
- Contains information about the nature and location of a <c>Geometry</c>
- validation error.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Operation.Valid.TopologyValidationError.errMsg">
- <summary>
- These messages must synch up with the indexes above
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.TopologyValidationError.#ctor(NetTopologySuite.Operation.Valid.TopologyValidationErrors,NetTopologySuite.Geometries.Coordinate)">
- <summary>
-
- </summary>
- <param name="errorType"></param>
- <param name="pt"></param>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.TopologyValidationError.#ctor(NetTopologySuite.Operation.Valid.TopologyValidationErrors)">
- <summary>
-
- </summary>
- <param name="errorType"></param>
- </member>
- <member name="P:NetTopologySuite.Operation.Valid.TopologyValidationError.Coordinate">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.Operation.Valid.TopologyValidationError.ErrorType">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.Operation.Valid.TopologyValidationError.Message">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Operation.Valid.TopologyValidationError.ToString">
- <summary>
-
- </summary>
- <returns></returns>
- </member>
- <member name="T:NetTopologySuite.Planargraph.Algorithm.ConnectedSubgraphFinder">
- <summary>
- Finds all connected <see cref="T:NetTopologySuite.Planargraph.Subgraph" />s of a <see cref="T:NetTopologySuite.Planargraph.PlanarGraph" />.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Planargraph.Algorithm.ConnectedSubgraphFinder.#ctor(NetTopologySuite.Planargraph.PlanarGraph)">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.Planargraph.Algorithm.ConnectedSubgraphFinder"/> class.
- </summary>
- <param name="graph">The <see cref="T:NetTopologySuite.Planargraph.PlanarGraph" />.</param>
- </member>
- <member name="M:NetTopologySuite.Planargraph.Algorithm.ConnectedSubgraphFinder.AddReachable(NetTopologySuite.Planargraph.Node,NetTopologySuite.Planargraph.Subgraph)">
- <summary>
- Adds all nodes and edges reachable from this node to the subgraph.
- Uses an explicit stack to avoid a large depth of recursion.
- </summary>
- <param name="startNode"></param>
- <param name="subgraph"></param>
- </member>
- <member name="M:NetTopologySuite.Planargraph.Algorithm.ConnectedSubgraphFinder.AddEdges(NetTopologySuite.Planargraph.Node,System.Collections.Generic.Stack{NetTopologySuite.Planargraph.Node},NetTopologySuite.Planargraph.Subgraph)">
- <summary>
- Adds the argument node and all its out edges to the subgraph.
- </summary>
- <param name="node"></param>
- <param name="nodeStack"></param>
- <param name="subgraph"></param>
- </member>
- <member name="T:NetTopologySuite.Planargraph.DirectedEdge">
- <summary>
- Represents a directed edge in a <c>PlanarGraph</c>. A DirectedEdge may or
- may not have a reference to a parent Edge (some applications of
- planar graphs may not require explicit Edge objects to be created). Usually
- a client using a <c>PlanarGraph</c> will subclass <c>DirectedEdge</c>
- to add its own application-specific data and methods.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Planargraph.DirectedEdge.ToEdges(System.Collections.Generic.IList{NetTopologySuite.Planargraph.DirectedEdge})">
- <summary>
- Returns a List containing the parent Edge (possibly null) for each of the given
- DirectedEdges.
- </summary>
- <param name="dirEdges"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Planargraph.DirectedEdge.#ctor(NetTopologySuite.Planargraph.Node,NetTopologySuite.Planargraph.Node,NetTopologySuite.Geometries.Coordinate,System.Boolean)">
- <summary>
- Constructs a DirectedEdge connecting the <c>from</c> node to the
- <c>to</c> node.
- </summary>
- <param name="from"></param>
- <param name="to"></param>
- <param name="directionPt">
- Specifies this DirectedEdge's direction (given by an imaginary
- line from the <c>from</c> node to <c>directionPt</c>).
- </param>
- <param name="edgeDirection">
- Whether this DirectedEdge's direction is the same as or
- opposite to that of the parent Edge (if any).
- </param>
- </member>
- <member name="P:NetTopologySuite.Planargraph.DirectedEdge.Edge">
- <summary>
- Returns this DirectedEdge's parent Edge, or null if it has none.
- Associates this DirectedEdge with an Edge (possibly null, indicating no associated
- Edge).
- </summary>
- </member>
- <member name="P:NetTopologySuite.Planargraph.DirectedEdge.Quadrant">
- <summary>
- Returns 0, 1, 2, or 3, indicating the quadrant in which this DirectedEdge's
- orientation lies.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Planargraph.DirectedEdge.QuadrantEx">
- <summary>
- Returns 0, 1, 2, or 3, indicating the quadrant in which this DirectedEdge's
- orientation lies.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Planargraph.DirectedEdge.DirectionPt">
- <summary>
- Returns a point to which an imaginary line is drawn from the from-node to
- specify this DirectedEdge's orientation.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Planargraph.DirectedEdge.EdgeDirection">
- <summary>
- Returns whether the direction of the parent Edge (if any) is the same as that
- of this Directed Edge.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Planargraph.DirectedEdge.FromNode">
- <summary>
- Returns the node from which this DirectedEdge leaves.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Planargraph.DirectedEdge.ToNode">
- <summary>
- Returns the node to which this DirectedEdge goes.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Planargraph.DirectedEdge.Coordinate">
- <summary>
- Returns the coordinate of the from-node.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Planargraph.DirectedEdge.Angle">
- <summary>
- Returns the angle that the start of this DirectedEdge makes with the
- positive x-axis, in radians.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Planargraph.DirectedEdge.Sym">
- <summary>
- Returns the symmetric DirectedEdge -- the other DirectedEdge associated with
- this DirectedEdge's parent Edge.
- Sets this DirectedEdge's symmetric DirectedEdge, which runs in the opposite
- direction.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Planargraph.DirectedEdge.CompareTo(System.Object)">
- <summary>
- Returns 1 if this DirectedEdge has a greater angle with the
- positive x-axis than b", 0 if the DirectedEdges are collinear, and -1 otherwise.
- Using the obvious algorithm of simply computing the angle is not robust,
- since the angle calculation is susceptible to round off. A robust algorithm
- is:
- first compare the quadrants. If the quadrants are different, it it
- trivial to determine which vector is "greater".
- if the vectors lie in the same quadrant, the robust
- <c>RobustCGAlgorithms.ComputeOrientation(Coordinate, Coordinate, Coordinate)</c>
- function can be used to decide the relative orientation of the vectors.
- </summary>
- <param name="obj"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Planargraph.DirectedEdge.CompareDirection(NetTopologySuite.Planargraph.DirectedEdge)">
- <summary>
- Returns 1 if this DirectedEdge has a greater angle with the
- positive x-axis than b", 0 if the DirectedEdges are collinear, and -1 otherwise.
- Using the obvious algorithm of simply computing the angle is not robust,
- since the angle calculation is susceptible to round off. A robust algorithm
- is:
- first compare the quadrants. If the quadrants are different, it it
- trivial to determine which vector is "greater".
- if the vectors lie in the same quadrant, the robust
- <c>RobustCGAlgorithms.ComputeOrientation(Coordinate, Coordinate, Coordinate)</c>
- function can be used to decide the relative orientation of the vectors.
- </summary>
- <param name="e"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Planargraph.DirectedEdge.Write(System.IO.StreamWriter)">
- <summary>
- Writes a detailed string representation of this DirectedEdge to the given PrintStream.
- </summary>
- <param name="outstream"></param>
- </member>
- <member name="P:NetTopologySuite.Planargraph.DirectedEdge.IsRemoved">
- <summary>
- Tests whether this component has been removed from its containing graph.
- </summary>
- <value></value>
- </member>
- <member name="M:NetTopologySuite.Planargraph.DirectedEdge.Remove">
- <summary>
- Removes this directed edge from its containing graph.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Planargraph.DirectedEdge.ToString">
- <inheritdoc cref="M:System.Object.ToString"/>
- </member>
- <member name="T:NetTopologySuite.Planargraph.DirectedEdgeStar">
- <summary>
- A sorted collection of <c>DirectedEdge</c>s which leave a <c>Node</c>
- in a <c>PlanarGraph</c>.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Planargraph.DirectedEdgeStar._outEdges">
- <summary>
- The underlying list of outgoing DirectedEdges.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Planargraph.DirectedEdgeStar.Add(NetTopologySuite.Planargraph.DirectedEdge)">
- <summary>
- Adds a new member to this DirectedEdgeStar.
- </summary>
- <param name="de"></param>
- </member>
- <member name="M:NetTopologySuite.Planargraph.DirectedEdgeStar.Remove(NetTopologySuite.Planargraph.DirectedEdge)">
- <summary>
- Drops a member of this DirectedEdgeStar.
- </summary>
- <param name="de"></param>
- </member>
- <member name="M:NetTopologySuite.Planargraph.DirectedEdgeStar.GetEnumerator">
- <summary>
- Returns an Iterator over the DirectedEdges, in ascending order by angle with the positive x-axis.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Planargraph.DirectedEdgeStar.Degree">
- <summary>
- Returns the number of edges around the Node associated with this DirectedEdgeStar.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Planargraph.DirectedEdgeStar.Coordinate">
- <summary>
- Returns the coordinate for the node at which this star is based.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Planargraph.DirectedEdgeStar.Edges">
- <summary>
- Returns the DirectedEdges, in ascending order by angle with the positive x-axis.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Planargraph.DirectedEdgeStar.SortEdges">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Planargraph.DirectedEdgeStar.GetIndex(NetTopologySuite.Planargraph.Edge)">
- <summary>
- Returns the zero-based index of the given Edge, after sorting in ascending order
- by angle with the positive x-axis.
- </summary>
- <param name="edge"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Planargraph.DirectedEdgeStar.GetIndex(NetTopologySuite.Planargraph.DirectedEdge)">
- <summary>
- Returns the zero-based index of the given DirectedEdge, after sorting in ascending order
- by angle with the positive x-axis.
- </summary>
- <param name="dirEdge"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Planargraph.DirectedEdgeStar.GetIndex(System.Int32)">
- <summary>
- Returns the remainder when i is divided by the number of edges in this
- DirectedEdgeStar.
- </summary>
- <param name="i"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Planargraph.DirectedEdgeStar.GetNextEdge(NetTopologySuite.Planargraph.DirectedEdge)">
- <summary>
- Returns the <see cref="T:NetTopologySuite.Planargraph.DirectedEdge"/> on the left-hand
- side of the given <see cref="T:NetTopologySuite.Planargraph.DirectedEdge"/>
- (which must be a member of this DirectedEdgeStar).
- </summary>
- <param name="dirEdge"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Planargraph.DirectedEdgeStar.GetNextCWEdge(NetTopologySuite.Planargraph.DirectedEdge)">
- <summary>
- Returns the <see cref="T:NetTopologySuite.Planargraph.DirectedEdge"/> on the right-hand (CW)
- side of the given <see cref="T:NetTopologySuite.Planargraph.DirectedEdge"/>
- (which must be a member of this DirectedEdgeStar).
- </summary>
- </member>
- <member name="T:NetTopologySuite.Planargraph.Edge">
- <summary>
- Represents an undirected edge of a {PlanarGraph}. An undirected edge
- in fact simply acts as a central point of reference for two opposite
- <c>DirectedEdge</c>s.
- Usually a client using a <c>PlanarGraph</c> will subclass <c>Edge</c>
- to add its own application-specific data and methods.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Planargraph.Edge.dirEdge">
- <summary>
- The two DirectedEdges associated with this Edge.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Planargraph.Edge.#ctor">
- <summary>
- Constructs an Edge whose DirectedEdges are not yet set. Be sure to call
- <c>SetDirectedEdges(DirectedEdge, DirectedEdge)</c>.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Planargraph.Edge.#ctor(NetTopologySuite.Planargraph.DirectedEdge,NetTopologySuite.Planargraph.DirectedEdge)">
- <summary>
- Constructs an Edge initialized with the given DirectedEdges, and for each
- DirectedEdge: sets the Edge, sets the symmetric DirectedEdge, and adds
- this Edge to its from-Node.
- </summary>
- <param name="de0"></param>
- <param name="de1"></param>
- </member>
- <member name="M:NetTopologySuite.Planargraph.Edge.SetDirectedEdges(NetTopologySuite.Planargraph.DirectedEdge,NetTopologySuite.Planargraph.DirectedEdge)">
- <summary>
- Initializes this Edge's two DirectedEdges, and for each DirectedEdge: sets the
- Edge, sets the symmetric DirectedEdge, and adds this Edge to its from-Node.
- </summary>
- <param name="de0"></param>
- <param name="de1"></param>
- </member>
- <member name="M:NetTopologySuite.Planargraph.Edge.GetDirEdge(System.Int32)">
- <summary>
- Returns one of the DirectedEdges associated with this Edge.
- </summary>
- <param name="i">0 or 1.</param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Planargraph.Edge.GetDirEdge(NetTopologySuite.Planargraph.Node)">
- <summary>
- Returns the DirectedEdge that starts from the given node, or null if the
- node is not one of the two nodes associated with this Edge.
- </summary>
- <param name="fromNode"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Planargraph.Edge.GetOppositeNode(NetTopologySuite.Planargraph.Node)">
- <summary>
- If <c>node</c> is one of the two nodes associated with this Edge,
- returns the other node; otherwise returns null.
- </summary>
- <param name="node"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Planargraph.Edge.Remove">
- <summary>
- Removes this edge from its containing graph.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Planargraph.Edge.IsRemoved">
- <summary>
- Tests whether this component has been removed from its containing graph.
- </summary>
- <value></value>
- </member>
- <member name="T:NetTopologySuite.Planargraph.GraphComponent">
- <summary>
- The base class for all graph component classes.
- Maintains flags of use in generic graph algorithms.
- Provides two flags:
- marked - typically this is used to indicate a state that persists
- for the course of the graph's lifetime. For instance, it can be
- used to indicate that a component has been logically deleted from the graph.
- visited - this is used to indicate that a component has been processed
- or visited by an single graph algorithm. For instance, a breadth-first traversal of the
- graph might use this to indicate that a node has already been traversed.
- The visited flag may be set and cleared many times during the lifetime of a graph.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Planargraph.GraphComponent.SetVisited(System.Collections.IEnumerator,System.Boolean)">
- <summary>
- Sets the <see cref="P:NetTopologySuite.Planargraph.GraphComponent.Visited" /> state
- for all <see cref="T:NetTopologySuite.Planargraph.GraphComponent" />s in an <see cref="T:System.Collections.IEnumerator" />.
- </summary>
- <param name="i">A <see cref="T:System.Collections.IEnumerator" /> to scan.</param>
- <param name="visited">The state to set the <see cref="P:NetTopologySuite.Planargraph.GraphComponent.Visited" /> flag to.</param>
- </member>
- <member name="M:NetTopologySuite.Planargraph.GraphComponent.SetMarked(System.Collections.IEnumerator,System.Boolean)">
- <summary>
- Sets the <see cref="P:NetTopologySuite.Planargraph.GraphComponent.Marked" /> state
- for all <see cref="T:NetTopologySuite.Planargraph.GraphComponent" />s in an <see cref="T:System.Collections.IEnumerator" />.
- </summary>
- <param name="i">A <see cref="T:System.Collections.IEnumerator" /> to scan.</param>
- <param name="marked">The state to set the <see cref="P:NetTopologySuite.Planargraph.GraphComponent.Marked" /> flag to.</param>
- </member>
- <member name="M:NetTopologySuite.Planargraph.GraphComponent.GetComponentWithVisitedState(System.Collections.IEnumerator,System.Boolean)">
- <summary>
- Finds the first <see cref="T:NetTopologySuite.Planargraph.GraphComponent" />
- in a <see cref="T:System.Collections.IEnumerator" /> set
- which has the specified <see cref="P:NetTopologySuite.Planargraph.GraphComponent.Visited" /> state.
- </summary>
- <param name="i">A <see cref="T:System.Collections.IEnumerator" /> to scan.</param>
- <param name="visitedState">The <see cref="P:NetTopologySuite.Planargraph.GraphComponent.Visited" /> state to test.</param>
- <returns>The first <see cref="T:NetTopologySuite.Planargraph.GraphComponent" /> found, or <c>null</c> if none found.</returns>
- </member>
- <member name="P:NetTopologySuite.Planargraph.GraphComponent.IsVisited">
- <summary>
- Tests if a component has been visited during the course of a graph algorithm.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Planargraph.GraphComponent.Visited">
- <summary>
- Gets/Sets the visited flag for this component.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Planargraph.GraphComponent.IsMarked">
- <summary>
- Tests if a component has been marked at some point during the processing
- involving this graph.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Planargraph.GraphComponent.Marked">
- <summary>
- Gets/Sets the marked flag for this component.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Planargraph.GraphComponent.IsRemoved">
- <summary>
- Tests whether this component has been removed from its containing graph.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Planargraph.GraphComponent.Data">
- <summary>
- Gets or sets user defined data for this component
- </summary>
- </member>
- <member name="T:NetTopologySuite.Planargraph.Node">
- <summary>
- A node in a <c>PlanarGraph</c> is a location where 0 or more <c>Edge</c>s
- meet. A node is connected to each of its incident Edges via an outgoing
- DirectedEdge. Some clients using a <c>PlanarGraph</c> may want to
- subclass <c>Node</c> to add their own application-specific
- data and methods.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Planargraph.Node.GetEdgesBetween(NetTopologySuite.Planargraph.Node,NetTopologySuite.Planargraph.Node)">
- <summary>
- Returns all Edges that connect the two nodes (which are assumed to be different).
- </summary>
- <param name="node0"></param>
- <param name="node1"></param>
- <returns></returns>
- </member>
- <member name="F:NetTopologySuite.Planargraph.Node.pt">
- <summary>
- The location of this Node.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Planargraph.Node.deStar">
- <summary>
- The collection of DirectedEdges that leave this Node.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Planargraph.Node.#ctor(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Constructs a Node with the given location.
- </summary>
- <param name="pt"></param>
- </member>
- <member name="M:NetTopologySuite.Planargraph.Node.#ctor(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Planargraph.DirectedEdgeStar)">
- <summary>
- Constructs a Node with the given location and collection of outgoing DirectedEdges.
- </summary>
- <param name="pt"></param>
- <param name="deStar"></param>
- </member>
- <member name="P:NetTopologySuite.Planargraph.Node.Coordinate">
- <summary>
- Returns the location of this Node.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Planargraph.Node.AddOutEdge(NetTopologySuite.Planargraph.DirectedEdge)">
- <summary>
- Adds an outgoing DirectedEdge to this Node.
- </summary>
- <param name="de"></param>
- </member>
- <member name="P:NetTopologySuite.Planargraph.Node.OutEdges">
- <summary>
- Returns the collection of DirectedEdges that leave this Node.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Planargraph.Node.Degree">
- <summary>
- Returns the number of edges around this Node.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Planargraph.Node.GetIndex(NetTopologySuite.Planargraph.Edge)">
- <summary>
- Returns the zero-based index of the given Edge, after sorting in ascending order
- by angle with the positive x-axis.
- </summary>
- <param name="edge"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Planargraph.Node.Remove(NetTopologySuite.Planargraph.DirectedEdge)">
- <summary>
- Removes a <see cref="T:NetTopologySuite.Planargraph.DirectedEdge"/> incident on this node. Does not change the state of the directed edge.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Planargraph.Node.Remove">
- <summary>
- Removes this node from its containing graph.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Planargraph.Node.IsRemoved">
- <summary>
- Tests whether this component has been removed from its containing graph.
- </summary>
- <value></value>
- </member>
- <member name="M:NetTopologySuite.Planargraph.Node.ToString">
- <summary>
-
- </summary>
- <returns></returns>
- </member>
- <member name="T:NetTopologySuite.Planargraph.NodeMap">
- <summary>
- A map of <see cref="T:NetTopologySuite.Planargraph.Node">nodes</see>, indexed by the coordinate of the node.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Planargraph.NodeMap.Add(NetTopologySuite.Planargraph.Node)">
- <summary>
- Adds a node to the map, replacing any that is already at that location.
- </summary>
- <param name="n"></param>
- <returns>The added node.</returns>
- </member>
- <member name="M:NetTopologySuite.Planargraph.NodeMap.Remove(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Removes the Node at the given location, and returns it (or null if no Node was there).
- </summary>
- <param name="pt"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Planargraph.NodeMap.Find(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Returns the Node at the given location, or null if no Node was there.
- </summary>
- <param name="coord"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Planargraph.NodeMap.GetEnumerator">
- <summary>
- Returns an Iterator over the Nodes in this NodeMap, sorted in ascending order
- by angle with the positive x-axis.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Planargraph.NodeMap.Values">
- <summary>
- Returns the Nodes in this NodeMap, sorted in ascending order
- by angle with the positive x-axis.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Planargraph.NodeMap.Count">
- <summary>
- Returns the number of Nodes in this NodeMap.
- </summary>
- </member>
- <member name="T:NetTopologySuite.Planargraph.PlanarGraph">
- <summary>
- Represents a directed graph which is embeddable in a planar surface.
- This class and the other classes in this package serve as a framework for
- building planar graphs for specific algorithms. This class must be
- subclassed to expose appropriate methods to construct the graph. This allows
- controlling the types of graph components ({DirectedEdge}s,
- <c>Edge</c>s and <c>Node</c>s) which can be added to the graph. An
- application which uses the graph framework will almost always provide
- subclasses for one or more graph components, which hold application-specific
- data and graph algorithms.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Planargraph.PlanarGraph._edges">
- <summary>
-
- </summary>
- </member>
- <member name="F:NetTopologySuite.Planargraph.PlanarGraph.dirEdges">
- <summary>
-
- </summary>
- </member>
- <member name="F:NetTopologySuite.Planargraph.PlanarGraph.nodeMap">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Planargraph.PlanarGraph.FindNode(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- 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.
- </summary>
- <param name="pt">The location</param>
- <returns>The node found<br/>
- or <c>null</c> if this graph contains no node at the location
- </returns>
- </member>
- <member name="M:NetTopologySuite.Planargraph.PlanarGraph.Add(NetTopologySuite.Planargraph.Node)">
- <summary>
- Adds a node to the map, replacing any that is already at that location.
- Only subclasses can add Nodes, to ensure Nodes are of the right type.
- </summary>
- <param name="node"></param>
- <returns>The added node.</returns>
- </member>
- <member name="M:NetTopologySuite.Planargraph.PlanarGraph.Add(NetTopologySuite.Planargraph.Edge)">
- <summary>
- Adds the Edge and its DirectedEdges with this PlanarGraph.
- Assumes that the Edge has already been created with its associated DirectEdges.
- Only subclasses can add Edges, to ensure the edges added are of the right class.
- </summary>
- <param name="edge"></param>
- </member>
- <member name="M:NetTopologySuite.Planargraph.PlanarGraph.Add(NetTopologySuite.Planargraph.DirectedEdge)">
- <summary>
- Adds the Edge to this PlanarGraph; only subclasses can add DirectedEdges,
- to ensure the edges added are of the right class.
- </summary>
- <param name="dirEdge"></param>
- </member>
- <member name="M:NetTopologySuite.Planargraph.PlanarGraph.GetNodeEnumerator">
- <summary>
- Returns an IEnumerator over the Nodes in this PlanarGraph.
- </summary>
- <returns></returns>
- </member>
- <member name="P:NetTopologySuite.Planargraph.PlanarGraph.Nodes">
- <summary>
- Returns the Nodes in this PlanarGraph.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Planargraph.PlanarGraph.GetDirEdgeEnumerator">
- <summary>
- Returns an Iterator over the DirectedEdges in this PlanarGraph, in the order in which they
- were added.
- </summary>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Planargraph.PlanarGraph.GetEdgeEnumerator">
- <summary>
- Returns an Iterator over the Edges in this PlanarGraph, in the order in which they
- were added.
- </summary>
- <returns></returns>
- </member>
- <member name="P:NetTopologySuite.Planargraph.PlanarGraph.Edges">
- <summary>
- Returns the Edges that have been added to this PlanarGraph.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Planargraph.PlanarGraph.Remove(NetTopologySuite.Planargraph.Edge)">
- <summary>
- Removes an Edge and its associated DirectedEdges from their from-Nodes and
- from this PlanarGraph. Note: This method does not remove the Nodes associated
- with the Edge, even if the removal of the Edge reduces the degree of a
- Node to zero.
- </summary>
- <param name="edge"></param>
- </member>
- <member name="M:NetTopologySuite.Planargraph.PlanarGraph.Remove(NetTopologySuite.Planargraph.DirectedEdge)">
- <summary>
- Removes a <see cref="T:NetTopologySuite.Planargraph.DirectedEdge"/> from its from-<see cref="T:NetTopologySuite.Planargraph.Node"/> and from this PlanarGraph.
- </summary>
- <remarks>
- This method does not remove the <see cref="T:NetTopologySuite.Planargraph.Node"/>s associated with the DirectedEdge,
- even if the removal of the DirectedEdge reduces the degree of a Node to zero.
- </remarks>
- <param name="de"></param>
- </member>
- <member name="M:NetTopologySuite.Planargraph.PlanarGraph.Remove(NetTopologySuite.Planargraph.Node)">
- <summary>
- Removes a node from the graph, along with any associated DirectedEdges and
- Edges.
- </summary>
- <param name="node"></param>
- </member>
- <member name="M:NetTopologySuite.Planargraph.PlanarGraph.FindNodesOfDegree(System.Int32)">
- <summary>
- Returns all Nodes with the given number of Edges around it.
- </summary>
- <param name="degree"></param>
- <returns></returns>
- </member>
- <member name="T:NetTopologySuite.Planargraph.Subgraph">
- <summary>
- A subgraph of a <see cref="T:NetTopologySuite.Planargraph.PlanarGraph" />.
- A subgraph may contain any subset of <see cref="T:NetTopologySuite.Planargraph.Edge" />s
- from the parent graph.
- It will also automatically contain all <see cref="T:NetTopologySuite.Planargraph.DirectedEdge" />s
- and <see cref="T:NetTopologySuite.Planargraph.Node" />s associated with those edges.
- No new objects are created when edges are added -
- all associated components must already exist in the parent graph.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Planargraph.Subgraph.parentGraph">
- <summary>
-
- </summary>
- </member>
- <member name="F:NetTopologySuite.Planargraph.Subgraph.edges">
- <summary>
-
- </summary>
- </member>
- <member name="F:NetTopologySuite.Planargraph.Subgraph.dirEdges">
- <summary>
-
- </summary>
- </member>
- <member name="F:NetTopologySuite.Planargraph.Subgraph.nodeMap">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Planargraph.Subgraph.#ctor(NetTopologySuite.Planargraph.PlanarGraph)">
- <summary>
- Creates a new subgraph of the given <see cref="T:NetTopologySuite.Planargraph.PlanarGraph" />.
- </summary>
- <param name="parentGraph"></param>
- </member>
- <member name="M:NetTopologySuite.Planargraph.Subgraph.GetParent">
- <summary>
- Gets the <see cref="T:NetTopologySuite.Planargraph.PlanarGraph" /> which this subgraph is part of.
- </summary>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Planargraph.Subgraph.Add(NetTopologySuite.Planargraph.Edge)">
- <summary>
- Adds an <see cref="T:NetTopologySuite.Planargraph.Edge" /> to the subgraph.
- The associated <see cref="T:NetTopologySuite.Planargraph.DirectedEdge" />s and <see cref="T:NetTopologySuite.Planargraph.Node" />s are also added.
- </summary>
- <param name="e">The <see cref="T:NetTopologySuite.Planargraph.Edge" /> to add.</param>
- </member>
- <member name="M:NetTopologySuite.Planargraph.Subgraph.GetDirEdgeEnumerator">
- <summary>
- Returns an <see cref="T:System.Collections.Generic.IEnumerator`1" /> over the <see cref="T:NetTopologySuite.Planargraph.DirectedEdge" />s in this graph,
- in the order in which they were added.
- </summary>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Planargraph.Subgraph.GetEdgeEnumerator">
- <summary>
- Returns an <see cref="T:System.Collections.Generic.IEnumerator`1" /> over the <see cref="T:NetTopologySuite.Planargraph.Edge" />s in this graph,
- in the order in which they were added.
- </summary>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Planargraph.Subgraph.GetNodeEnumerator">
- <summary>
- Returns an <see cref="T:System.Collections.Generic.IEnumerator`1" /> over the <see cref="T:NetTopologySuite.Planargraph.Node" />s in this graph.
- </summary>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Planargraph.Subgraph.Contains(NetTopologySuite.Planargraph.Edge)">
- <summary>
- Tests whether an <see cref="T:NetTopologySuite.Planargraph.Edge" /> is contained in this subgraph.
- </summary>
- <param name="e">The <see cref="T:NetTopologySuite.Planargraph.Edge" /> to test.</param>
- <returns><c>true</c> if the <see cref="T:NetTopologySuite.Planargraph.Edge" /> is contained in this subgraph.</returns>
- </member>
- <member name="T:NetTopologySuite.Precision.CommonBits">
- <summary>
- Determines the maximum number of common most-significant
- bits in the mantissa of one or numbers.
- Can be used to compute the double-precision number which
- is represented by the common bits.
- If there are no common bits, the number computed is 0.0.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Precision.CommonBits.SignExpBits(System.Int64)">
- <summary>
- Computes the bit pattern for the sign and exponent of a
- double-precision number.
- </summary>
- <param name="num"></param>
- <returns>The bit pattern for the sign and exponent.</returns>
- </member>
- <member name="M:NetTopologySuite.Precision.CommonBits.NumCommonMostSigMantissaBits(System.Int64,System.Int64)">
- <summary>
- This computes the number of common most-significant bits in the mantissas
- of two double-precision numbers.
- It does not count the hidden bit, which is always 1.
- It does not determine whether the numbers have the same exponent - if they do
- not, the value computed by this function is meaningless.
- </summary>
- <param name="num1"></param>
- /// <param name="num2"></param>
- <returns>The number of common most-significant mantissa bits.</returns>
- </member>
- <member name="M:NetTopologySuite.Precision.CommonBits.ZeroLowerBits(System.Int64,System.Int32)">
- <summary>
- Zeroes the lower n bits of a bitstring.
- </summary>
- <param name="bits">The bitstring to alter.</param>
- <param name="nBits">the number of bits to zero.</param>
- <returns>The zeroed bitstring.</returns>
- </member>
- <member name="M:NetTopologySuite.Precision.CommonBits.GetBit(System.Int64,System.Int32)">
- <summary>
- Extracts the i'th bit of a bitstring.
- </summary>
- <param name="bits">The bitstring to extract from.</param>
- <param name="i">The bit to extract.</param>
- <returns>The value of the extracted bit.</returns>
- </member>
- <member name="M:NetTopologySuite.Precision.CommonBits.Add(System.Double)">
- <summary>
-
- </summary>
- <param name="num"></param>
- </member>
- <member name="P:NetTopologySuite.Precision.CommonBits.Common">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Precision.CommonBits.ToString(System.Int64)">
- <summary>
- A representation of the Double bits formatted for easy readability
- </summary>
- <param name="bits"></param>
- <returns></returns>
- </member>
- <member name="T:NetTopologySuite.Precision.CommonBitsOp">
- <summary>
- Provides versions of Geometry spatial functions which use
- common bit removal to reduce the likelihood of robustness problems.
- In the current implementation no rounding is performed on the
- reshifted result point, which means that it is possible
- that the returned Geometry is invalid.
- Client classes should check the validity of the returned result themselves.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Precision.CommonBitsOp.#ctor">
- <summary>
- Creates a new instance of class, which reshifts result <c>Geometry</c>s.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Precision.CommonBitsOp.#ctor(System.Boolean)">
- <summary>
- Creates a new instance of class, specifying whether
- the result <c>Geometry</c>s should be reshifted.
- </summary>
- <param name="returnToOriginalPrecision"></param>
- </member>
- <member name="M:NetTopologySuite.Precision.CommonBitsOp.Intersection(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes the set-theoretic intersection of two <c>Geometry</c>s, using enhanced precision.
- </summary>
- <param name="geom0">The first Geometry.</param>
- <param name="geom1">The second Geometry.</param>
- <returns>The Geometry representing the set-theoretic intersection of the input Geometries.</returns>
- </member>
- <member name="M:NetTopologySuite.Precision.CommonBitsOp.Union(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes the set-theoretic union of two <c>Geometry</c>s, using enhanced precision.
- </summary>
- <param name="geom0">The first Geometry.</param>
- <param name="geom1">The second Geometry.</param>
- <returns>The Geometry representing the set-theoretic union of the input Geometries.</returns>
- </member>
- <member name="M:NetTopologySuite.Precision.CommonBitsOp.Difference(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes the set-theoretic difference of two <c>Geometry</c>s, using enhanced precision.
- </summary>
- <param name="geom0">The first Geometry.</param>
- <param name="geom1">The second Geometry, to be subtracted from the first.</param>
- <returns>The Geometry representing the set-theoretic difference of the input Geometries.</returns>
- </member>
- <member name="M:NetTopologySuite.Precision.CommonBitsOp.SymDifference(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary
- > Computes the set-theoretic symmetric difference of two geometries,
- using enhanced precision.
- </summary>
- <param name="geom0">The first Geometry.</param>
- <param name="geom1">The second Geometry.</param>
- <returns>The Geometry representing the set-theoretic symmetric difference of the input Geometries.</returns>
- </member>
- <member name="M:NetTopologySuite.Precision.CommonBitsOp.Buffer(NetTopologySuite.Geometries.Geometry,System.Double)">
- <summary>
- Computes the buffer a point, using enhanced precision.
- </summary>
- <param name="geom0">The Geometry to buffer.</param>
- <param name="distance">The buffer distance.</param>
- <returns>The Geometry representing the buffer of the input Geometry.</returns>
- </member>
- <member name="M:NetTopologySuite.Precision.CommonBitsOp.ComputeResultPrecision(NetTopologySuite.Geometries.Geometry)">
- <summary>
- If required, returning the result to the original precision if required.
- In this current implementation, no rounding is performed on the
- reshifted result point, which means that it is possible
- that the returned Geometry is invalid.
- </summary>
- <param name="result">The result Geometry to modify.</param>
- <returns>The result Geometry with the required precision.</returns>
- </member>
- <member name="M:NetTopologySuite.Precision.CommonBitsOp.RemoveCommonBits(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes a copy of the input <c>Geometry</c> with the calculated common bits
- removed from each coordinate.
- </summary>
- <param name="geom0">The Geometry to remove common bits from.</param>
- <returns>A copy of the input Geometry with common bits removed.</returns>
- </member>
- <member name="M:NetTopologySuite.Precision.CommonBitsOp.RemoveCommonBits(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes a copy of each input <c>Geometry</c>s with the calculated common bits
- removed from each coordinate.
- </summary>
- <param name="geom0">A Geometry to remove common bits from.</param>
- <param name="geom1">A Geometry to remove common bits from.</param>
- <returns>
- An array containing copies
- of the input Geometry's with common bits removed.
- </returns>
- </member>
- <member name="T:NetTopologySuite.Precision.CommonBitsRemover">
- <summary>
- Removes common most-significant mantissa bits
- from one or more <see cref="T:NetTopologySuite.Geometries.Geometry"/>s.
- <para/>
- The CommonBitsRemover "scavenges" precision
- which is "wasted" by a large displacement of the geometry
- from the origin.
- For example, if a small geometry is displaced from the origin
- by a large distance,
- the displacement increases the significant figures in the coordinates,
- but does not affect the <i>relative</i> topology of the geometry.
- Thus the geometry can be translated back to the origin
- without affecting its topology.
- In order to compute the translation without affecting
- the full precision of the coordinate values,
- the translation is performed at the bit level by
- removing the common leading mantissa bits.
- <para/>
- If the geometry envelope already contains the origin,
- the translation procedure cannot be applied.
- In this case, the common bits value is computed as zero.
- <para/>
- If the geometry crosses the Y axis but not the X axis
- (and <i>mutatis mutandum</i>),
- the common bits for Y are zero,
- but the common bits for X are non-zero.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Precision.CommonBitsRemover.Add(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Add a point to the set of geometries whose common bits are
- being computed. After this method has executed the
- common coordinate reflects the common bits of all added
- geometries.
- </summary>
- <param name="geom">A Geometry to test for common bits.</param>
- </member>
- <member name="P:NetTopologySuite.Precision.CommonBitsRemover.CommonCoordinate">
- <summary>
- The common bits of the Coordinates in the supplied Geometries.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Precision.CommonBitsRemover.RemoveCommonBits(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Removes the common coordinate bits from a Geometry.
- The coordinates of the Geometry are changed.
- </summary>
- <param name="geom">The Geometry from which to remove the common coordinate bits.</param>
- <returns>The shifted Geometry.</returns>
- </member>
- <member name="M:NetTopologySuite.Precision.CommonBitsRemover.AddCommonBits(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Adds the common coordinate bits back into a Geometry.
- The coordinates of the Geometry are changed.
- </summary>
- <param name="geom">The Geometry to which to add the common coordinate bits.</param>
- </member>
- <member name="T:NetTopologySuite.Precision.CommonBitsRemover.CommonCoordinateFilter">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Precision.CommonBitsRemover.CommonCoordinateFilter.Filter(NetTopologySuite.Geometries.Coordinate)">
- <summary>
-
- </summary>
- <param name="coord"></param>
- </member>
- <member name="P:NetTopologySuite.Precision.CommonBitsRemover.CommonCoordinateFilter.CommonCoordinate">
- <summary>
-
- </summary>
- </member>
- <member name="T:NetTopologySuite.Precision.CommonBitsRemover.Translater">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Precision.CommonBitsRemover.Translater.#ctor(NetTopologySuite.Geometries.Coordinate)">
- <summary>
-
- </summary>
- <param name="trans"></param>
- </member>
- <member name="M:NetTopologySuite.Precision.CommonBitsRemover.Translater.Filter(NetTopologySuite.Geometries.CoordinateSequence,System.Int32)">
- <summary>
-
- </summary>
- <param name="seq">The coordinate sequence</param>
- </member>
- <member name="T:NetTopologySuite.Precision.CoordinatePrecisionReducerFilter">
- <summary>
- Reduces the precision of the <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s in a
- <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/> to match the supplied <see cref="T:NetTopologySuite.Geometries.PrecisionModel"/>.
- </summary>
- <remarks>
- Uses <see cref="M:NetTopologySuite.Geometries.PrecisionModel.MakePrecise(System.Double)"/>.
- The input is modified in-place, so
- it should be cloned beforehand if the
- original should not be modified.
- </remarks>
- <author>mbdavis</author>
- </member>
- <member name="M:NetTopologySuite.Precision.CoordinatePrecisionReducerFilter.#ctor(NetTopologySuite.Geometries.PrecisionModel)">
- <summary>
- Creates a new precision reducer filter.
- </summary>
- <param name="precModel">The PrecisionModel to use</param>
- </member>
- <member name="M:NetTopologySuite.Precision.CoordinatePrecisionReducerFilter.Filter(NetTopologySuite.Geometries.CoordinateSequence,System.Int32)">
- <summary>
- Rounds the Coordinates in the sequence to match the PrecisionModel
- </summary>
- </member>
- <member name="P:NetTopologySuite.Precision.CoordinatePrecisionReducerFilter.Done">
- <summary>
- Always runs over all geometry components.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Precision.CoordinatePrecisionReducerFilter.GeometryChanged">
- <summary>
- Always reports that the geometry has changed
- </summary>
- </member>
- <member name="T:NetTopologySuite.Precision.EnhancedPrecisionOp">
- <summary>
- Provides versions of Geometry spatial functions which use
- enhanced precision techniques to reduce the likelihood of robustness problems.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Precision.EnhancedPrecisionOp.#ctor">
- <summary>
- Only static methods!
- </summary>
- </member>
- <member name="M:NetTopologySuite.Precision.EnhancedPrecisionOp.Intersection(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes the set-theoretic intersection of two <c>Geometry</c>s, using enhanced precision.
- </summary>
- <param name="geom0">The first Geometry.</param>
- <param name="geom1">The second Geometry.</param>
- <returns>The Geometry representing the set-theoretic intersection of the input Geometries.</returns>
- </member>
- <member name="M:NetTopologySuite.Precision.EnhancedPrecisionOp.Union(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes the set-theoretic union of two <c>Geometry</c>s, using enhanced precision.
- </summary>
- <param name="geom0">The first Geometry.</param>
- <param name="geom1">The second Geometry.</param>
- <returns>The Geometry representing the set-theoretic union of the input Geometries.</returns>
- </member>
- <member name="M:NetTopologySuite.Precision.EnhancedPrecisionOp.Difference(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes the set-theoretic difference of two <c>Geometry</c>s, using enhanced precision.
- </summary>
- <param name="geom0">The first Geometry.</param>
- <param name="geom1">The second Geometry.</param>
- <returns>The Geometry representing the set-theoretic difference of the input Geometries.</returns>
- </member>
- <member name="M:NetTopologySuite.Precision.EnhancedPrecisionOp.SymDifference(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes the set-theoretic symmetric difference of two <c>Geometry</c>s, using enhanced precision.
- </summary>
- <param name="geom0">The first Geometry.</param>
- <param name="geom1">The second Geometry.</param>
- <returns>The Geometry representing the set-theoretic symmetric difference of the input Geometries.</returns>
- </member>
- <member name="T:NetTopologySuite.Precision.GeometryPrecisionReducer">
- <summary>
- Reduces the precision of a <see cref="T:NetTopologySuite.Geometries.Geometry"/>
- according to the supplied <see cref="T:NetTopologySuite.Geometries.PrecisionModel"/>,
- ensuring that the result is valid (unless specified otherwise).
- <para/>
- By default the geometry precision model is not changed.
- This can be overridden by using <see cref="P:NetTopologySuite.Precision.GeometryPrecisionReducer.ChangePrecisionModel"/>.
- <h4>Topological Precision Reduction</h4>
- The default mode of operation ensures the reduced result is topologically valid
- (i.e. <see cref="P:NetTopologySuite.Geometries.Geometry.IsValid"/> is true).
- To ensure this polygonal geometry is reduced in a topologically valid fashion
- (technically, by using snap-rounding).
- Note that this may change polygonal geometry structure
- (e.g.two polygons separated by a distance below the specified precision
- will be merged into a single polygon).
- Duplicate vertices are removed.
- This mode is invoked by the static method <see cref="M:NetTopologySuite.Precision.GeometryPrecisionReducer.Reduce(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.PrecisionModel)"/>.
- <para/>
- Normally, collapsed linear components(e.g.lines collapsing to a point)
- are not included in the result.
- This behavior can be changed
- by setting <see cref="P:NetTopologySuite.Precision.GeometryPrecisionReducer.RemoveCollapsedComponents"/> to <c>false</c>,
- or by using the static method <see cref="M:NetTopologySuite.Precision.GeometryPrecisionReducer.ReduceKeepCollapsed(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.PrecisionModel)"/>.
- <para/>
- In general input must be valid geometry, or an <see cref="T:System.ArgumentException"/>
- will be thrown. However if the invalidity is "mild" or very small then it
- may be eliminated by precision reduction.
- <h4> Pointwise Precision Reduction</h4>
- Alternatively, geometry can be reduced pointwise by using {@link #setPointwise(boolean)}.
- Linear and point geometry are always reduced pointwise(i.e.without further change to
- topology or structure), since this does not change validity.
- Invalid inputs are allowed.
- Duplicate vertices are preserved.
- Collapsed components are always included in the result.
- The result geometry may be invalid.
- <para/>
- This mode is invoked by the static method <see cref="M:NetTopologySuite.Precision.GeometryPrecisionReducer.ReducePointwise(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.PrecisionModel)"/>.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Precision.GeometryPrecisionReducer.Reduce(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.PrecisionModel)">
- <summary>
- Reduces precision of a geometry, ensuring output geometry is valid.
- Collapsed linear and polygonal components are removed.
- The geometry precision model is not changed.
- Invalid input geometry may cause an error,
- unless the invalidity is below the scale of the precision reduction.
- </summary>
- <param name="g">The geometry to reduce</param>
- <param name="precModel">The precision model to use</param>
- <returns>The reduced geometry</returns>
- <exception cref="T:System.ArgumentException">Thrwon if the reduction fails due to invalid input geometry</exception>
- </member>
- <member name="M:NetTopologySuite.Precision.GeometryPrecisionReducer.ReduceKeepCollapsed(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.PrecisionModel)">
- <summary>
- Reduces precision of a geometry, ensuring output polygonal geometry is valid,
- and preserving collapsed linear elements.
- The geometry precision model is not changed.
- Invalid input geometry may cause an error,
- unless the invalidity is below the scale of the precision reduction.
- </summary>
- <param name="g">The geometry to reduce</param>
- <param name="precModel">The precision model to use</param>
- <returns>The reduced geometry</returns>
- <exception cref="T:System.ArgumentException">Thrwon if the reduction fails due to invalid input geometry</exception>
- </member>
- <member name="M:NetTopologySuite.Precision.GeometryPrecisionReducer.ReducePointwise(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.PrecisionModel)">
- <summary>
- Reduce precision of a geometry in a pointwise way.
- All input geometry elements are preserved in the output,
- including invalid polygons and collapsed polygons and linestrings.
- The output may not be valid, due to collapse or self-intersection.
- The geometry precision model is not changed.
- Invalid input geometry is allowed.
- </summary>
- <param name="g">The geometry to reduce</param>
- <param name="precModel">The precision model to use</param>
- <returns>The reduced geometry</returns>
- </member>
- <member name="P:NetTopologySuite.Precision.GeometryPrecisionReducer.RemoveCollapsedComponents">
- <summary>Gets or sets whether the reduction will result in collapsed components
- being removed completely, or simply being collapsed to an (invalid)
- Geometry of the same type.
- The default is to remove collapsed components.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Precision.GeometryPrecisionReducer.ChangePrecisionModel">
- <summary>
- Gets or sets whether the <see cref = "T:NetTopologySuite.Geometries.PrecisionModel"/> of the new reduced Geometry
- will be changed to be the <see cref="T:NetTopologySuite.Geometries.PrecisionModel"/> supplied to
- specify the precision reduction.
- <para/>
- The default is to <b>not</b> change the precision model
- </summary>
- </member>
- <member name="P:NetTopologySuite.Precision.GeometryPrecisionReducer.Pointwise">
- <summary>
- Gets or sets whether the precision reduction will be done
- in pointwise fashion only.
- Pointwise precision reduction reduces the precision
- of the individual coordinates only, but does
- not attempt to recreate valid topology.
- This is only relevant for geometries containing polygonal components.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Precision.GeometryPrecisionReducer.Reduce(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Reduces the precision of a geometry,
- according to the specified strategy of this reducer.
- </summary>
- <param name="geom">The geometry to reduce</param>
- <returns>The precision-reduced geometry</returns>
- <exception cref="T:System.ArgumentException">if the reduction fails
- due to input geometry is invalid.</exception>
- </member>
- <member name="M:NetTopologySuite.Precision.GeometryPrecisionReducer.ChangePM(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.PrecisionModel)">
- <summary>
- Duplicates a geometry to one that uses a different PrecisionModel,
- without changing any coordinate values.
- </summary>
- <param name="geom">The geometry to duplicate</param>
- <param name="pm">The precision model to use</param>
- <returns>The geometry value with a new precision model</returns>
- </member>
- <member name="T:NetTopologySuite.Precision.MinimumClearance">
- <summary>
- Computes the Minimum Clearance of a <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
- <para/>
- The <b>Minimum Clearance</b> is a measure of
- what magnitude of perturbation of
- the vertices of a geometry can be tolerated
- before the geometry becomes topologically invalid.
- The smaller the Minimum Clearance distance,
- the less vertex perturbation the geometry can tolerate
- before becoming invalid.
- </summary>
- <remarks>
- The concept was introduced by Thompson and Van Oosterom
- [TV06], based on earlier work by Milenkovic [Mi88].
- <para/>
- The Minimum Clearance of a geometry G
- is defined to be the value <i>r</i>
- such that "the movement of all points by a distance
- of <i>r</i> in any direction will
- guarantee to leave the geometry valid" [TV06].
- An equivalent constructive definition [Mi88] is that
- <i>r</i> is the largest value such:
- <list type="bullet">
- <item><description>No two distinct vertices of G are closer than <i>r</i>.</description></item>
- <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>
- </list>
- The following image shows an example of the Minimum Clearance
- of a simple polygon.
- <para/>
- <center><img src="/images/minClearance.png" alt="minimum clearance"/></center>
- <para/>
- If G has only a single vertex (i.e. is a
- <see cref="T:NetTopologySuite.Geometries.Point"/>), the value of the minimum clearance
- is <see cref="F:System.Double.MaxValue"/>.
- <para/>
- If G is a <see cref="T:NetTopologySuite.Geometries.IPuntal"/> or <see cref="T:NetTopologySuite.Geometries.ILineal"/> geometry,
- then in fact no amount of perturbation
- will render the geometry invalid.
- In this case a Minimum Clearance is still computed
- based on the vertex and segment distances
- according to the constructive definition.
- <para/>
- It is possible for no Minimum Clearance to exist.
- For instance, a <see cref="T:NetTopologySuite.Geometries.MultiPoint"/> with all members identical
- has no Minimum Clearance
- (i.e. no amount of perturbation will cause
- the member points to become non-identical).
- Empty geometries also have no such distance.
- The lack of a meaningful MinimumClearance distance is detected
- and suitable values are returned by
- <see cref="M:NetTopologySuite.Precision.MinimumClearance.GetDistance"/> and <see cref="M:NetTopologySuite.Precision.MinimumClearance.GetLine"/>.
- <para/>
- The computation of Minimum Clearance utilizes
- the <see cref="M:NetTopologySuite.Index.Strtree.STRtree`1.NearestNeighbour(NetTopologySuite.Index.Strtree.IItemDistance{NetTopologySuite.Geometries.Envelope,`0})"/>
- method to provide good performance even for
- large inputs.
- <para/>
- An interesting note is that for the case of <see cref="T:NetTopologySuite.Geometries.MultiPoint"/>s,
- the computed Minimum Clearance line
- effectively determines the Nearest Neighbours in the collection.
- <h3>References</h3>
- <list type="bullet">
- <item><description>[Mi88] Milenkovic, V. J.,
- <i>Verifiable implementations of geometric algorithms
- using finite precision arithmetic</i>.
- in Artificial Intelligence, 377-401. 1988</description></item>
- <item><description>[TV06] Thompson, Rod and van Oosterom, Peter,
- <i>Interchange of Spatial Data-Inhibiting Factors</i>,
- Agile 2006, Visegrad, Hungary. 2006</description></item>
- </list>
- </remarks>
- /// <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Precision.MinimumClearance.GetDistance(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes the Minimum Clearance distance for
- the given Geometry.
- </summary>
- <param name="g">The input geometry</param>
- <returns>The minimum clearance</returns>
- </member>
- <member name="M:NetTopologySuite.Precision.MinimumClearance.GetLine(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Gets a LineString containing two points
- which are at the Minimum Clearance distance
- for the given Geometry.
- </summary>
- <param name="g">The input geometry</param>
- <returns>The value of the minimum clearance distance<br/>
- or <c>LINESTRING EMPTY</c> if no minimum clearance distance exists.</returns>
- </member>
- <member name="M:NetTopologySuite.Precision.MinimumClearance.#ctor(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Creates an object to compute the Minimum Clearance for the given Geometry
- </summary>
- <param name="geom">The input geometry</param>
- </member>
- <member name="M:NetTopologySuite.Precision.MinimumClearance.GetDistance">
- <summary>
- Gets the Minimum Clearance distance.
- <para>If no distance exists
- (e.g. in the case of two identical points)
- <see cref="F:System.Double.MaxValue"/> is returned.</para>
- </summary>
- <returns>
- The value of the minimum clearance distance<br/>
- or <see cref="F:System.Double.MaxValue"/> if no Minimum Clearance distance exists
- </returns>
- </member>
- <member name="M:NetTopologySuite.Precision.MinimumClearance.GetLine">
- <summary>
- Gets a LineString containing two points
- which are at the Minimum Clearance distance.<para/>
- If no distance could be found
- (e.g. in the case of two identical points)
- <c>LINESTRING EMPTY</c> is returned.
- </summary>
- <returns>The value of the minimum clearance distance, <br/>
- or <c>LINESTRING EMPTY</c> if no minimum clearance distance exists.</returns>
- </member>
- <member name="T:NetTopologySuite.Precision.MinimumClearance.MinClearanceDistance">
- <summary>
- Implements the MinimumClearance distance function:
- <code>
- dist(p1, p2) =
- p1 != p2 : p1.distance(p2)
- p1 == p2 : Double.MAX
-
- dist(p, seg) =
- p != seq.p1 && p != seg.p2
- ? seg.distance(p)
- : Double.MaxValue
- </code>
- Also computes the values of the nearest points, if any.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="T:NetTopologySuite.Precision.PointwisePrecisionReducerTransformer">
- <summary>
- A transformer to reduce the precision of a geometry pointwise.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="T:NetTopologySuite.Precision.PrecisionReducerTransformer">
- <summary>
- A transformer to reduce the precision of geometry in a
- topologically valid way.<br/>
- Repeated points are removed.
- If geometry elements collapse below their valid length,
- they may be removed
- by specifying <c>isRemoveCollapsed</c> as <c>true</c>.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Precision.PrecisionReducerTransformer.TransformPolygon(NetTopologySuite.Geometries.Polygon,NetTopologySuite.Geometries.Geometry)">
- <inheritdoc cref="M:NetTopologySuite.Geometries.Utilities.GeometryTransformer.TransformPolygon(NetTopologySuite.Geometries.Polygon,NetTopologySuite.Geometries.Geometry)"/>
- </member>
- <member name="M:NetTopologySuite.Precision.PrecisionReducerTransformer.TransformMultiPolygon(NetTopologySuite.Geometries.MultiPolygon,NetTopologySuite.Geometries.Geometry)">
- <inheritdoc cref="M:NetTopologySuite.Geometries.Utilities.GeometryTransformer.TransformMultiPolygon(NetTopologySuite.Geometries.MultiPolygon,NetTopologySuite.Geometries.Geometry)"/>
- </member>
- <member name="T:NetTopologySuite.Precision.SimpleMinimumClearance">
- <summary>
- Computes the minimum clearance of a geometry or
- set of geometries.<para/>
- The <b>Minimum Clearance</b> is a measure of
- what magnitude of perturbation of its vertices can be tolerated
- by a geometry before it becomes topologically invalid.
- <para/>
- This class uses an inefficient O(N^2) scan.
- It is primarily for testing purposes.
- </summary>
- <seealso cref="T:NetTopologySuite.Precision.MinimumClearance"/>
- <author>Martin Davis</author>
- </member>
- <member name="T:NetTopologySuite.Shape.CubicBezierCurve">
- <summary>
- Creates a curved geometry by replacing the segments
- of the input with Cubic Bezier Curves.
- </summary>
- <remarks>
- The Bezier control points are determined from the segments of the geometry
- and the alpha control parameter controlling curvedness, and
- the optional skew parameter controlling the shape of the curve at vertices.
- The Bezier Curves are created to be C2-continuous (smooth)
- at each input vertex.
- <para/>
- Alternatively, the Bezier control points can be supplied explicitly.
- <para/>
- The result is not guaranteed to be valid, since large alpha values
- may cause self-intersections.
- </remarks>
- </member>
- <member name="M:NetTopologySuite.Shape.CubicBezierCurve.Create(NetTopologySuite.Geometries.Geometry,System.Double)">
- <summary>
- Creates a geometry of linearized Cubic Bezier Curves
- defined by the segments of the input and a parameter
- controlling how curved the result should be.
- </summary>
- <param name="geom">The geometry defining the curve</param>
- <param name="alpha">A curvedness parameter (0 is linear, 1 is round, >1 is increasingly curved)</param>
- <returns>The linearized curved geometry</returns>
- </member>
- <member name="M:NetTopologySuite.Shape.CubicBezierCurve.Create(NetTopologySuite.Geometries.Geometry,System.Double,System.Double)">
- <summary>
- Creates a geometry of linearized Cubic Bezier Curves
- defined by the segments of the inputand a parameter
- controlling how curved the result should be, with a skew factor
- affecting the curve shape at each vertex.
- </summary>
- <param name="geom">The geometry defining the curve</param>
- <param name="alpha">The curvedness parameter (0 is linear, 1 is round, >1 is increasingly curved)</param>
- <param name="skew">The skew parameter (0 is none, positive skews towards longer side, negative towards shorter</param>
- <returns>The linearized curved geometry</returns>
- </member>
- <member name="M:NetTopologySuite.Shape.CubicBezierCurve.Create(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Creates a geometry of linearized Cubic Bezier Curves
- defined by the segments of the input
- and a list (or lists) of control points.
- </summary>
- <remarks>
- Typically the control point geometry
- is a <see cref="T:NetTopologySuite.Geometries.LineString"/> or <see cref="T:NetTopologySuite.Geometries.MultiLineString"/>
- containing an element for each line or ring in the input geometry.
- The list of control points for each linear element must contain two
- vertices for each segment (and thus <code>2 * npts - 2</code>).
- </remarks>
- <param name="geom">The geometry defining the curve</param>
- <param name="controlPoints">A geometry containing the control point elements.</param>
- <returns>The linearized curved geometry</returns>
- </member>
- <member name="M:NetTopologySuite.Shape.CubicBezierCurve.#ctor(NetTopologySuite.Geometries.Geometry,System.Double)">
- <summary>
- Creates a new instance producing a Bezier curve defined by a geometry
- and an alpha curvedness value.
- </summary>
- <param name="geom">The geometry defining curve</param>
- <param name="alpha">A curvedness parameter (0 = linear, 1 = round, 2 = distorted)</param>
- </member>
- <member name="M:NetTopologySuite.Shape.CubicBezierCurve.#ctor(NetTopologySuite.Geometries.Geometry,System.Double,System.Double)">
- <summary>
- Creates a new instance producing a Bezier curve defined by a geometry,
- an alpha curvedness value, and a skew factor.
- </summary>
- <param name="geom">The geometry defining curve</param>
- <param name="alpha">curvedness parameter (0 is linear, 1 is round, >1 is increasingly curved)</param>
- <param name="skew">The skew parameter (0 is none, positive skews towards longer side, negative towards shorter</param>
- </member>
- <member name="M:NetTopologySuite.Shape.CubicBezierCurve.#ctor(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Creates a new instance producing a Bezier curve defined by a geometry,
- and a list (or lists) of control points.
- </summary><remarks>
- <para/>
- Typically the control point geometry
- is a <see cref="T:NetTopologySuite.Geometries.LineString"/> or <see cref="T:NetTopologySuite.Geometries.MultiLineString"/>
- containing an element for each line or ring in the input geometry.
- The list of control points for each linear element must contain two
- vertices for each segment (and thus <code>2 * npts - 2</code>).
- </remarks>
- </member>
- <member name="M:NetTopologySuite.Shape.CubicBezierCurve.GetResult">
- <summary>
- Gets the computed Bezier curve geometry
- </summary>
- <returns>The curved geometry</returns>
- </member>
- <member name="M:NetTopologySuite.Shape.CubicBezierCurve.ControlPoints(NetTopologySuite.Geometries.Coordinate[],System.Boolean,System.Double,System.Double)">
- <summary>
- Creates control points for each vertex of curve.
- The control points are collinear with each vertex,
- thus providing C1-continuity.
- By default the control vectors are the same length,
- which provides C2-continuity(same curvature on each
- side of vertex.
- The alpha parameter controls the length of the control vectors.
- Alpha = 0 makes the vectors zero-length, and hence flattens the curves.
- Alpha = 1 makes the curve at right angles roughly circular.
- Alpha > 1 starts to distort the curve and may introduce self-intersections.
- <para/>
- The control point array contains a pair of coordinates for each input segment.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Shape.CubicBezierCurve.SetLineEndControlPoints(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Sets the end control points for a line.
- Produce a symmetric curve for the first and last segments
- by using mirrored control points for start and end vertex.
- </summary>
- <param name="coords">The coordinates</param>
- <param name="ctrl">The control points</param>
- </member>
- <member name="M:NetTopologySuite.Shape.CubicBezierCurve.AimedControlPoint(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Creates a control point aimed at the control point at the opposite end of the segment.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Shape.CubicBezierCurve.CubicBezier(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,System.Double[][],NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Calculates vertices along a cubic Bezier curve.
- </summary>
- <param name="p0">The start point</param>
- <param name="p1">The end point</param>
- <param name="ctrl1">The first control point</param>
- <param name="ctrl2">The second control point</param>
- <param name="param">A set of interpolation parameters</param>
- <param name="curve">An array to hold generated points.</param>
- </member>
- <member name="M:NetTopologySuite.Shape.CubicBezierCurve.ComputeIterpolationParameters(System.Int32)">
- <summary>
- Gets the interpolation parameters for a Bezier curve approximated by a
- given number of vertices.
- </summary>
- <param name="n">The number of vertices</param>
- <returns>An array of double[4] holding the parameter values</returns>
- </member>
- <member name="T:NetTopologySuite.Shape.Fractal.HilbertCode">
- <summary>
- Encodes points as the index along finite planar Hilbert curves.
- <para>
- The planar Hilbert Curve is a continuous space-filling curve.
- In the limit the Hilbert curve has infinitely many vertices and fills
- the space of the unit square.
- A sequence of finite approximations to the infinite Hilbert curve
- is defined by the level number.
- The finite Hilbert curve at level n Hₙ contains 2ⁿ⁺¹ points.
- Each finite Hilbert curve defines an ordering of the
- points in the 2-dimensional range square containing the curve.
- Curves fills the range square of side 2ˡᵉᵛᵉˡ.
- Curve points have ordinates in the range [0, 2ˡᵉᵛᵉˡ - 1].
- The index of a point along a Hilbert curve is called the Hilbert code.
- The code for a given point is specific to the level chosen.
- </para>
- <para>
- This implementation represents codes using 32-bit integers.
- This allows levels 0 to 16 to be handled.
- The class supports encoding points in the range of a given level curve
- and decoding the point for a given code value.
- </para>
- <para>
- The Hilbert order has the property that it tends to preserve locality.
- This means that codes which are near in value will have spatially proximate
- points. The converse is not always true - the delta between
- codes for nearby points is not always small. But the average delta
- is small enough that the Hilbert order is an effective way of linearizing space
- to support range queries.
- </para>
- </summary>
- <author>
- Martin Davis
- </author>
- <seealso cref="T:NetTopologySuite.Shape.Fractal.HilbertCurveBuilder"/>
- <seealso cref="T:NetTopologySuite.Shape.Fractal.MortonCode"/>
- </member>
- <member name="F:NetTopologySuite.Shape.Fractal.HilbertCode.MaxLevel">
- <summary>
- The maximum curve level that can be represented.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Shape.Fractal.HilbertCode.Size(System.Int32)">
- <summary>
- The number of points in the curve for the given level.
- The number of points is 2²ˡᵉᵛᵉˡ.
- </summary>
- <param name="level">The level of the curve</param>
- <returns>The number of points.</returns>
- </member>
- <member name="M:NetTopologySuite.Shape.Fractal.HilbertCode.MaxOrdinate(System.Int32)">
- <summary>
- The maximum ordinate value for points
- in the curve for the given level.
- The maximum ordinate is 2ˡᵉᵛᵉˡ - 1.
- </summary>
- <param name="level">The level of the curve.</param>
- <returns>The maximum ordinate value.</returns>
- </member>
- <member name="M:NetTopologySuite.Shape.Fractal.HilbertCode.Level(System.Int32)">
- <summary>
- The level of the finite Hilbert curve which contains at least
- the given number of points.
- </summary>
- <param name="numPoints">The number of points required.</param>
- <returns>The level of the curve.</returns>
- </member>
- <member name="M:NetTopologySuite.Shape.Fractal.HilbertCode.Encode(System.Int32,System.Int32,System.Int32)">
- <summary>
- Encodes a point (x,y)
- in the range of the the Hilbert curve at a given level
- as the index of the point along the curve.
- The index will lie in the range [0, 2ˡᵉᵛᵉˡ⁺¹].
- </summary>
- <param name="level">The level of the Hilbert curve.</param>
- <param name="x">The x ordinate of the point.</param>
- <param name="y">The y ordinate of the point.</param>
- <returns>The index of the point along the Hilbert curve.</returns>
- </member>
- <member name="M:NetTopologySuite.Shape.Fractal.HilbertCode.LevelClamp(System.Int32)">
- <summary>
- Clamps a level to the range valid for
- the index algorithm used.
- </summary>
- <param name="level">The level of a Hilbert curve.</param>
- <returns>A valid level.</returns>
- </member>
- <member name="M:NetTopologySuite.Shape.Fractal.HilbertCode.Decode(System.Int32,System.Int32)">
- <summary>
- Computes the point on a Hilbert curve
- of given level for a given code index.
- The point ordinates will lie in the range [0, 2ˡᵉᵛᵉˡ - 1].
- </summary>
- <param name="level">The Hilbert curve level.</param>
- <param name="index">The index of the point on the curve.</param>
- <returns>The point on the Hilbert curve.</returns>
- </member>
- <member name="T:NetTopologySuite.Shape.Fractal.HilbertCurveBuilder">
- <summary>
- Generates a <see cref="T:NetTopologySuite.Geometries.LineString"/> representing the Hilbert Curve
- at a given level.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Shape.Fractal.HilbertCurveBuilder.#ctor(NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.Shape.Fractal.HilbertCurveBuilder"/> class
- using the provided <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>.
- </summary>
- <param name="geomFactory">The geometry factory to use.</param>
- </member>
- <member name="P:NetTopologySuite.Shape.Fractal.HilbertCurveBuilder.Level">
- <summary>
- Gets or sets the level of curve to generate.
- The level must be in the range [0 - 16].
- This determines the
- number of points in the generated curve.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Shape.Fractal.HilbertCurveBuilder.GetGeometry">
- <inheritdoc />
- </member>
- <member name="F:NetTopologySuite.Shape.Fractal.KochSnowflakeBuilder.HeightFactor">
- <summary>
- The height of an equilateral triangle of side one
- </summary>
- </member>
- <member name="T:NetTopologySuite.Shape.Fractal.MortonCode">
- <summary>
- Encodes points as the index along the planar Morton (Z-order) curve.
- <para>
- The planar Morton (Z-order) curve is a continuous space-filling curve.
- The Morton curve defines an ordering of the
- points in the positive quadrant of the plane.
- The index of a point along the Morton curve is called the Morton code.
- </para>
- <para>
- A sequence of subsets of the Morton curve can be defined by a level number.
- Each level subset occupies a square range.
- The curve at level n Mₙ contains 2ⁿ⁺¹ points.
- It fills the range square of side 2ˡᵉᵛᵉˡ.
- Curve points have ordinates in the range [0, 2ˡᵉᵛᵉˡ - 1].
- The code for a given point is identical at all levels.
- The level simply determines the number of points in the curve subset
- and the size of the range square.
- </para>
- <para>
- This implementation represents codes using 32-bit integers.
- This allows levels 0 to 16 to be handled.
- The class supports encoding points
- and decoding the point for a given code value.
- </para>
- <para>
- The Morton order has the property that it tends to preserve locality.
- This means that codes which are near in value will have spatially proximate
- points. The converse is not always true - the delta between
- codes for nearby points is not always small. But the average delta
- is small enough that the Morton order is an effective way of linearizing space
- to support range queries.
- </para>
- </summary>
- <author>
- Martin Davis
- </author>
- <seealso cref="T:NetTopologySuite.Shape.Fractal.MortonCurveBuilder"/>
- <seealso cref="T:NetTopologySuite.Shape.Fractal.HilbertCode"/>
- </member>
- <member name="F:NetTopologySuite.Shape.Fractal.MortonCode.MaxLevel">
- <summary>
- The maximum curve level that can be represented.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Shape.Fractal.MortonCode.Size(System.Int32)">
- <summary>
- The number of points in the curve for the given level.
- The number of points is 2²ˡᵉᵛᵉˡ.
- </summary>
- <param name="level">The level of the curve</param>
- <returns>The number of points.</returns>
- </member>
- <member name="M:NetTopologySuite.Shape.Fractal.MortonCode.MaxOrdinate(System.Int32)">
- <summary>
- The maximum ordinate value for points
- in the curve for the given level.
- The maximum ordinate is 2ˡᵉᵛᵉˡ - 1.
- </summary>
- <param name="level">The level of the curve.</param>
- <returns>The maximum ordinate value.</returns>
- </member>
- <member name="M:NetTopologySuite.Shape.Fractal.MortonCode.Level(System.Int32)">
- <summary>
- The level of the finite Morton curve which contains at least
- the given number of points.
- </summary>
- <param name="numPoints">The number of points required.</param>
- <returns>The level of the curve.</returns>
- </member>
- <member name="M:NetTopologySuite.Shape.Fractal.MortonCode.Encode(System.Int32,System.Int32)">
- <summary>
- Computes the index of the point (x,y)
- in the Morton curve ordering.
- </summary>
- <param name="x">The x ordinate of the point.</param>
- <param name="y">The y ordinate of the point.</param>
- <returns>The index of the point along the Morton curve.</returns>
- </member>
- <member name="M:NetTopologySuite.Shape.Fractal.MortonCode.Decode(System.Int32)">
- <summary>
- Computes the point on the Morton curve
- for a given index.
- </summary>
- <param name="index">The index of the point on the curve.</param>
- <returns>The point on the curve.</returns>
- </member>
- <member name="T:NetTopologySuite.Shape.Fractal.MortonCurveBuilder">
- <summary>
- Generates a <see cref="T:NetTopologySuite.Geometries.LineString"/> representing the Morton Curve
- at a given level.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Shape.Fractal.MortonCurveBuilder.#ctor(NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.Shape.Fractal.MortonCurveBuilder"/> class
- using the provided <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>.
- </summary>
- <param name="geomFactory">The geometry factory to use.</param>
- </member>
- <member name="P:NetTopologySuite.Shape.Fractal.MortonCurveBuilder.Level">
- <summary>
- Gets or sets the level of curve to generate.
- The level must be in the range [0 - 16].
- </summary>
- </member>
- <member name="M:NetTopologySuite.Shape.Fractal.MortonCurveBuilder.GetGeometry">
- <inheritdoc />
- </member>
- <member name="P:NetTopologySuite.Shape.GeometricShapeBuilder.NumPoints">
- <summary>
- Gets or sets the total number of points in the created <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
- The created geometry will have no more than this number of points,
- unless more are needed to create a valid geometry.
- </summary>
- </member>
- <member name="T:NetTopologySuite.Shape.Random.RandomPointsBuilder">
- <summary>
- Creates random point sets contained in a
- region defined by either a rectangular or a polygonal extent.
- </summary>
- <author>mbdavis</author>
- </member>
- <member name="M:NetTopologySuite.Shape.Random.RandomPointsBuilder.#ctor">
- <summary>
- Create a shape factory which will create shapes using the default
- <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Shape.Random.RandomPointsBuilder.#ctor(NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
- Create a shape factory which will create shapes using the given
- <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>
- </summary>
- <param name="geomFact">The factory to use</param>
- </member>
- <member name="M:NetTopologySuite.Shape.Random.RandomPointsBuilder.SetExtent(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Sets a polygonal mask.
- </summary>
- <exception cref="T:System.ArgumentException">if the mask is not polygonal</exception>
- </member>
- <member name="T:NetTopologySuite.Shape.Random.RandomPointsInGridBuilder">
- <summary>
- Creates random point sets where the points
- are constrained to lie in the cells of a grid.
- </summary>
- <author>mbdavis</author>
- </member>
- <member name="M:NetTopologySuite.Shape.Random.RandomPointsInGridBuilder.#ctor">
- <summary>
- Create a builder which will create shapes using the default
- <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Shape.Random.RandomPointsInGridBuilder.#ctor(NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
- Create a builder which will create shapes using the given
- <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>.
- </summary>
- <param name="geomFact">The factory to use</param>
- </member>
- <member name="P:NetTopologySuite.Shape.Random.RandomPointsInGridBuilder.ConstrainedToCircle">
- <summary>
- Gets or sets whether generated points are constrained to lie
- within a circle contained within each grid cell.
- This provides greater separation between points
- in adjacent cells.
- <para/>
- The default is to not be constrained to a circle.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Shape.Random.RandomPointsInGridBuilder.GutterFraction">
- <summary>
- Gets or sets the fraction of the grid cell side which will be treated as
- a gutter, in which no points will be created.
- <para/>
- The provided value is clamped to the range [0.0, 1.0].
- </summary>
- </member>
- <member name="M:NetTopologySuite.Shape.Random.RandomPointsInGridBuilder.GetGeometry">
- <summary>
- Gets the <see cref="T:NetTopologySuite.Geometries.MultiPoint"/> containing the generated point
- </summary>
- <returns>A MultiPoint</returns>
- </member>
- <member name="T:NetTopologySuite.Simplify.ComponentJumpChecker">
- <summary>
- Checks if simplifying (flattening) line sections or segments
- would cause them to "jump" over other components in the geometry.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Simplify.ComponentJumpChecker.HasJump(NetTopologySuite.Simplify.TaggedLineString,System.Int32,System.Int32,NetTopologySuite.Geometries.LineSegment)">
- <summary>
- Checks if a line section jumps a component if flattened.
- </summary>
- <remarks>Assumes <paramref name="start"/> <= <paramref name="end"/></remarks>
- <param name="line">The line containing the section being flattened</param>
- <param name="start">Start index of the section</param>
- <param name="end">End index of the section</param>
- <param name="seg">The flattening segment</param>
- <returns><c>true</c> if the flattened section jumps a component</returns>
- </member>
- <member name="M:NetTopologySuite.Simplify.ComponentJumpChecker.HasJump(NetTopologySuite.Simplify.TaggedLineString,NetTopologySuite.Geometries.LineSegment,NetTopologySuite.Geometries.LineSegment,NetTopologySuite.Geometries.LineSegment)">
- <summary>
- Checks if two consecutive segments jumps a component if flattened.
- The segments are assumed to be consecutive.
- (so the seg1.P1 = seg2.P0).
- The flattening segment must be the segment between seg1.P0 and seg2.P1.
- </summary>
- <param name="line">The line containing the section being flattened</param>
- <param name="seg1">The first replaced segment</param>
- <param name="seg2">The next replaced segment</param>
- <param name="seg">The flattening segment</param>
- <returns><c>true</c> if the flattened segment jumps a component</returns>
- </member>
- <member name="T:NetTopologySuite.Simplify.DouglasPeuckerLineSimplifier">
- <summary>
- Simplifies a line (sequence of points) using
- the standard Douglas-Peucker algorithm.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Simplify.DouglasPeuckerLineSimplifier.Simplify(NetTopologySuite.Geometries.Coordinate[],System.Double)">
- <summary>
- Simplifies a series of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s. The series' endpoints are preserved.
- </summary>
- <param name="pts">The series of <c>Coordinate</c>s to simplify</param>
- <param name="distanceTolerance">A simplification tolerance distance</param>
- <returns>The simplified series of <c>Coordinate</c>s</returns>
- </member>
- <member name="M:NetTopologySuite.Simplify.DouglasPeuckerLineSimplifier.Simplify(NetTopologySuite.Geometries.Coordinate[],System.Double,System.Boolean)">
- <summary>
- Simplifies a series of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s.
- </summary>
- <param name="pts">The series of <c>Coordinate</c>s to simplify</param>
- <param name="distanceTolerance">A simplification tolerance distance</param>
- <param name="isPreserveEndpoint">A flag indicating if the endpoint should be preserved</param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Simplify.DouglasPeuckerLineSimplifier.#ctor(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Creates an instance of this class using the provided <paramref name="pts"/> array of coordinates
- </summary>
- <param name="pts">An array of coordinates</param>
- </member>
- <member name="P:NetTopologySuite.Simplify.DouglasPeuckerLineSimplifier.DistanceTolerance">
- <summary>
- The distance tolerance for the simplification.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Simplify.DouglasPeuckerLineSimplifier.PreserveEndpoint">
- <summary>
- Gets a flag indicating if the endpoint should be preserved
- </summary>
- </member>
- <member name="M:NetTopologySuite.Simplify.DouglasPeuckerLineSimplifier.Simplify">
- <summary>
-
- </summary>
- <returns></returns>
- </member>
- <member name="T:NetTopologySuite.Simplify.DouglasPeuckerSimplifier">
- <summary>
- Simplifies a <see cref="T:NetTopologySuite.Geometries.Geometry"/> using the Douglas-Peucker algorithm.
- </summary>
- <remarks>
- Ensures that any polygonal geometries returned are valid.
- Simple lines are not guaranteed to remain simple after simplification.
- All geometry types are handled.
- Empty and point geometries are returned unchanged.
- Empty geometry components are deleted.
- <para/>
- Note that in general D-P does not preserve topology -
- e.g. polygons can be split, collapse to lines or disappear
- holes can be created or disappear,
- and lines can cross.
- To simplify point while preserving topology use TopologySafeSimplifier.
- (However, using D-P is significantly faster).
- <para/>
- KNOWN BUGS:
- In some cases the approach used to clean invalid simplified polygons
- can distort the output geometry severely.
- </remarks>
- <seealso cref="T:NetTopologySuite.Simplify.TopologyPreservingSimplifier"/>
- </member>
- <member name="M:NetTopologySuite.Simplify.DouglasPeuckerSimplifier.Simplify(NetTopologySuite.Geometries.Geometry,System.Double)">
- <summary>
- Simplifies a geometry using a given tolerance.
- </summary>
- <param name="geom">The geometry to simplify.</param>
- <param name="distanceTolerance">The tolerance to use.</param>
- <returns>A simplified version of the geometry.</returns>
- </member>
- <member name="M:NetTopologySuite.Simplify.DouglasPeuckerSimplifier.#ctor(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Creates a simplifier for a given geometry.
- </summary>
- <param name="inputGeom">The geometry to simplify.</param>
- </member>
- <member name="P:NetTopologySuite.Simplify.DouglasPeuckerSimplifier.DistanceTolerance">
- <summary>
- The distance tolerance for the simplification.
- </summary>
- <remarks>
- All vertices in the simplified geometry will be within this
- distance of the original geometry.
- The tolerance value must be non-negative.
- </remarks>
- </member>
- <member name="P:NetTopologySuite.Simplify.DouglasPeuckerSimplifier.EnsureValidTopology">
- <summary>
- Controls whether simplified polygons will be "fixed"
- to have valid topology.
- </summary>
- <remarks>
- The caller may choose to disable this because:
- <list type="bullet">
- <item><description>valid topology is not required</description></item>
- <item><description>fixing topology is a relative expensive operation</description></item>
- <item><description>in some pathological cases the topology fixing operation may either fail or run for too long</description></item>
- </list>
- The default is to fix polygon topology.
- </remarks>
- </member>
- <member name="M:NetTopologySuite.Simplify.DouglasPeuckerSimplifier.GetResultGeometry">
- <summary>
- Gets the simplified geometry.
- </summary>
- <returns>The simplified geometry.</returns>
- </member>
- <member name="T:NetTopologySuite.Simplify.DouglasPeuckerSimplifier.DPTransformer">
- <summary>
- The transformer class
- </summary>
- </member>
- <member name="M:NetTopologySuite.Simplify.DouglasPeuckerSimplifier.DPTransformer.TransformCoordinates(NetTopologySuite.Geometries.CoordinateSequence,NetTopologySuite.Geometries.Geometry)">
- <inheritdoc cref="M:NetTopologySuite.Geometries.Utilities.GeometryTransformer.TransformCoordinates(NetTopologySuite.Geometries.CoordinateSequence,NetTopologySuite.Geometries.Geometry)"/>
- </member>
- <member name="M:NetTopologySuite.Simplify.DouglasPeuckerSimplifier.DPTransformer.TransformPolygon(NetTopologySuite.Geometries.Polygon,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Simplifies a polygon, fixing it if required.
- </summary>
- <param name="geom">The geometry to transform</param>
- <param name="parent">The parent geometry</param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Simplify.DouglasPeuckerSimplifier.DPTransformer.TransformLinearRing(NetTopologySuite.Geometries.LinearRing,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Simplifies a LinearRing. If the simplification results in a degenerate ring, remove the component.
- </summary>
- <returns>null if the simplification results in a degenerate ring</returns>
- </member>
- <member name="M:NetTopologySuite.Simplify.DouglasPeuckerSimplifier.DPTransformer.TransformMultiPolygon(NetTopologySuite.Geometries.MultiPolygon,NetTopologySuite.Geometries.Geometry)">
- <inheritdoc cref="M:NetTopologySuite.Geometries.Utilities.GeometryTransformer.TransformMultiPolygon(NetTopologySuite.Geometries.MultiPolygon,NetTopologySuite.Geometries.Geometry)"/>
- </member>
- <member name="M:NetTopologySuite.Simplify.DouglasPeuckerSimplifier.DPTransformer.CreateValidArea(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Creates a valid area point from one that possibly has
- bad topology (i.e. self-intersections).
- Since buffer can handle invalid topology, but always returns
- valid point, constructing a 0-width buffer "corrects" the
- topology.
- Note this only works for area geometries, since buffer always returns
- areas. This also may return empty geometries, if the input
- has no actual area.<br/>
- If the input is empty or is not polygonal,
- this ensures that POLYGON EMPTY is returned.
- </summary>
- <param name="rawAreaGeom">An area point possibly containing self-intersections.</param>
- <returns>A valid area point.</returns>
- </member>
- <member name="T:NetTopologySuite.Simplify.LineSegmentIndex">
- <summary>
- An index of LineSegments.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Simplify.LineSegmentIndex.Add(NetTopologySuite.Simplify.TaggedLineString)">
- <summary>
-
- </summary>
- <param name="line"></param>
- </member>
- <member name="M:NetTopologySuite.Simplify.LineSegmentIndex.Add(NetTopologySuite.Geometries.LineSegment)">
- <summary>
-
- </summary>
- <param name="seg"></param>
- </member>
- <member name="M:NetTopologySuite.Simplify.LineSegmentIndex.Remove(NetTopologySuite.Geometries.LineSegment)">
- <summary>
-
- </summary>
- <param name="seg"></param>
- </member>
- <member name="M:NetTopologySuite.Simplify.LineSegmentIndex.Query(NetTopologySuite.Geometries.LineSegment)">
- <summary>
-
- </summary>
- <param name="querySeg"></param>
- <returns></returns>
- </member>
- <member name="T:NetTopologySuite.Simplify.LineSegmentVisitor">
- <summary>
- ItemVisitor subclass to reduce volume of query results.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Simplify.LineSegmentVisitor.#ctor(NetTopologySuite.Geometries.LineSegment)">
- <summary>
-
- </summary>
- <param name="querySeg"></param>
- </member>
- <member name="M:NetTopologySuite.Simplify.LineSegmentVisitor.VisitItem(NetTopologySuite.Geometries.LineSegment)">
- <summary>
-
- </summary>
- <param name="item"></param>
- </member>
- <member name="P:NetTopologySuite.Simplify.LineSegmentVisitor.Items">
- <summary>
-
- </summary>
- </member>
- <member name="T:NetTopologySuite.Simplify.OldVWLineSimplifier">
- <summary>
- Simplifies a linestring (sequence of points) using the
- Visvalingam-Whyatt algorithm.
- The Visvalingam-Whyatt algorithm simplifies geometry
- by removing vertices while trying to minimize the area changed.
- </summary>
- <version>1.7</version>
- </member>
- <member name="T:NetTopologySuite.Simplify.PolygonHullSimplifier">
- <summary>
- Computes topology-preserving simplified hulls of polygonal geometry.
- Both outer and inner hulls can be computed.
- Outer hulls contain the input geometry and are larger in area.
- Inner hulls are contained by the input geometry and are smaller in area.
- In both the hull vertices are a subset of the input vertices.
- The hull construction attempts to minimize the area difference
- with the input geometry.
- <para/>
- Hulls are generally concave if the input is.
- Computed hulls are topology-preserving:
- they do not contain any self-intersections or overlaps,
- so the result polygonal geometry is valid.
- <para/>
- Polygons with holes and MultiPolygons are supported.
- The result has the same geometric type and structure as the input.
- <para/>
- The number of vertices in the computed hull is determined by a target parameter.
- Two parameters are supported:
- <list type="bullet">
- <item><term>Vertex Number fraction</term><description>the fraction of the input vertices retained in the result.
- Value 1 produces the original geometry.
- Smaller values produce less concave results.
- For outer hulls, value 0 produces the convex hull (with triangles for any holes).
- For inner hulls, value 0 produces a triangle (if no holes are present).</description></item>
- <item><term>Area Delta ratio</term><description>
- the ratio of the change in area to the input area.Value 0 produces the original geometry.
- Larger values produce less concave results.</description></item>
- </list>
- The algorithm ensures that the result does not cause the target parameter
- to be exceeded. This allows computing outer or inner hulls
- with a small area delta ratio as an effective way of removing
- narrow gores and spikes.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Simplify.PolygonHullSimplifier.Hull(NetTopologySuite.Geometries.Geometry,System.Boolean,System.Double)">
- <summary>
- Computes topology-preserving simplified hull of a polygonal geometry,
- with hull shape determined by a target parameter
- specifying the fraction of the input vertices retained in the result.
- Larger values compute less concave results.
- A value of 1 produces the convex hull; a value of 0 produces the original geometry.
- Either outer or inner hulls can be computed.
- </summary>
- <param name="geom">The polygonal geometry to process</param>
- <param name="isOuter">A flag indicating whether to compute an outer or inner hull</param>
- <param name="vertexNumFraction">The target fraction of number of input vertices in result</param>
- <returns>The hull geometry</returns>
- </member>
- <member name="M:NetTopologySuite.Simplify.PolygonHullSimplifier.HullByAreaDelta(NetTopologySuite.Geometries.Geometry,System.Boolean,System.Double)">
- <summary>Computes a boundary-respecting hull of a polygonal geometry,
- with hull shape determined by a target parameter
- specifying the ratio of maximum difference in area to original area.
- Larger values compute less concave results.
- A value of 0 produces the original geometry.
- Either outer or inner hulls can be computed.
- </summary>
- <param name="geom">The polygonal geometry to process</param>
- <param name="isOuter">A flag indicating whether to compute an outer or inner hull</param>
- <param name="areaDeltaRatio">The target ratio of area difference to original area</param>
- <returns>The hull geometry</returns>
- </member>
- <member name="M:NetTopologySuite.Simplify.PolygonHullSimplifier.#ctor(NetTopologySuite.Geometries.Geometry,System.Boolean)">
- <summary>
- Creates a new instance
- to compute a simplified hull of a polygonal geometry.
- An outer or inner hull is computed
- depending on the value of <paramref name="isOuter"/>.
- </summary>
- <param name="inputGeom">The polygonal geometry to process</param>
- <param name="isOuter">Indicates whether to compute an outer or inner hull</param>
- </member>
- <member name="P:NetTopologySuite.Simplify.PolygonHullSimplifier.VertexNumFraction">
- <summary>
- Gets or sets a value indicating the target fraction of input vertices
- which are retained in the result.
- The value should be in the range [0,1].
- </summary>
- </member>
- <member name="P:NetTopologySuite.Simplify.PolygonHullSimplifier.AreaDeltaRatio">
- <summary>
- Gets or sets a value indicating the target maximum ratio of the change in area of the result to the input area.
- The value must be 0 or greater.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Simplify.PolygonHullSimplifier.GetResult">
- <summary>
- Gets the result polygonal hull geometry.
- </summary>
- <returns>The polygonal geometry for the hull</returns>
- </member>
- <member name="M:NetTopologySuite.Simplify.PolygonHullSimplifier.ComputeMultiPolygonAll(NetTopologySuite.Geometries.MultiPolygon)">
- <summary>
- Computes hulls for MultiPolygon elements for
- the cases where hulls might overlap.
- </summary>
- <param name="multiPoly">The MultiPolygon to process</param>
- <returns>The hull geometry</returns>
- </member>
- <member name="M:NetTopologySuite.Simplify.PolygonHullSimplifier.InitPolygon(NetTopologySuite.Geometries.Polygon,NetTopologySuite.Simplify.RingHullIndex)">
- <summary>
- Create all ring hulls for the rings of a polygon,
- so that all are in the hull index if required.
- </summary>
- <param name="poly" >The polygon being processed</param>
- <param name="hullIndex">The hull index if present, or <c>null</c></param>
- <returns>A list of ring hulls</returns>
- </member>
- <member name="T:NetTopologySuite.Simplify.RingHull">
- <summary>
- Computes the outer or inner hull of a ring
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Simplify.RingHull.#ctor(NetTopologySuite.Geometries.LinearRing,System.Boolean)">
- <summary>
- Creates a new instance.
- </summary>
- <param name="ring">The ring vertices to process</param>
- <param name="isOuter">A flag whether the hull is outer or inner</param>
- </member>
- <member name="M:NetTopologySuite.Simplify.RingHull.RemoveCorner(NetTopologySuite.Simplify.RingHull.Corner,NetTopologySuite.Utilities.PriorityQueue{NetTopologySuite.Simplify.RingHull.Corner})">
- <summary>
- Removes a corner by removing the apex vertex from the ring.
- Two new corners are created with apexes
- at the other vertices of the corner
- (if they are non-convex and thus removable).
- </summary>
- <param name="corner">The corner to remove</param>
- <param name="cornerQueue">The corner queue</param>
- </member>
- <member name="M:NetTopologySuite.Simplify.RingHull.HasIntersectingVertex(NetTopologySuite.Simplify.RingHull.Corner,NetTopologySuite.Geometries.Envelope,NetTopologySuite.Simplify.RingHull)">
- Tests if any vertices in a hull intersect the corner triangle.
- Uses the vertex spatial index for efficiency.
-
- @param corner the corner vertices
- @param cornerEnv the envelope of the corner
- @param hull the hull to test
- @return true if there is an intersecting vertex
- </member>
- <member name="M:NetTopologySuite.Simplify.RingHull.Corner.CompareTo(NetTopologySuite.Simplify.RingHull.Corner)">
- Orders corners by increasing area
- </member>
- <member name="T:NetTopologySuite.Simplify.TaggedLineSegment">
- <summary>
- A LineSegment which is tagged with its location in a <c>Geometry</c>.
- Used to index the segments in a point and recover the segment locations
- from the index.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Simplify.TaggedLineSegment.#ctor(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Geometry,System.Int32)">
- <summary>
-
- </summary>
- <param name="p0"></param>
- <param name="p1"></param>
- <param name="parent"></param>
- <param name="index"></param>
- </member>
- <member name="M:NetTopologySuite.Simplify.TaggedLineSegment.#ctor(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
-
- </summary>
- <param name="p0"></param>
- <param name="p1"></param>
- </member>
- <member name="P:NetTopologySuite.Simplify.TaggedLineSegment.Parent">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.Simplify.TaggedLineSegment.Index">
- <summary>
-
- </summary>
- </member>
- <member name="T:NetTopologySuite.Simplify.TaggedLinesSimplifier">
- <summary>
- Simplifies a collection of <c>TaggedLineString</c>s, preserving topology
- (in the sense that no new intersections are introduced).
- This class is essentially just a container for the common
- indexes used by <see cref="T:NetTopologySuite.Simplify.TaggedLineStringSimplifier"/>.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Simplify.TaggedLinesSimplifier.DistanceTolerance">
- <summary>
- Gets or sets the distance tolerance for the simplification.<br/>
- Points closer than this tolerance to a simplified segment may
- be removed.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Simplify.TaggedLinesSimplifier.Simplify(System.Collections.Generic.ICollection{NetTopologySuite.Simplify.TaggedLineString})">
- <summary>
- Simplifies a collection of <c>TaggedLineString</c>s.
- </summary>
- <param name="taggedLines">The collection of lines to simplify.</param>
- </member>
- <member name="T:NetTopologySuite.Simplify.TaggedLineString">
- <summary>
- Represents a <see cref="T:NetTopologySuite.Geometries.LineString"/> which can be modified to a simplified shape.
- This class provides an attribute which specifies the minimum allowable length
- for the modified result.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Simplify.TaggedLineString.#ctor(NetTopologySuite.Geometries.LineString)">
- <summary>
- Creates an instance of this class using the provided <paramref name="parentLine"/>.
- The <see cref="P:NetTopologySuite.Simplify.TaggedLineString.MinimumSize"/> is set to <c>2</c> and <see cref="!:PreserveEndpoint"/> is <c>true</c>.
- </summary>
- <param name="parentLine">The <c>LineString</c> that is to be simplified.</param>
- </member>
- <member name="M:NetTopologySuite.Simplify.TaggedLineString.#ctor(NetTopologySuite.Geometries.LineString,System.Int32)">
- <summary>
- Creates an instance of this class using the provided <paramref name="parentLine"/> and
- <paramref name="minimumSize"/> values. The value for <see cref="P:NetTopologySuite.Simplify.TaggedLineString.IsRing"/> is <c>LineString.IsRing</c>
- </summary>
- <param name="parentLine">The <c>LineString</c> that is to be simplified.</param>
- <param name="minimumSize">The number of vertices to must be kept.</param>
- </member>
- <member name="M:NetTopologySuite.Simplify.TaggedLineString.#ctor(NetTopologySuite.Geometries.LineString,System.Int32,System.Boolean)">
- <summary>
- Creates an instance of this class using the provided <paramref name="parentLine"/> and
- <paramref name="minimumSize"/> values.
- </summary>
- <param name="parentLine">The <c>LineString</c> that is to be simplified.</param>
- <param name="minimumSize">The number of vertices to must be kept.</param>
- <param name="isRing">A flag indicating if the <paramref name="parentLine"/> forms a ring</param>
- </member>
- <member name="P:NetTopologySuite.Simplify.TaggedLineString.IsRing">
- <summary>
- Gets a value indicating if the endpoints are to be preserved.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Simplify.TaggedLineString.MinimumSize">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.Simplify.TaggedLineString.Parent">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.Simplify.TaggedLineString.ParentCoordinates">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.Simplify.TaggedLineString.ResultCoordinates">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Simplify.TaggedLineString.GetCoordinate(System.Int32)">
- <summary>
- Gets the <paramref name="i"/>'th <c>Coordinate</c> of <see cref="P:NetTopologySuite.Simplify.TaggedLineString.Parent"/> line.
- </summary>
- <param name="i">The index of the coordinate to get</param>
- <returns>The <paramref name="i"/>'th <c>Coordinate</c> of <see cref="P:NetTopologySuite.Simplify.TaggedLineString.Parent"/> line.</returns>
- </member>
- <member name="P:NetTopologySuite.Simplify.TaggedLineString.Count">
- <summary>
- Gets a value indicating the number of points of the <see cref="P:NetTopologySuite.Simplify.TaggedLineString.Parent"/> line.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Simplify.TaggedLineString.GetComponentPoint">
- <summary>
- Gets a <c>Coordinate</c> of the <see cref="P:NetTopologySuite.Simplify.TaggedLineString.Parent"/> line.
- </summary>
- <returns>A <c>Coordinate</c> of the <see cref="P:NetTopologySuite.Simplify.TaggedLineString.Parent"/> line.</returns>
- </member>
- <member name="P:NetTopologySuite.Simplify.TaggedLineString.ResultSize">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Simplify.TaggedLineString.GetSegment(System.Int32)">
- <summary>
-
- </summary>
- <param name="i"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Simplify.TaggedLineString.GetResultSegment(System.Int32)">
- <summary>
- Gets a segment of the result list.
- Negative indexes can be used to retrieve from the end of the list.
- </summary>
- <param name="i">The segment index to retrieve</param>
- <returns>The result segment</returns>
- </member>
- <member name="M:NetTopologySuite.Simplify.TaggedLineString.Init">
- <summary>
-
- </summary>
- </member>
- <member name="P:NetTopologySuite.Simplify.TaggedLineString.Segments">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Simplify.TaggedLineString.AddToResult(NetTopologySuite.Geometries.LineSegment)">
- <summary>
- Add a simplified segment to the result.
- This assumes simplified segments are computed in the order
- they occur in the line.
- </summary>
- <param name="seg">The result segment to add.</param>
- </member>
- <member name="M:NetTopologySuite.Simplify.TaggedLineString.AsLineString">
- <summary>
-
- </summary>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Simplify.TaggedLineString.AsLinearRing">
- <summary>
-
- </summary>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Simplify.TaggedLineString.ExtractCoordinates(System.Collections.Generic.IList{NetTopologySuite.Geometries.LineSegment})">
- <summary>
-
- </summary>
- <param name="segs"></param>
- <returns></returns>
- </member>
- <member name="T:NetTopologySuite.Simplify.TaggedLineStringSimplifier">
- <summary>
- Simplifies a TaggedLineString, preserving topology
- (in the sense that no new intersections are introduced).
- Uses the recursive Douglas-Peucker algorithm.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Simplify.TaggedLineStringSimplifier.DistanceTolerance">
- <summary>
- Sets the distance tolerance for the simplification.
- All vertices in the simplified geometry will be within this
- distance of the original geometry.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Simplify.TaggedLineStringSimplifier.Simplify(NetTopologySuite.Simplify.TaggedLineString)">
- <summary>
- Simplifies the given <see cref="T:NetTopologySuite.Simplify.TaggedLineString"/>
- using the distance tolerance specified.
- </summary>
- <param name="line">The linestring to simplify.</param>
- </member>
- <member name="M:NetTopologySuite.Simplify.TaggedLineStringSimplifier.Simplify(NetTopologySuite.Simplify.TaggedLineString,System.Double)">
- <summary>
- Simplifies the given <see cref="T:NetTopologySuite.Simplify.TaggedLineString"/>
- using the distance tolerance specified.
- </summary>
- <param name="line">The linestring to simplify.</param>
- <param name="distanceTolerance">The simplification distance tolerance</param>
- </member>
- <member name="M:NetTopologySuite.Simplify.TaggedLineStringSimplifier.SimplifyRingEndpoint(System.Double)">
- <summary>
- Simplifies the result segments on either side of a ring endpoint
- (which was not processed by the initial simplification).
- This ensures that simplification removes flat(collinear) endpoints.
- </summary>
- <param name="distanceTolerance">The simplification distance tolerance</param>
- </member>
- <member name="M:NetTopologySuite.Simplify.TaggedLineStringSimplifier.Flatten(System.Int32,System.Int32)">
- <summary>
- Flattens a section of the line between
- indexes <paramref name="start"/> and <paramref name="end"/>,
- replacing them with a line between the endpoints.
- The input and output indexes are updated
- to reflect this.
- </summary>
- <param name="start">The start index of the flattened section.</param>
- <param name="end">The end index of the flattened section.</param>
- <returns>The new segment created.</returns>
- </member>
- <member name="M:NetTopologySuite.Simplify.TaggedLineStringSimplifier.IsTopologyValid(NetTopologySuite.Simplify.TaggedLineString,System.Int32,System.Int32,NetTopologySuite.Geometries.LineSegment)">
- <summary>
- Tests if line topology remains valid after flattening a section of the line.
- The flattened section is being replaced by the flattening segment,
- so there is no need to test it
- (and it may well intersect the segment).
- </summary>
- <returns><c>true</c> if the flattening leaves valid topology</returns>
- </member>
- <member name="M:NetTopologySuite.Simplify.TaggedLineStringSimplifier.IsInLineSection(NetTopologySuite.Simplify.TaggedLineString,System.Int32,System.Int32,NetTopologySuite.Simplify.TaggedLineSegment)">
- <summary>
- Tests whether a segment is in a section of a TaggedLineString.
- Sections may wrap around the endpoint of the line,
- to support ring endpoint simplification.
- This is indicated by excludedStart > excludedEnd
- </summary>
- <param name="line">The TaggedLineString containing the section segments</param>
- <param name="excludeStart">The index of the first segment in the excluded section </param>
- <param name="excludeEnd">The index of the last segment in the excluded section</param>
- <param name="seg">The segment to test</param>
- <returns><c>true</c> if the test segment intersects some segment in the line not in the excluded section</returns>
- </member>
- <member name="M:NetTopologySuite.Simplify.TaggedLineStringSimplifier.Remove(NetTopologySuite.Simplify.TaggedLineString,System.Int32,System.Int32)">
- <summary>
- Remove the segs in the section of the line.
- </summary>
- <param name="line"></param>
- <param name="start"></param>
- <param name="end"></param>
- </member>
- <member name="T:NetTopologySuite.Simplify.TopologyPreservingSimplifier">
- <summary>
- Simplifies a point and ensures that
- the result is a valid point having the
- same dimension and number of components as the input,
- and with the components having the same topological relationship.
- <para/>
- If the input is a polygonal geometry
- (<see cref="T:NetTopologySuite.Geometries.Polygon"/> or <see cref="T:NetTopologySuite.Geometries.MultiPolygon"/>):
- <list type="bullet">
- <item><description>The result has the same number of shells and holes as the input,
- with the same topological structure</description></item>
- <item><description>The result rings touch at no more than the number of touching points in the input
- (although they may touch at fewer points).
- The key implication of this statement is that if the
- input is topologically valid, so is the simplified output.</description></item>
- </list>
- For linear geometries, if the input does not contain
- any intersecting line segments, this property
- will be preserved in the output.
- <para/>
- <para>
- For polygonal geometries and LinearRings the endpoint will ring endpoint will be simplified.
- For LineStrings the endpoints will be unchanged.
- </para>
- For all geometry types, the result will contain
- enough vertices to ensure validity. For polygons
- and closed linear geometries, the result will have at
- least 4 vertices; for open LineStrings the result
- will have at least 2 vertices.
- <para/>
- All geometry types are handled.
- Empty and point geometries are returned unchanged.
- Empty geometry components are deleted.
- <para/>
- The simplification uses a maximum-distance difference algorithm
- similar to the Douglas-Peucker algorithm.
- </summary>
- <seealso cref="T:NetTopologySuite.Simplify.DouglasPeuckerSimplifier"/>
- </member>
- <member name="M:NetTopologySuite.Simplify.TopologyPreservingSimplifier.Simplify(NetTopologySuite.Geometries.Geometry,System.Double)">
- <summary>
-
- </summary>
- <param name="geom"></param>
- <param name="distanceTolerance"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Simplify.TopologyPreservingSimplifier.#ctor(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Creates an instance of this class for the provided <paramref name="inputGeom"/> geometry
- </summary>
- <param name="inputGeom">The geometry to simplify</param>
- </member>
- <member name="P:NetTopologySuite.Simplify.TopologyPreservingSimplifier.DistanceTolerance">
- <summary>
- Gets or sets the distance tolerance for the simplification.<br/>
- Points closer than this tolerance to a simplified segment may
- be removed.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Simplify.TopologyPreservingSimplifier.GetResultGeometry">
- <summary>
-
- </summary>
- <returns></returns>
- </member>
- <member name="T:NetTopologySuite.Simplify.TopologyPreservingSimplifier.LineStringTransformer">
- <summary>
- A LineString transformer
- </summary>
- </member>
- <member name="M:NetTopologySuite.Simplify.TopologyPreservingSimplifier.LineStringTransformer.TransformCoordinates(NetTopologySuite.Geometries.CoordinateSequence,NetTopologySuite.Geometries.Geometry)">
- <inheritdoc cref="M:NetTopologySuite.Geometries.Utilities.GeometryTransformer.TransformCoordinates(NetTopologySuite.Geometries.CoordinateSequence,NetTopologySuite.Geometries.Geometry)"/>>
- </member>
- <member name="T:NetTopologySuite.Simplify.TopologyPreservingSimplifier.LineStringMapBuilderFilter">
- <summary>
- A filter to add linear geometries to the LineString map
- with the appropriate minimum size constraint.
- Closed <see cref="T:NetTopologySuite.Geometries.LineString"/>s (including <see cref="T:NetTopologySuite.Geometries.LinearRing"/>s
- have a minimum output size constraint of 4,
- to ensure the output is valid.
- For all other LineStrings, the minimum size is 2 points.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Simplify.TopologyPreservingSimplifier.LineStringMapBuilderFilter.Filter(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Filters linear geometries.
- </summary>
- <param name="geom">A geometry of any type</param>
- </member>
- <member name="T:NetTopologySuite.Simplify.VWLineSimplifier">
- <summary>
- Simplifies a linestring (sequence of points) using the
- Visvalingam-Whyatt algorithm.
- The Visvalingam-Whyatt algorithm simplifies geometry
- by removing vertices while trying to minimize the area changed.
- </summary>
- <version>1.7</version>
- </member>
- <member name="T:NetTopologySuite.Simplify.VWSimplifier">
- <summary>
- Simplifies a <see cref="T:NetTopologySuite.Geometries.Geometry"/> using the Visvalingam-Whyatt area-based algorithm.
- Ensures that any polygonal geometries returned are valid. Simple lines are not
- guaranteed to remain simple after simplification. All geometry types are
- handled. Empty and point geometries are returned unchanged. Empty geometry
- components are deleted.
- The simplification tolerance is specified as a distance.
- This is converted to an area tolerance by squaring it.
- <para>
- <b>Known Bugs</b>
- * Not yet optimized for performance.
- * Does not simplify the endpoint of rings.
- <b>To Do</b>
- * Allow specifying desired number of vertices in the output.
- </para>
- </summary>
- <remarks>
- Note that in general this algorithm does not preserve topology - e.g. polygons can be split,
- collapse to lines or disappear holes can be created or disappear, and lines
- can cross.
- </remarks>
- <version>1.7</version>
- </member>
- <member name="M:NetTopologySuite.Simplify.VWSimplifier.Simplify(NetTopologySuite.Geometries.Geometry,System.Double)">
- <summary>
- Simplifies a <see cref="T:NetTopologySuite.Geometries.Geometry"/> using a given tolerance.
- </summary>
- <param name="geom">The <see cref="T:NetTopologySuite.Geometries.Geometry"/> to simplify.</param>
- <param name="distanceTolerance">The tolerance to use.</param>
- <returns>A simplified version of the <see cref="T:NetTopologySuite.Geometries.Geometry"/>.</returns>
- </member>
- <member name="M:NetTopologySuite.Simplify.VWSimplifier.#ctor(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Creates a simplifier for a given <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
- </summary>
- <param name="inputGeom">The <see cref="T:NetTopologySuite.Geometries.Geometry"/> to simplify.</param>
- </member>
- <member name="P:NetTopologySuite.Simplify.VWSimplifier.DistanceTolerance">
- <summary>
- Sets the distance tolerance for the simplification. All vertices in the
- simplified <see cref="T:NetTopologySuite.Geometries.Geometry"/> will be within this distance of the original geometry.
- The tolerance value must be non-negative.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Simplify.VWSimplifier.IsEnsureValidTopology">
- <summary>
- Controls whether simplified polygons will be "fixed" to have valid
- topology. The caller may choose to disable this because:
- * valid topology is not required.
- * fixing topology is a relative expensive operation.
- * in some pathological cases the topology fixing operation may either
- fail or run for too long.
- </summary>
- <remarks>The default is to fix polygon topology.</remarks>
- </member>
- <member name="M:NetTopologySuite.Simplify.VWSimplifier.GetResultGeometry">
- <summary>
- Gets the simplified <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
- </summary>
- <returns>The simplified <see cref="T:NetTopologySuite.Geometries.Geometry"/>.</returns>
- </member>
- <member name="M:NetTopologySuite.Simplify.VWSimplifier.VWTransformer.TransformPolygon(NetTopologySuite.Geometries.Polygon,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Simplifies a <see cref="T:NetTopologySuite.Geometries.Polygon"/>, fixing it if required.
- </summary>
- <param name="geom"></param>
- <param name="parent"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Simplify.VWSimplifier.VWTransformer.TransformLinearRing(NetTopologySuite.Geometries.LinearRing,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Simplifies a <see cref="T:NetTopologySuite.Geometries.LinearRing"/>. If the simplification results in a degenerate
- ring, remove the component.
- </summary>
- <param name="geom"></param>
- <param name="parent"></param>
- <returns><c>null</c> if the simplification results in a degenerate ring.</returns>
- </member>
- <member name="M:NetTopologySuite.Simplify.VWSimplifier.VWTransformer.TransformMultiPolygon(NetTopologySuite.Geometries.MultiPolygon,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Simplifies a <see cref="T:NetTopologySuite.Geometries.MultiPolygon"/>, fixing it if required.
- </summary>
- <param name="geom"></param>
- <param name="parent"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Simplify.VWSimplifier.VWTransformer.CreateValidArea(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Creates a valid area geometry from one that possibly has bad topology
- (i.e. self-intersections). Since buffer can handle invalid topology, but
- always returns valid geometry, constructing a 0-width buffer "corrects"
- the topology. Note this only works for area geometries, since buffer
- always returns areas. This also may return empty geometries, if the input
- has no actual area.
- </summary>
- <param name="rawAreaGeom">An area geometry possibly containing self-intersections.</param>
- <returns>A valid area geometry.</returns>
- </member>
- <member name="T:NetTopologySuite.Triangulate.ConformingDelaunayTriangulationBuilder">
- <summary>
- A utility class which creates Conforming Delaunay Triangulations
- from collections of points and linear constraints, and extract the resulting
- triangulation edges or triangles as geometries.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Triangulate.ConformingDelaunayTriangulationBuilder.SetSites(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Sets the sites (point or vertices) which will be triangulated.
- All vertices of the given geometry will be used as sites.
- The site vertices do not have to contain the constraint
- vertices as well; any site vertices which are
- identical to a constraint vertex will be removed
- from the site vertex set.
- </summary>
- <remarks>The geometry from which the sites will be extracted.</remarks>
- </member>
- <member name="P:NetTopologySuite.Triangulate.ConformingDelaunayTriangulationBuilder.Constraints">
- <summary>
- Sets the linear constraints to be conformed to.
- All linear components in the input will be used as constraints.
- The constraint vertices do not have to be disjoint from
- the site vertices.
- The constraints must not contain duplicate segments (up to orientation).
- </summary>
- </member>
- <member name="P:NetTopologySuite.Triangulate.ConformingDelaunayTriangulationBuilder.Tolerance">
- <summary>
- Sets the snapping tolerance which will be used
- to improved the robustness of the triangulation computation.
- A tolerance of 0.0 specifies that no snapping will take place.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Triangulate.ConformingDelaunayTriangulationBuilder.GetSubdivision">
- <summary>
- Gets the QuadEdgeSubdivision which models the computed triangulation.
- </summary>
- <returns>The subdivision containing the triangulation</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.ConformingDelaunayTriangulationBuilder.GetEdges(NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
- Gets the edges of the computed triangulation as a <see cref="T:NetTopologySuite.Geometries.MultiLineString"/>.
- </summary>
- <param name="geomFact">The geometry factory to use to create the output</param>
- <returns>the edges of the triangulation</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.ConformingDelaunayTriangulationBuilder.GetTriangles(NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
- Gets the faces of the computed triangulation as a <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/>
- of <see cref="N:NetTopologySuite.Triangulate.Polygon"/>.
- </summary>
- <param name="geomFact">the geometry factory to use to create the output</param>
- <returns>the faces of the triangulation</returns>
- </member>
- <member name="T:NetTopologySuite.Triangulate.ConformingDelaunayTriangulator">
- <summary>
- Computes a Conforming Delaunay Triangulation over a set of sites and a set of
- linear constraints.
- </summary>
- <remarks>
- <para>
- A conforming Delaunay triangulation is a true Delaunay triangulation. In it
- each constraint segment is present as a union of one or more triangulation
- edges. Constraint segments may be subdivided into two or more triangulation
- edges by the insertion of additional sites. The additional sites are called
- Steiner points, and are necessary to allow the segments to be faithfully
- reflected in the triangulation while maintaining the Delaunay property.
- Another way of stating this is that in a conforming Delaunay triangulation
- every constraint segment will be the union of a subset of the triangulation
- edges (up to tolerance).
- </para>
- <para>
- A Conforming Delaunay triangulation is distinct from a Constrained Delaunay triangulation.
- A Constrained Delaunay triangulation is not necessarily fully Delaunay,
- and it contains the constraint segments exactly as edges of the triangulation.
- </para>
- <para>
- A typical usage pattern for the triangulator is:
- <code>
- ConformingDelaunayTriangulator cdt = new ConformingDelaunayTriangulator(sites, tolerance);
-
- // optional
- cdt.SplitPointFinder = splitPointFinder;
- cdt.VertexFactory = vertexFactory;
-
- cdt.SetConstraints(segments, new List<Vertex>(vertexMap.Values));
- cdt.FormInitialDelaunay();
- cdt.EnforceConstraints();
- subdiv = cdt.Subdivision;
- </code>
- </para>
- </remarks>
- <author>David Skea</author>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Triangulate.ConformingDelaunayTriangulator.#ctor(System.Collections.Generic.IEnumerable{NetTopologySuite.Triangulate.QuadEdge.Vertex},System.Double)">
- <summary>
- Creates a Conforming Delaunay Triangulation based on the given
- unconstrained initial vertices. The initial vertex set should not contain
- any vertices which appear in the constraint set.
- </summary>
- <param name="initialVertices">a collection of <see cref="T:NetTopologySuite.Triangulate.ConstraintVertex"/></param>
- <param name="tolerance">the distance tolerance below which points are considered identical</param>
- </member>
- <member name="M:NetTopologySuite.Triangulate.ConformingDelaunayTriangulator.SetConstraints(System.Collections.Generic.IList{NetTopologySuite.Triangulate.Segment},System.Collections.Generic.IList{NetTopologySuite.Triangulate.QuadEdge.Vertex})">
- <summary>
- Sets the constraints to be conformed to by the computed triangulation.
- The constraints must not contain duplicate segments (up to orientation).
- The unique set of vertices (as <see cref="T:NetTopologySuite.Triangulate.ConstraintVertex"/>es)
- forming the constraints must also be supplied.
- Supplying it explicitly allows the ConstraintVertexes to be initialized
- appropriately (e.g. with external data), and avoids re-computing the unique set
- if it is already available.
- </summary>
- <param name="segments">list of the constraint <see cref="T:NetTopologySuite.Triangulate.Segment"/>s</param>
- <param name="segVertices">the set of unique <see cref="T:NetTopologySuite.Triangulate.ConstraintVertex"/>es referenced by the segments</param>
- </member>
- <member name="P:NetTopologySuite.Triangulate.ConformingDelaunayTriangulator.SplitPointFinder">
- <summary>
- Gets or sets the <see cref="T:NetTopologySuite.Triangulate.IConstraintSplitPointFinder"/> to be
- used during constraint enforcement.
- Different splitting strategies may be appropriate
- for special situations.
- </summary>
- <remarks>the ConstraintSplitPointFinder to be used</remarks>
- </member>
- <member name="P:NetTopologySuite.Triangulate.ConformingDelaunayTriangulator.Tolerance">
- <summary>
- Gets the tolerance value used to construct the triangulation.
- </summary>
- <remarks>a tolerance value</remarks>
- </member>
- <member name="P:NetTopologySuite.Triangulate.ConformingDelaunayTriangulator.VertexFactory">
- <summary>
- Gets and sets the <see cref="T:NetTopologySuite.Triangulate.ConstraintVertexFactory"/> used to create new constraint vertices at split points.
- </summary>
- <remarks>Allows the setting of a custom <see cref="T:NetTopologySuite.Triangulate.ConstraintVertexFactory"/> to be used
- to allow vertices carrying extra information to be created.
- </remarks>
- </member>
- <member name="P:NetTopologySuite.Triangulate.ConformingDelaunayTriangulator.Subdivision">
- <summary>
- Gets the <see cref="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision"/> which represents the triangulation.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Triangulate.ConformingDelaunayTriangulator.KDT">
- <summary>
- Gets the <see cref="T:NetTopologySuite.Index.KdTree.KdTree`1"/> which contains the vertices of the triangulation.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Triangulate.ConformingDelaunayTriangulator.InitialVertices">
- <summary>
- Gets the sites (vertices) used to initialize the triangulation.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Triangulate.ConformingDelaunayTriangulator.ConstraintSegments">
- <summary>
- Gets the <see cref="T:NetTopologySuite.Triangulate.Segment"/>s which represent the constraints.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Triangulate.ConformingDelaunayTriangulator.ConvexHull">
- <summary>
- Gets the convex hull of all the sites in the triangulation,
- including constraint vertices.
- Only valid after the constraints have been enforced.
- </summary>
- <remarks>the convex hull of the sites</remarks>
- </member>
- <member name="M:NetTopologySuite.Triangulate.ConformingDelaunayTriangulator.CreateVertex(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Triangulate.Segment)">
- <summary>
- Creates a vertex on a constraint segment
- </summary>
- <param name="p">the location of the vertex to create</param>
- <param name="seg">the constraint segment it lies on</param>
- <returns>the new constraint vertex</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.ConformingDelaunayTriangulator.InsertSites(System.Collections.Generic.ICollection{NetTopologySuite.Triangulate.QuadEdge.Vertex})">
- <summary>
- Inserts all sites in a collection
- </summary>
- <param name="vertices">a collection of ConstraintVertex</param>
- </member>
- <member name="M:NetTopologySuite.Triangulate.ConformingDelaunayTriangulator.InsertSite(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Inserts a site into the triangulation, maintaining the conformal Delaunay property.
- This can be used to further refine the triangulation if required
- (e.g. to approximate the medial axis of the constraints,
- or to improve the grading of the triangulation).
- </summary>
- <param name="p">the location of the site to insert</param>
- </member>
- <member name="M:NetTopologySuite.Triangulate.ConformingDelaunayTriangulator.FormInitialDelaunay">
- <summary>
- Computes the Delaunay triangulation of the initial sites.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Triangulate.ConformingDelaunayTriangulator.EnforceConstraints">
- <summary>
- Enforces the supplied constraints into the triangulation.
- </summary>
- <exception cref="T:NetTopologySuite.Triangulate.ConstraintEnforcementException">
- if the constraints cannot be enforced</exception>
- </member>
- <member name="M:NetTopologySuite.Triangulate.ConformingDelaunayTriangulator.FindNonGabrielPoint(NetTopologySuite.Triangulate.Segment)">
- <summary>
- Given a set of points stored in the kd-tree and a line segment defined by
- two points in this set, finds a <see cref="T:NetTopologySuite.Geometries.Coordinate"/> in the circumcircle of
- the line segment, if one exists. This is called the Gabriel point - if none
- exists then the segment is said to have the Gabriel condition. Uses the
- heuristic of finding the non-Gabriel point closest to the midpoint of the
- segment.
- </summary>
- <param name="seg">the line segment</param>
- <returns>
- A point which is non-Gabriel,
- or null if no point is non-Gabriel
- </returns>
- </member>
- <member name="T:NetTopologySuite.Triangulate.ConstraintEnforcementException">
- <summary>
- Indicates a failure during constraint enforcement.
- </summary>
- <author>Martin Davis</author>
- <version>1.0</version>
- </member>
- <member name="M:NetTopologySuite.Triangulate.ConstraintEnforcementException.#ctor(System.String)">
- <summary>
- Creates a new instance with a given message.
- </summary>
- <param name="msg">a string</param>
- </member>
- <member name="M:NetTopologySuite.Triangulate.ConstraintEnforcementException.#ctor(System.String,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Creates a new instance with a given message and approximate location.
- </summary>
- <param name="msg">a string</param>
- <param name="pt">the location of the error</param>
- </member>
- <member name="P:NetTopologySuite.Triangulate.ConstraintEnforcementException.Coordinate">
- <summary>
- Gets the approximate location of this error.
- </summary>
- <remarks>a location</remarks>
- </member>
- <member name="T:NetTopologySuite.Triangulate.ConstraintVertex">
- <summary>
- A vertex in a Constrained Delaunay Triangulation.
- The vertex may or may not lie on a constraint.
- If it does it may carry extra information about the original constraint.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Triangulate.ConstraintVertex.#ctor(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Creates a new constraint vertex
- </summary>
- <param name="p">the location of the vertex</param>
- </member>
- <member name="P:NetTopologySuite.Triangulate.ConstraintVertex.IsOnConstraint">
- <summary>
- Gets or sets whether this vertex lies on a constraint.
- </summary>
- <remarks>true if the vertex lies on a constraint</remarks>
- </member>
- <member name="P:NetTopologySuite.Triangulate.ConstraintVertex.Constraint">
- <summary>
- Gets or sets the external constraint object
- </summary>
- <remarks>object which carries information about the constraint this vertex lies on</remarks>
- </member>
- <member name="M:NetTopologySuite.Triangulate.ConstraintVertex.Merge(NetTopologySuite.Triangulate.ConstraintVertex)">
- <summary>
- Merges the constraint data in the vertex <tt>other</tt> into this vertex.
- This method is called when an inserted vertex is
- very close to an existing vertex in the triangulation.
- </summary>
- <param name="other">the constraint vertex to merge</param>
- </member>
- <member name="T:NetTopologySuite.Triangulate.ConstraintVertexFactory">
- <summary>
- An interface for factories which create a <see cref="T:NetTopologySuite.Triangulate.ConstraintVertex"/>
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="T:NetTopologySuite.Triangulate.DelaunayTriangulationBuilder">
- <summary>
- A utility class which creates Delaunay Triangulations
- from collections of points and extract the resulting
- triangulation edges or triangles as geometries.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Triangulate.DelaunayTriangulationBuilder.ExtractUniqueCoordinates(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Extracts the unique <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s from the given <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
- </summary>
- <param name="geom">the geometry to extract from</param>
- <returns>a List of the unique Coordinates</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.DelaunayTriangulationBuilder.ToVertices(System.Collections.Generic.ICollection{NetTopologySuite.Geometries.Coordinate})">
- <summary>
- Converts all <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s in a collection to <see cref="T:NetTopologySuite.Triangulate.QuadEdge.Vertex"/>es.
- </summary>
- <param name="coords">the coordinates to convert</param>
- <returns>a List of Vertex objects</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.DelaunayTriangulationBuilder.Envelope(System.Collections.Generic.ICollection{NetTopologySuite.Geometries.Coordinate})">
- <summary>
- 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.
- </summary>
- <param name="coords">a List of Coordinates</param>
- <returns>the envelope of the set of coordinates</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.DelaunayTriangulationBuilder.SetSites(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Sets the sites (vertices) which will be triangulated.
- All vertices of the given geometry will be used as sites.
- </summary>
- <param name="geom">the geometry from which the sites will be extracted.</param>
- </member>
- <member name="M:NetTopologySuite.Triangulate.DelaunayTriangulationBuilder.SetSites(System.Collections.Generic.ICollection{NetTopologySuite.Geometries.Coordinate})">
- <summary>
- Sets the sites (vertices) which will be triangulated
- from a collection of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s.
- </summary>
- <param name="coords">a collection of Coordinates.</param>
- </member>
- <member name="P:NetTopologySuite.Triangulate.DelaunayTriangulationBuilder.Tolerance">
- <summary>
- Sets the snapping tolerance which will be used
- to improved the robustness of the triangulation computation.
- A tolerance of 0.0 specifies that no snapping will take place.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Triangulate.DelaunayTriangulationBuilder.GetSubdivision">
- <summary>
- Gets the <see cref="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision"/> which models the computed triangulation.
- </summary>
- <returns>the subdivision containing the triangulation</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.DelaunayTriangulationBuilder.GetEdges(NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
- Gets the edges of the computed triangulation as a <see cref="T:NetTopologySuite.Geometries.MultiLineString"/>.
- </summary>
- <param name="geomFact">the geometry factory to use to create the output</param>
- <returns>the edges of the triangulation</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.DelaunayTriangulationBuilder.GetTriangles(NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
- Gets the faces of the computed triangulation as a <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/>
- of <see cref="N:NetTopologySuite.Triangulate.Polygon"/>.
- </summary>
- <param name="geomFact">the geometry factory to use to create the output</param>
- <returns>the faces of the triangulation</returns>
- </member>
- <member name="T:NetTopologySuite.Triangulate.IConstraintSplitPointFinder">
- <summary>
- An interface for strategies for determining the location of split points on constraint segments.
- The location of split points has a large effect on the performance and robustness of enforcing a
- constrained Delaunay triangulation. Poorly chosen split points can cause repeated splitting,
- especially at narrow constraint angles, since the split point will end up encroaching on the
- segment containing the original encroaching point. With detailed knowledge of the geometry of the
- constraints, it is sometimes possible to choose better locations for splitting.
- </summary>
- <author>mbdavis</author>
- </member>
- <member name="M:NetTopologySuite.Triangulate.IConstraintSplitPointFinder.FindSplitPoint(NetTopologySuite.Triangulate.Segment,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Finds a point at which to split an encroached segment to allow the original segment to appear
- as edges in a constrained Delaunay triangulation.
- </summary>
- <param name="seg">the encroached segment</param>
- <param name="encroachPt">the encroaching point</param>
- <returns>the point at which to split the encroached segment</returns>
- </member>
- <member name="T:NetTopologySuite.Triangulate.IncrementalDelaunayTriangulator">
- <summary>
- Computes a Delaunay Triangulation of a set of <see cref="T:NetTopologySuite.Triangulate.QuadEdge.Vertex"/>es, using an
- incremental insertion algorithm.
- </summary>
- <author>Martin Davis</author>
- <version>1.0</version>
- </member>
- <member name="M:NetTopologySuite.Triangulate.IncrementalDelaunayTriangulator.#ctor(NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision)">
- <summary>
- Creates a new triangulator using the given <see cref="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision"/>.
- The triangulator uses the tolerance of the supplied subdivision.
- </summary>
- <param name="subdiv">a subdivision in which to build the TIN</param>
- </member>
- <member name="P:NetTopologySuite.Triangulate.IncrementalDelaunayTriangulator.ForceConvex">
- <summary>
- Gets or sets whether the triangulation is forced to have a convex boundary. Because
- of the use of a finite-size frame, this condition requires special logic to
- enforce.The default is true, since this is a requirement for some uses of
- Delaunay Triangulations (such as Concave Hull generation). However, forcing
- the triangulation boundary to be convex may cause the overall frame
- triangulation to be non-Delaunay.This can cause a problem for Voronoi
- generation, so the logic can be disabled via this method.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Triangulate.IncrementalDelaunayTriangulator.InsertSites(System.Collections.Generic.ICollection{NetTopologySuite.Triangulate.QuadEdge.Vertex})">
- <summary>
- Inserts all sites in a collection. The inserted vertices <b>MUST</b> be
- unique up to the provided tolerance value. (i.e. no two vertices should be
- closer than the provided tolerance value). They do not have to be rounded
- to the tolerance grid, however.
- </summary>
- <param name="vertices">a Collection of Vertex</param>
- <exception cref="T:NetTopologySuite.Triangulate.QuadEdge.LocateFailureException">if the location algorithm fails to converge in a reasonable number of iterations</exception>
- </member>
- <member name="M:NetTopologySuite.Triangulate.IncrementalDelaunayTriangulator.InsertSite(NetTopologySuite.Triangulate.QuadEdge.Vertex)">
- <summary>
- Inserts a new point into a subdivision representing a Delaunay
- triangulation, and fixes the affected edges so that the result is still a
- Delaunay triangulation.
- </summary>
- <returns>a quadedge containing the inserted vertex</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.IncrementalDelaunayTriangulator.IsConcaveBoundary(NetTopologySuite.Triangulate.QuadEdge.QuadEdge)">
- <summary>
- Tests if a edge touching a frame vertex
- creates a concavity in the triangulation boundary.
- </summary>
- <param name="e">The edge to test</param>
- <returns><c>true</c> if the triangulation boundary is concave at the edge</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.IncrementalDelaunayTriangulator.IsConcaveAtOrigin(NetTopologySuite.Triangulate.QuadEdge.QuadEdge)">
- <summary>
- Tests if the quadrilateral surrounding an edge is concave at the edge origin.
- Used to determine if the triangulation boundary has a concavity.
- </summary>
- <param name="e">The edge to test</param>
- <returns><c>true</c> if the quadrilateral surrounding an edge is concave at the edge origin</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.IncrementalDelaunayTriangulator.IsBetweenFrameAndInserted(NetTopologySuite.Triangulate.QuadEdge.QuadEdge,NetTopologySuite.Triangulate.QuadEdge.Vertex)">
- <summary>
- Edges whose adjacent triangles contain
- a frame vertex and the inserted vertex must not be flipped.
- </summary>
- <param name="e">The edge to test</param>
- <param name="vInsert">The inserted vertex</param>
- <returns><c>true</c> if the edge is between the frame and inserted vertex</returns>
- </member>
- <member name="T:NetTopologySuite.Triangulate.MidpointSplitPointFinder">
- <summary>
- A simple split point finder which returns the midpoint of the split segment. This is a default
- strategy only. Usually a more sophisticated strategy is required to prevent repeated splitting.
- Other points which could be used are:
- <ul>
- <li>The projection of the encroaching point on the segment</li>
- <li>A point on the segment which will produce two segments which will not be further encroached</li>
- <li>The point on the segment which is the same distance from an endpoint as the encroaching</li>
- point
- </ul>
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Triangulate.MidpointSplitPointFinder.FindSplitPoint(NetTopologySuite.Triangulate.Segment,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Gets the midpoint of the split segment
- </summary>
- </member>
- <member name="T:NetTopologySuite.Triangulate.NonEncroachingSplitPointFinder">
- <summary>
- A strategy for finding constraint split points which attempts to maximise the length of the split
- segments while preventing further encroachment. (This is not always possible for narrow angles).
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Triangulate.NonEncroachingSplitPointFinder.FindSplitPoint(NetTopologySuite.Triangulate.Segment,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- A basic strategy for finding split points when nothing extra is known about the geometry of
- the situation.
- </summary>
- <param name="seg">the encroached segment</param>
- <param name="encroachPt">the encroaching point</param>
- <returns>the point at which to split the encroached segment</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.NonEncroachingSplitPointFinder.ProjectedSplitPoint(NetTopologySuite.Triangulate.Segment,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Computes a split point which is the projection of the encroaching point on the segment
- </summary>
- <param name="seg">The segment</param>
- <param name="encroachPt">The enchroaching point</param>
- <returns>A split point on the segment</returns>
- </member>
- <member name="T:NetTopologySuite.Triangulate.Polygon.ConstrainedDelaunayTriangulator">
- <summary>
- Computes the Constrained Delaunay Triangulation of polygons.
- The Constrained Delaunay Triangulation of a polygon is a set of triangles
- covering the polygon, with the maximum total interior angle over all
- possible triangulations. It provides the "best quality" triangulation
- of the polygon.
- <para/>
- Holes are supported.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Polygon.ConstrainedDelaunayTriangulator.Triangulate(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes the Constrained Delaunay Triangulation of each polygon element in a geometry.
- </summary>
- <param name="geom">The input geometry</param>
- <returns>A GeometryCollection of the computed triangle polygons</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Polygon.ConstrainedDelaunayTriangulator.#ctor(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Constructs a new Constrained Delaunay triangulator.
- </summary>
- <param name="inputGeom">The input geometry</param>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Polygon.ConstrainedDelaunayTriangulator.GetResult">
- <summary>
- Gets the triangulation as a <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/> of triangular <see cref="N:NetTopologySuite.Triangulate.Polygon"/>s.
- </summary>
- <returns>A collection of the result triangle polygons</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Polygon.ConstrainedDelaunayTriangulator.GetTriangles">
- <summary>
- Gets the triangulation as a list of <see cref="T:NetTopologySuite.Triangulate.Tri.Tri"/>s.
- </summary>
- <returns>The list of <c>Tri</c>s in the triangulation</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Polygon.ConstrainedDelaunayTriangulator.TriangulatePolygon(NetTopologySuite.Geometries.Polygon)">
- <summary>
- Computes the triangulation of a single polygon
- and returns it as a list of <see cref="T:NetTopologySuite.Triangulate.Tri.Tri"/>s.
- </summary>
- <param name="poly">The input polygon</param>
- <returns>A list of <c>Tri</c>s forming the triangulation</returns>
- </member>
- <member name="T:NetTopologySuite.Triangulate.Polygon.PolygonEarClipper">
- <summary>
- Triangulates a polygon using the Ear-Clipping technique.
- The polygon is provided as a closed list of contiguous vertices
- defining its boundary.
- The vertices must have clockwise orientation.
- <para/>
- The polygon boundary must not self-cross,
- but may self-touch at points or along an edge.
- It may contain repeated points, which are treated as a single vertex.
- By default every vertex is triangulated,
- including ones which are "flat" (the adjacent segments are collinear).
- These can be removed by setting <see cref="P:NetTopologySuite.Triangulate.Polygon.PolygonEarClipper.SkipFlatCorners"/>.
- <para/>
- The polygon representation does not allow holes.
- Polygons with holes can be triangulated by preparing them with <see cref="T:NetTopologySuite.Triangulate.Polygon.PolygonHoleJoiner"/>.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Polygon.PolygonEarClipper.Triangulate(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Triangulates a polygon via ear-clipping.
- </summary>
- <param name="polyShell">The vertices of the polygon</param>
- <returns>A list of <c>Tri</c>s</returns>
- </member>
- <member name="F:NetTopologySuite.Triangulate.Polygon.PolygonEarClipper._vertex">
- <summary>
- The polygon vertices are provided in CW orientation.
- Thus for convex interior angles
- the vertices forming the angle are in CW orientation.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Triangulate.Polygon.PolygonEarClipper._vertexCoordIndex">
- <summary>
- Indexing vertices improves ear intersection testing performance.
- The polyShell vertices are contiguous, so are suitable for an SPRtree.
- Note that a KDtree cannot be used because the vertex indices must be stored
- and duplicates must be stored.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Polygon.PolygonEarClipper.#ctor(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Creates a new instance of this class
- </summary>
- <param name="polyShell">The vertices of the polygon to process</param>
- </member>
- <member name="P:NetTopologySuite.Triangulate.Polygon.PolygonEarClipper.SkipFlatCorners">
- <summary>
- Gets or sets whether flat corners formed by collinear adjacent line segments
- are included in the triangulation.
- Skipping flat corners reduces the number of triangles in the output.
- However, it produces a triangulation which does not include
- all input vertices. This may be undesirable for downstream processes
- (such as computing a Constrained Delaunay Triangulation for
- purposes of computing the medial axis).
- <para/>
- The default is to include all vertices in the result triangulation.
- This still produces a valid triangulation, with no zero-area triangles.
- <para/>
- Note that repeated vertices are always skipped.
- </summary>
- <returns>A flag indicating if flat corners formed by collinear adjacent line segments
- are included in the triangulation</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Polygon.PolygonEarClipper.FindIntersectingVertex(System.Int32,NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Finds a vertex contained in the corner triangle, if any.
- Uses the vertex spatial index for efficiency.
- <para/>
- Also finds any vertex which is a duplicate of the corner apex vertex.
- This requires a full scan of the vertices to confirm ear is valid.
- This is usually a rare situation, so has little impact on performance.
- </summary>
- <param name="cornerIndex">The index of the corner apex vertex</param>
- <param name="corner">The corner vertices</param>
- <returns>The index of an intersecting or duplicate vertex, or <see cref="F:NetTopologySuite.Triangulate.Polygon.PolygonEarClipper.NoVertexIndex"/> if none</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Polygon.PolygonEarClipper.IsValidEarScan(System.Int32,NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Scan all vertices in current ring to check if any are duplicates
- of the corner apex vertex, and if so whether the corner ear
- intersects the adjacent segments and thus is invalid.
- </summary>
- <param name="cornerIndex">The index of the corner apex</param>
- <param name="corner">The corner vertices</param>
- <returns><c>true</c> if the corner ia a valid ear</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Polygon.PolygonEarClipper.RemoveCorner">
- <summary>
- Remove the corner apex vertex and update the candidate corner location.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Polygon.PolygonEarClipper.FetchCorner(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Fetch the corner vertices from the indices.
- </summary>
- <param name="cornerVertex">An array for the corner vertices</param>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Polygon.PolygonEarClipper.NextCorner(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Move to next corner.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Polygon.PolygonEarClipper.NextIndex(System.Int32)">
- <summary>
- Get the index of the next available shell coordinate starting from the given index.
- </summary>
- <param name="index">Coordinate position</param>
- <returns>Index of the next available shell coordinate</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Polygon.PolygonEarClipper.IsCornerInvalid(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Detects if a corner has repeated points (AAB or ABB), or is collapsed (ABA).
- </summary>
- <param name="pts">The corner points</param>
- <returns><c>true</c> if the corner is flat or collapsed</returns>
- </member>
- <member name="T:NetTopologySuite.Triangulate.Polygon.PolygonHoleJoiner">
- <summary>
- Transforms a polygon with holes into a single self-touching (invalid) ring
- by joining holes to the exterior shell or to another hole
- with out-and-back line segments.
- The holes are added in order of their envelopes (leftmost/lowest first).
- As the result shell develops, a hole may be added to what was
- originally another hole.
- <para/>
- There is no attempt to optimize the quality of the join lines.
- In particular, holes may be joined by lines longer than is optimal.
- However, holes which touch the shell or other holes are joined at the touch point.
- <para/>
- The class does not require the input polygon to have normal
- orientation (shell CW and rings CCW).
- The output ring is always CW.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Triangulate.Polygon.PolygonHoleJoiner._comparer">
- <summary>
- The comparer to use when sorting <see cref="F:NetTopologySuite.Triangulate.Polygon.PolygonHoleJoiner._joinedPtsOrdered"/>
- </summary>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Polygon.PolygonHoleJoiner.JoinAsPolygon(NetTopologySuite.Geometries.Polygon)">
- <summary>
- Joins the shell and holes of a polygon
- and returns the result as an (invalid) Polygon.
- </summary>
- <param name="polygon">The polygon to join</param>
- <returns>The result polygon</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Polygon.PolygonHoleJoiner.Join(NetTopologySuite.Geometries.Polygon)">
- <summary>
- Joins the shell and holes of a polygon
- and returns the result as sequence of Coordinates.
- </summary>
- <param name="polygon">The polygon to join</param>
- <returns>The result coordinates</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Polygon.PolygonHoleJoiner.#ctor(NetTopologySuite.Geometries.Polygon)">
- <summary>
- Creates a new hole joiner.
- </summary>
- <param name="polygon">The polygon to join</param>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Polygon.PolygonHoleJoiner.Compute">
- <summary>
- Computes the joined ring
- </summary>
- <returns>The points in the joined ring</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Polygon.PolygonHoleJoiner.AddOrderedCoord(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Adds a coordinate to the <see cref="F:NetTopologySuite.Triangulate.Polygon.PolygonHoleJoiner._joinedPts"/> set and
- clears the <see cref="F:NetTopologySuite.Triangulate.Polygon.PolygonHoleJoiner._joinedPtsOrdered"/> array.
- </summary>
- <param name="coord">A coordinate</param>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Polygon.PolygonHoleJoiner.JoinTouchingHole(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Joins a hole to the shell only if the hole touches the shell.
- Otherwise, reports the hole is non-touching.
- </summary>
- <param name="holeCoords">The hole to join</param>
- <returns><c>true</c> if the hole was touching, <c>false</c> if not</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Polygon.PolygonHoleJoiner.FindHoleTouchIndex(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Finds the vertex index of a hole where it touches the
- current shell (if it does).
- If a hole does touch, it must touch at a single vertex
- (otherwise, the polygon is invalid).
- </summary>
- <param name="holeCoords">The hole</param>
- <returns>The index of the touching vertex, or -1 if no touch</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Polygon.PolygonHoleJoiner.JoinNonTouchingHole(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Joins a single non-touching hole to the current joined ring.
- </summary>
- <param name="holeCoords">The hole to join</param>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Polygon.PolygonHoleJoiner.FindJoinableVertex(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Finds a shell vertex that is joinable to the hole join vertex.
- One must always exist, since the hole join vertex is on the left
- of the hole, and thus must always have at least one shell vertex visible to it.
- <para/>
- There is no attempt to optimize the selection of shell vertex
- to join to (e.g. by choosing one with shortest distance).
- </summary>
- <param name="holeJoinCoord">Theo hole join vertex</param>
- <returns>The shell vertex to join to</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Polygon.PolygonHoleJoiner.FindJoinIndex(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- Gets the join ring vertex index that the hole is joined after.
- A vertex can occur multiple times in the join ring, so it is necessary
- to choose the one which forms a corner having the
- join line in the ring interior.
-
- @param joinCoord the join ring vertex
- @param holeJoinCoord the hole join vertex
- @return the join ring vertex index to join after
- </member>
- <member name="M:NetTopologySuite.Triangulate.Polygon.PolygonHoleJoiner.IsLineInterior(System.Collections.Generic.List{NetTopologySuite.Geometries.Coordinate},System.Int32,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Tests if a line between a ring corner vertex and a given point
- is interior to the ring corner.
- </summary>
- <param name="ring">A ring of points</param>
- <param name="ringIndex">The index of a ring vertex</param>
- <param name="linePt">The point to be joined to the ring</param>
- <returns><c>true</c> if the line to the point is interior to the ring corner</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Polygon.PolygonHoleJoiner.AddJoinedHole(System.Int32,NetTopologySuite.Geometries.Coordinate[],System.Int32)">
- <summary>
- Add hole vertices at proper position in shell vertex list.
- This code assumes that if hole touches (shell or other hole),
- it touches at a node. This requires an initial noding step.
- In this case, the code avoids duplicating join vertices.
- <para/>
- Also adds hole points to ordered coordinates.
- </summary>
- <param name="joinIndex">Index of join vertex in shell</param>
- <param name="holeCoords">The vertices of the hole to be inserted</param>
- <param name="holeJoinIndex">Index of join vertex in hole</param>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Polygon.PolygonHoleJoiner.CreateHoleSection(NetTopologySuite.Geometries.Coordinate[],System.Int32,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Creates the new section of vertices for ad added hole,
- including any required vertices from the shell at the join point,
- and ensuring join vertices are not duplicated.
- </summary>
- <param name="holeCoords">The hole vertices</param>
- <param name="holeJoinIndex">The index of the join vertex</param>
- <param name="joinPt">The shell join vertex</param>
- <returns>A list of new vertices to be added</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Polygon.PolygonHoleJoiner.SortHoles(NetTopologySuite.Geometries.Polygon)">
- <summary>
- Sort the hole rings by minimum X, minimum Y.
- </summary>
- <param name="poly">Polygon that contains the holes</param>
- <returns>A list of sorted hole rings</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Polygon.PolygonHoleJoiner.IntersectsBoundary(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Tests whether the interior of a line segment intersects the polygon boundary.
- If so, the line is not a valid join line.
- </summary>
- <param name="p0">A segment vertex</param>
- <param name="p1">Another segment vertex</param>
- <returns><c>true</c> if the segment interior intersects a polygon boundary segment</returns>
- </member>
- <member name="T:NetTopologySuite.Triangulate.Polygon.PolygonHoleJoiner.InteriorIntersectionDetector">
- <summary>
- Detects if a segment has an interior intersection with another segment.
- </summary>
- </member>
- <member name="T:NetTopologySuite.Triangulate.Polygon.PolygonNoder">
- <summary>
- Adds node vertices to the rings of a polygon
- where holes touch the shell or each other.
- The structure of the polygon is preserved.
- <para/>
- This does not fix invalid polygon topology
- (such as self-touching or crossing rings).
- Invalid input remains invalid after noding,
- and does not trigger an error.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="T:NetTopologySuite.Triangulate.Polygon.PolygonNoder.NodeAdder">
- <summary>
- A <see cref="T:NetTopologySuite.Noding.ISegmentIntersector"/> that added node vertices
- to <see cref="T:NetTopologySuite.Noding.NodedSegmentString"/>s where a segment touches another
- segment in its interior.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="T:NetTopologySuite.Triangulate.Polygon.PolygonTriangulator">
- <summary>
- Computes a triangulation of each polygon in a {@link Geometry}.
- A polygon triangulation is a non-overlapping set of triangles which
- cover the polygon and have the same vertices as the polygon.
- The priority is on performance rather than triangulation quality,
- so that the output may contain many narrow triangles.
- <para/>
- Holes are handled by joining them to the shell to form a
- (self-touching) polygon shell with no holes.
- Although invalid, this can be triangulated effectively.
- <para/>
- For better-quality triangulation use <see cref="T:NetTopologySuite.Triangulate.Polygon.ConstrainedDelaunayTriangulator"/>.
- </summary>
- <seealso cref="T:NetTopologySuite.Triangulate.Polygon.ConstrainedDelaunayTriangulator"/>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Polygon.PolygonTriangulator.Triangulate(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Computes a triangulation of each polygon in a geometry.
- </summary>
- <param name="geom">A geometry containing polygons</param>
- <returns>A <c>GeometryCollection</c> containing the polygons</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Polygon.PolygonTriangulator.#ctor(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Constructs a new triangulator.
- </summary>
- <param name="inputGeom">The input geometry</param>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Polygon.PolygonTriangulator.GetResult">
- <summary>
- Gets the triangulation as a <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/> of triangular <see cref="T:NetTopologySuite.Geometries.Polygon"/>s.
- </summary>
- <returns>A collection of the result triangle polygons</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Polygon.PolygonTriangulator.GetTriangles">
- <summary>
- Gets the triangulation as a list of <see cref="T:NetTopologySuite.Triangulate.Tri.Tri"/>s.
- </summary>
- <returns>The list of Tris in the triangulation</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Polygon.PolygonTriangulator.TriangulatePolygon(NetTopologySuite.Geometries.Polygon)">
- <summary>
- Computes the triangulation of a single polygon
- </summary>
- <returns>A list of triangular polygons</returns>
- </member>
- <member name="T:NetTopologySuite.Triangulate.Polygon.TriDelaunayImprover">
- <summary>
- Improves the quality of a triangulation of <see cref="T:NetTopologySuite.Triangulate.Tri.Tri"/>s via
- iterated Delaunay flipping.
- This produces a Constrained Delaunay Triangulation
- with the constraints being the boundary of the input triangulation.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Polygon.TriDelaunayImprover.Improve(System.Collections.Generic.IList{NetTopologySuite.Triangulate.Tri.Tri})">
- <summary>
- Improves the quality of a triangulation of {@link Tri}s via
- iterated Delaunay flipping.
- The Tris are assumed to be linked into a Triangulation
- (e.g. via <see cref="!:TriangulationBuilder"/>).
- </summary>
- <param name="triList">The list of <c>Tri</c>s to improve</param>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Polygon.TriDelaunayImprover.ImproveScan(System.Collections.Generic.IList{NetTopologySuite.Triangulate.Tri.Tri})">
- <summary>Improves a triangulation by examining pairs of adjacent triangles
- (forming a quadrilateral) and testing if flipping the diagonal of
- the quadrilateral would produce two new triangles with larger minimum
- interior angles.
- </summary>
- <returns>The number of flips that were made</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Polygon.TriDelaunayImprover.ImproveNonDelaunay(NetTopologySuite.Triangulate.Tri.Tri,System.Int32)">
- <summary>
- Does a flip of the common edge of two Tris if the Delaunay condition is not met.
- </summary>
- <param name="tri">A <c>Tri</c></param>
- <param name="index">The index of the <paramref name="tri"/></param>
- <returns><c>true</c> if the triangles were flipped</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Polygon.TriDelaunayImprover.IsConvex(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Tests if the quadrilateral formed by two adjacent triangles is convex.
- opp0-adj0-adj1 and opp1-adj1-adj0 are the triangle corners
- and hence are known to be convex.
- The quadrilateral is convex if the other corners opp0-adj0-opp1
- and opp1-adj1-opp0 have the same orientation (since at least one must be convex).
- </summary>
- <param name="adj0">The adjacent edge vertex 0</param>
- <param name="adj1">The adjacent edge vertex 1</param>
- <param name="opp0">The corner vertex of triangle 0</param>
- <param name="opp1">The corner vertex of triangle 1</param>
- <returns><c>true</c> if the quadrilateral is convex</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Polygon.TriDelaunayImprover.IsDelaunay(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Tests if either of a pair of adjacent triangles satisfy the Delaunay condition.
- The triangles are opp0-adj0-adj1 and opp1-adj1-adj0.
- The Delaunay condition is not met if one opposite vertex
- lies is in the circumcircle of the other triangle.
- </summary>
- <param name="adj0">The adjacent edge vertex 0</param>
- <param name="adj1">The adjacent edge vertex 1</param>
- <param name="opp0">The corner vertex of triangle 0</param>
- <param name="opp1">The corner vertex of triangle 1</param>
- <returns><c>true</c> if the triangles are Delaunay</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Polygon.TriDelaunayImprover.IsInCircle(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Tests whether a point p is in the circumcircle of a triangle abc
- (oriented clockwise).
- </summary>
- <param name="a">A vertex of the triangle</param>
- <param name="b">A vertex of the triangle</param>
- <param name="c">A vertex of the triangle</param>
- <param name="p">The point</param>
- <returns><c>true</c> if the point is in the circumcircle</returns>
- </member>
- <member name="T:NetTopologySuite.Triangulate.QuadEdge.EdgeConnectedTriangleTraversal">
- <summary>
- A framework to visit sets of edge-connected <see cref="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeTriangle"/>s in breadth-first order
- </summary>
- <author>Martin Davis</author>
- <version>1.0</version>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.EdgeConnectedTriangleTraversal.Init(System.Collections.Generic.IEnumerable{NetTopologySuite.Triangulate.QuadEdge.QuadEdgeTriangle})">
- <summary>
- Called to initialize the traversal queue with a given set of <see cref="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeTriangle"/>s
- </summary>
- <param name="tris">a collection of QuadEdgeTriangle</param>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.EdgeConnectedTriangleTraversal.VisitAll(NetTopologySuite.Triangulate.QuadEdge.ITraversalVisitor)">
- <summary>
- Subclasses call this method to perform the visiting process.
- </summary>
- </member>
- <member name="T:NetTopologySuite.Triangulate.QuadEdge.IQuadEdgeLocator">
- <summary>
- An interface for classes which locate an edge in a <see cref="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision"/>
- which either contains a given <see cref="T:NetTopologySuite.Triangulate.QuadEdge.Vertex"/> V
- or is an edge of a triangle which contains V.
- Implementors may utilized different strategies for
- optimizing locating containing edges/triangles.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="T:NetTopologySuite.Triangulate.QuadEdge.ITraversalVisitor">
- <summary>
- Interface for classes which process triangles visited during traversals of a
- <see cref="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision"/>
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.ITraversalVisitor.Visit(NetTopologySuite.Triangulate.QuadEdge.QuadEdgeTriangle,System.Int32,NetTopologySuite.Triangulate.QuadEdge.QuadEdgeTriangle)">
- <summary>
- Visits a triangle during a traversal of a <see cref="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision"/>. An implementation of
- this method may perform processing on the current triangle. It must also decide whether a
- neighbouring triangle should be added to the queue so its neighbours are visited. Often it
- will perform processing on the neighbour triangle as well, in order to mark it as processed
- (visited) and/or to determine if it should be visited. Note that choosing <b>not</b> to
- visit the neighbouring triangle is the terminating condition for many traversal algorithms.
- In particular, if the neighbour triangle has already been visited, it should not be visited
- again.
- </summary>
- <param name="currTri">the current triangle being processed</param>
- <param name="edgeIndex">the index of the edge in the current triangle being traversed</param>
- <param name="neighbTri">a neighbouring triangle next in line to visit</param>
- <returns>true if the neighbour triangle should be visited</returns>
- </member>
- <member name="T:NetTopologySuite.Triangulate.QuadEdge.ITriangleVisitor">
- <summary>
- An interface for algorithms which process the triangles in a <see cref="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision"/>.
- </summary>
- <author>Martin Davis</author>
- <version>1.0</version>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.ITriangleVisitor.Visit(NetTopologySuite.Triangulate.QuadEdge.QuadEdge[])">
- <summary>
- Visits the <see cref="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdge"/>s of a triangle.
- </summary>
- <param name="triEdges">an array of the 3 quad edges in a triangle (in CCW order)</param>
- </member>
- <member name="T:NetTopologySuite.Triangulate.QuadEdge.LastFoundQuadEdgeLocator">
- <summary>
- Locates <see cref="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdge"/>s in a <see cref="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision"/>,
- optimizing the search by starting in the
- locality of the last edge found.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.LastFoundQuadEdgeLocator.Locate(NetTopologySuite.Triangulate.QuadEdge.Vertex)">
- <summary>
- Locates an edge e, such that either v is on e, or e is an edge of a triangle containing v.
- The search starts from the last located edge and proceeds on the general direction of v.
- </summary>
- </member>
- <member name="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdge">
- <summary>
- A class that represents the edge data structure which implements the quadedge algebra.
- The quadedge algebra was described in a well-known paper by Guibas and Stolfi,
- "Primitives for the manipulation of general subdivisions and the computation of Voronoi diagrams",
- <i>ACM Transactions on Graphics</i>, 4(2), 1985, 75-123.
- <para>
- Each edge object is part of a quartet of 4 edges,
- linked via their <tt>Rot</tt> references.
- Any edge in the group may be accessed using a series of <see cref="P:NetTopologySuite.Triangulate.QuadEdge.QuadEdge.Rot"/> operations.
- Quadedges in a subdivision are linked together via their <tt>Next</tt> references.
- The linkage between the quadedge quartets determines the topology
- of the subdivision.
- </para>
- <para>
- The edge class does not contain separate information for vertices or faces; a vertex is implicitly
- defined as a ring of edges (created using the <tt>Next</tt> field).
- </para>
- </summary>
- <author>David Skea</author>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdge.MakeEdge(NetTopologySuite.Triangulate.QuadEdge.Vertex,NetTopologySuite.Triangulate.QuadEdge.Vertex)">
- <summary>
- Creates a new QuadEdge quartet from <see cref="T:NetTopologySuite.Triangulate.QuadEdge.Vertex"/>o to <see cref="T:NetTopologySuite.Triangulate.QuadEdge.Vertex"/> d.
- </summary>
- <param name="o">the origin Vertex</param>
- <param name="d">the destination Vertex</param>
- <returns>the new QuadEdge quartet</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdge.Connect(NetTopologySuite.Triangulate.QuadEdge.QuadEdge,NetTopologySuite.Triangulate.QuadEdge.QuadEdge)">
- <summary>
- Creates a new QuadEdge connecting the destination of a to the origin of
- b, in such a way that all three have the same left face after the
- connection is complete. Additionally, the data pointers of the new edge
- are set.
- </summary>
- <returns>the connected edge</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdge.Splice(NetTopologySuite.Triangulate.QuadEdge.QuadEdge,NetTopologySuite.Triangulate.QuadEdge.QuadEdge)">
- <summary>
- Splices two edges together or apart.
- Splice affects the two edge rings around the origins of a and b, and, independently, the two
- edge rings around the left faces of <tt>a</tt> and <tt>b</tt>.
- In each case, (i) if the two rings are distinct,
- Splice will combine them into one, or (ii) if the two are the same ring, Splice will break it
- into two separate pieces. Thus, Splice can be used both to attach the two edges together, and
- to break them apart.
- </summary>
- <param name="a">an edge to splice</param>
- <param name="b">an edge to splice</param>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdge.Swap(NetTopologySuite.Triangulate.QuadEdge.QuadEdge)">
- <summary>
- Turns an edge counterclockwise inside its enclosing quadrilateral.
- </summary>
- <param name="e">the quadedge to turn</param>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdge.#ctor">
- <summary>
- Quadedges must be made using {@link makeEdge},
- to ensure proper construction.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdge.GetPrimary">
- <summary>
- Gets the primary edge of this quadedge and its <tt>sym</tt>.
- The primary edge is the one for which the origin
- and destination coordinates are ordered
- according to the standard <see cref="T:NetTopologySuite.Geometries.Coordinate"/> ordering
- </summary>
- <returns>the primary quadedge</returns>
- </member>
- <member name="P:NetTopologySuite.Triangulate.QuadEdge.QuadEdge.Data">
- <summary>
- Gets or sets the external data value for this edge.
- </summary>
- <remarks>
- an object containing external data
- </remarks>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdge.Delete">
- <summary>
- Marks this quadedge as being deleted.
- This does not free the memory used by
- this quadedge quartet, but indicates
- that this edge no longer participates
- in a subdivision.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Triangulate.QuadEdge.QuadEdge.IsLive">
- <summary>
- Tests whether this edge has been deleted.
- </summary>
- <returns>true if this edge has not been deleted.</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdge.SetNext(NetTopologySuite.Triangulate.QuadEdge.QuadEdge)">
- <summary>
- Sets the connected edge
- </summary>
- <param name="next">edge</param>
- </member>
- <member name="P:NetTopologySuite.Triangulate.QuadEdge.QuadEdge.Rot">
- <summary>
- Gets the dual of this edge, directed from its right to its left.
- </summary>
- <remarks>Gets or Sets the rotated edge</remarks>
- </member>
- <member name="P:NetTopologySuite.Triangulate.QuadEdge.QuadEdge.InvRot">
- <summary>
- Gets the dual of this edge, directed from its left to its right.
- </summary>
- <remarks>Gets the inverse rotated edge.</remarks>
- </member>
- <member name="P:NetTopologySuite.Triangulate.QuadEdge.QuadEdge.Sym">
- <summary>
- Gets the edge from the destination to the origin of this edge.
- </summary>
- <remarks>Gets the sym of the edge.</remarks>
- </member>
- <member name="P:NetTopologySuite.Triangulate.QuadEdge.QuadEdge.ONext">
- <summary>
- Gets the next CCW edge around the origin of this edge.
- </summary>
- <remarks>Gets the next linked edge.</remarks>
- </member>
- <member name="P:NetTopologySuite.Triangulate.QuadEdge.QuadEdge.OPrev">
- <summary>
- Gets the next CW edge around (from) the origin of this edge.
- </summary>
- <remarks>Gets the previous edge.</remarks>
- </member>
- <member name="P:NetTopologySuite.Triangulate.QuadEdge.QuadEdge.DNext">
- <summary>
- Gets the next CCW edge around (into) the destination of this edge.
- </summary>
- <remarks>Get the next destination edge.</remarks>
- </member>
- <member name="P:NetTopologySuite.Triangulate.QuadEdge.QuadEdge.DPrev">
- <summary>
- Gets the next CW edge around (into) the destination of this edge.
- </summary>
- <remarks>Get the previous destination edge.</remarks>
- </member>
- <member name="P:NetTopologySuite.Triangulate.QuadEdge.QuadEdge.LNext">
- <summary>
- Gets the CCW edge around the left face following this edge.
- </summary>
- <remarks>Gets the next left face edge.</remarks>
- </member>
- <member name="P:NetTopologySuite.Triangulate.QuadEdge.QuadEdge.LPrev">
- <summary>
- Gets the CCW edge around the left face before this edge.
- </summary>
- <remarks>Get the previous left face edge.</remarks>
- </member>
- <member name="P:NetTopologySuite.Triangulate.QuadEdge.QuadEdge.RNext">
- <summary>
- Gets the edge around the right face ccw following this edge.
- </summary>
- <remarks>Gets the next right face edge.</remarks>
- </member>
- <member name="P:NetTopologySuite.Triangulate.QuadEdge.QuadEdge.RPrev">
- <summary>
- Gets the edge around the right face ccw before this edge.
- </summary>
- <remarks>Gets the previous right face edge.</remarks>
- </member>
- <member name="P:NetTopologySuite.Triangulate.QuadEdge.QuadEdge.Orig">
- <summary>
- Gets or sets the vertex for the edge's origin
- </summary>
- <remarks>Gets the origin vertex</remarks>
- </member>
- <member name="P:NetTopologySuite.Triangulate.QuadEdge.QuadEdge.Dest">
- <summary>
- Gets or sets the vertex for the edge's destination
- </summary>
- <remarks>Gets the destination vertex</remarks>
- </member>
- <member name="P:NetTopologySuite.Triangulate.QuadEdge.QuadEdge.Length">
- <summary>
- Gets the length of the geometry of this quadedge.
- </summary>
- <remarks>Gets the length of the quadedge</remarks>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdge.EqualsNonOriented(NetTopologySuite.Triangulate.QuadEdge.QuadEdge)">
- <summary>
- Tests if this quadedge and another have the same line segment geometry,
- regardless of orientation.
- </summary>
- <param name="qe">a quadedge</param>
- <returns>true if the quadedges are based on the same line segment regardless of orientation</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdge.EqualsOriented(NetTopologySuite.Triangulate.QuadEdge.QuadEdge)">
- <summary>
- Tests if this quadedge and another have the same line segment geometry
- with the same orientation.
- </summary>
- <param name="qe">a quadedge</param>
- <returns>true if the quadedges are based on the same line segment</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdge.ToLineSegment">
- <summary>
- Creates a <see cref="T:NetTopologySuite.Geometries.LineSegment"/> representing the
- geometry of this edge.
- </summary>
- <returns>a LineSegment</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdge.ToString">
- <summary>
- Converts this edge to a WKT two-point <tt>LINESTRING</tt> indicating
- the geometry of this edge.
- </summary>
- <returns>a String representing this edge's geometry</returns>
- </member>
- <member name="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision">
- <summary>
- A class that contains the <see cref="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdge"/>s representing a planar
- subdivision that models a triangulation.
- The subdivision is constructed using the
- quadedge algebra defined in the class <see cref="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdge"/>.
- All metric calculations
- are done in the <see cref="T:NetTopologySuite.Triangulate.QuadEdge.Vertex"/> class.
- In addition to a triangulation, subdivisions
- support extraction of Voronoi diagrams.
- This is easily accomplished, since the Voronoi diagram is the dual
- of the Delaunay triangulation.
- <para>
- Subdivisions can be provided with a tolerance value. Inserted vertices which
- are closer than this value to vertices already in the subdivision will be
- ignored. Using a suitable tolerance value can prevent robustness failures
- from happening during Delaunay triangulation.
- </para>
- <para>
- Subdivisions maintain a <b>frame</b> triangle around the client-created
- edges. The frame is used to provide a bounded "container" for all edges
- within a TIN. Normally the frame edges, frame connecting edges, and frame
- triangles are not included in client processing.
- </para>
- </summary>
- <author>David Skea</author>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.GetTriangleEdges(NetTopologySuite.Triangulate.QuadEdge.QuadEdge,NetTopologySuite.Triangulate.QuadEdge.QuadEdge[])">
- <summary>
- Gets the edges for the triangle to the left of the given <see cref="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdge"/>.
- </summary>
- <param name="startQE" />
- <param name="triEdge" />
- <exception cref="T:System.ArgumentException">if the edges do not form a triangle</exception>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.#ctor(NetTopologySuite.Geometries.Envelope,System.Double)">
- <summary>
- Creates a new instance of a quad-edge subdivision based on a frame triangle
- that encloses a supplied bounding box. A new super-bounding box that
- contains the triangle is computed and stored.
- </summary>
- <param name="env">the bounding box to surround</param>
- <param name="tolerance">the tolerance value for determining if two sites are equal</param>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.CreateFrame(NetTopologySuite.Geometries.Envelope)">
- <summary>
- Creates a triangular frame which contains the vertices to be triangulated.
- <para/>
- The frame must be large enough so that its vertices are not in the circumcircle
- of any constructed triangle.
- This ensures that the vertices of the frame do not prevent the convex hull
- of the input vertices from forming edges of the triangulation.
- This is done by using a heuristic size
- of the frame. However, it may be that this is not fully robust,
- for input points which contain very narry triangles.
- </summary>
- <param name="env">The envelope of the input points</param>
- </member>
- <member name="P:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.Tolerance">
- <summary>
- Gets the vertex-equality tolerance value
- used in this subdivision
- </summary>
- <remarks>Gets the tolerance value</remarks>
- </member>
- <member name="P:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.Envelope">
- <summary>
- Gets the envelope of the Subdivision (including the frame).
- </summary>
- <remarks>Gets the envelope</remarks>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.GetEdges">
- <summary>
- Gets the collection of base <see cref="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdge"/>s (one for every pair of
- vertices which is connected).
- </summary>
- <returns>a collection of QuadEdges</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.SetLocator(NetTopologySuite.Triangulate.QuadEdge.IQuadEdgeLocator)">
- <summary>
- Sets the <see cref="T:NetTopologySuite.Triangulate.QuadEdge.IQuadEdgeLocator"/> to use for locating containing triangles
- in this subdivision.
- </summary>
- <param name="locator">a QuadEdgeLocator</param>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.MakeEdge(NetTopologySuite.Triangulate.QuadEdge.Vertex,NetTopologySuite.Triangulate.QuadEdge.Vertex)">
- <summary>
- Creates a new quadedge, recording it in the edges list.
- </summary>
- <param name="o">The origin vertex</param>
- <param name="d">The destination vertex</param>
- <returns>A new quadedge</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.Connect(NetTopologySuite.Triangulate.QuadEdge.QuadEdge,NetTopologySuite.Triangulate.QuadEdge.QuadEdge)">
- <summary>
- Creates a new QuadEdge connecting the destination of a to the origin of b,
- in such a way that all three have the same left face after the connection
- is complete. The quadedge is recorded in the edges list.
- </summary>
- <param name="a">A quadedge</param>
- <param name="b">A quadedge</param>
- <returns>A quadedge</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.Delete(NetTopologySuite.Triangulate.QuadEdge.QuadEdge)">
- <summary>
- Deletes a quadedge from the subdivision. Linked quadedges are updated to
- reflect the deletion.
- </summary>
- <param name="e">the quadedge to delete</param>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.LocateFromEdge(NetTopologySuite.Triangulate.QuadEdge.Vertex,NetTopologySuite.Triangulate.QuadEdge.QuadEdge)">
- <summary>
- Locates an edge of a triangle which contains a location
- specified by a Vertex v.
- The edge returned has the
- property that either v is on e, or e is an edge of a triangle containing v.
- The search starts from startEdge amd proceeds on the general direction of v.
- </summary>
- <remarks>
- This locate algorithm relies on the subdivision being Delaunay. For
- non-Delaunay subdivisions, this may loop for ever.
- </remarks>
- <param name="v">the location to search for</param>
- <param name="startEdge">an edge of the subdivision to start searching at</param>
- <returns>a QuadEdge which contains v, or is on the edge of a triangle containing v</returns>
- <exception cref="T:NetTopologySuite.Triangulate.QuadEdge.LocateFailureException">
- if the location algorithm fails to converge in a reasonable
- number of iterations
- </exception>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.Locate(NetTopologySuite.Triangulate.QuadEdge.Vertex)">
- <summary>
- Finds a quadedge of a triangle containing a location
- specified by a <see cref="T:NetTopologySuite.Triangulate.QuadEdge.Vertex"/>, if one exists.
- </summary>
- <param name="v">the vertex to locate</param>
- <returns>a quadedge on the edge of a triangle which touches or contains the location<br/>
- or null if no such triangle exists
- </returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.Locate(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Finds a quadedge of a triangle containing a location
- specified by a <see cref="T:NetTopologySuite.Geometries.Coordinate"/>, if one exists.
- </summary>
- <param name="p">the Coordinate to locate</param>
- <returns>a quadedge on the edge of a triangle which touches or contains the location,
- or null if no such triangle exists
- </returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.Locate(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Locates the edge between the given vertices, if it exists in the
- subdivision.
- </summary>
- <param name="p0">a coordinate</param>
- <param name="p1">another coordinate</param>
- <returns>the edge joining the coordinates, if present,
- or null if no such edge exists
- </returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.InsertSite(NetTopologySuite.Triangulate.QuadEdge.Vertex)">
- <summary>
- Inserts a new site into the Subdivision, connecting it to the vertices of
- the containing triangle (or quadrilateral, if the split point falls on an
- existing edge).
- </summary>
- <remarks>
- <para>
- This method does NOT maintain the Delaunay condition. If desired, this must
- be checked and enforced by the caller.
- </para>
- <para>
- This method does NOT check if the inserted vertex falls on an edge. This
- must be checked by the caller, since this situation may cause erroneous
- triangulation
- </para>
- </remarks>
- <param name="v">the vertex to insert</param>
- <returns>a new quad edge terminating in v</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.IsFrameEdge(NetTopologySuite.Triangulate.QuadEdge.QuadEdge)">
- <summary>
- Tests whether a QuadEdge is an edge incident on a frame triangle vertex.
- </summary>
- <param name="e">the edge to test</param>
- <returns>true if the edge is connected to the frame triangle</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.IsFrameBorderEdge(NetTopologySuite.Triangulate.QuadEdge.QuadEdge)">
- <summary>
- Tests whether a QuadEdge is an edge on the border of the frame facets and
- the internal facets. E.g. an edge which does not itself touch a frame
- vertex, but which touches an edge which does.
- </summary>
- <param name="e">the edge to test</param>
- <returns>true if the edge is on the border of the frame</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.IsFrameVertex(NetTopologySuite.Triangulate.QuadEdge.Vertex)">
- <summary>
- Tests whether a vertex is a vertex of the outer triangle.
- </summary>
- <param name="v">the vertex to test</param>
- <returns>true if the vertex is an outer triangle vertex</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.IsOnEdge(NetTopologySuite.Triangulate.QuadEdge.QuadEdge,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Tests whether a {@link Coordinate} lies on a {@link QuadEdge}, up to a
- tolerance determined by the subdivision tolerance.
- </summary>
- <param name="e">a QuadEdge</param>
- <param name="p">a point</param>
- <returns>true if the vertex lies on the edge</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.IsVertexOfEdge(NetTopologySuite.Triangulate.QuadEdge.QuadEdge,NetTopologySuite.Triangulate.QuadEdge.Vertex)">
- <summary>
- Tests whether a <see cref="T:NetTopologySuite.Triangulate.QuadEdge.Vertex"/> is the start or end vertex of a
- <see cref="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdge"/>, up to the subdivision tolerance distance.
- </summary>
- <param name="e" />
- <param name="v" />
- <returns>true if the vertex is a endpoint of the edge</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.GetVertices(System.Boolean)">
- <summary>
- Gets the unique <see cref="T:NetTopologySuite.Triangulate.QuadEdge.Vertex"/>es in the subdivision,
- including the frame vertices if desired.
- </summary>
- <param name="includeFrame">true if the frame vertices should be included</param>
- <returns>a collection of the subdivision vertices</returns>
- <see cref="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.GetVertexUniqueEdges(System.Boolean)"/>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.GetVertexUniqueEdges(System.Boolean)">
- <summary>
- Gets a collection of <see cref="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdge"/>s whose origin
- vertices are a unique set which includes
- all vertices in the subdivision.
- The frame vertices can be included if required.
- </summary>
- <remarks>
- This is useful for algorithms which require traversing the
- subdivision starting at all vertices.
- Returning a quadedge for each vertex
- is more efficient than
- the alternative of finding the actual vertices
- using <see cref="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.GetVertices(System.Boolean)"/> and then locating
- quadedges attached to them.
- </remarks>
- <param name="includeFrame">true if the frame vertices should be included</param>
- <returns>a collection of QuadEdge with the vertices of the subdivision as their origins</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.GetPrimaryEdges(System.Boolean)">
- <summary>
- Gets all primary quadedges in the subdivision.
- A primary edge is a <see cref="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdge"/>
- which occupies the 0'th position in its array of associated quadedges.
- These provide the unique geometric edges of the triangulation.
- </summary>
- <param name="includeFrame">true if the frame edges are to be included</param>
- <returns>a List of QuadEdges</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.GetFrameEdges">
- <summary>
- Gets the edges which touch frame vertices. The returned edges are oriented so
- that their origin is a frame vertex.
- </summary>
- <returns>The edges which touch the frame</returns>
- </member>
- <member name="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.TriangleCircumcentreVisitor">
- <summary>
- A TriangleVisitor which computes and sets the
- circumcentre as the origin of the dual
- edges originating in each triangle.
- </summary>
- <author>mbdavis</author>
- </member>
- <member name="F:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision._triEdges">
- <summary>
- The quadedges forming a single triangle.
- Only one visitor is allowed to be active at a
- time, so this is safe.
- </summary>
- </member>
- <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})">
- <summary>
- Stores the edges for a visited triangle. Also pushes sym (neighbour) edges
- on stack to visit later.
- </summary>
- <param name="edge" />
- <param name="edgeStack" />
- <param name="includeFrame" />
- <param name="visitedEdges"></param>
- <returns>the visited triangle edges,<br/>
- or <c>null</c> if the triangle should not be visited (for instance, if it is outer)
- </returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.GetTriangleEdges(System.Boolean)">
- <summary>
- Gets a list of the triangles
- in the subdivision, specified as
- an array of the primary quadedges around the triangle.
- </summary>
- <param name="includeFrame">true if the frame triangles should be included</param>
- <returns>a List of QuadEdge[3] arrays</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.GetTriangleVertices(System.Boolean)">
- <summary>
- Gets a list of the triangles in the subdivision,
- specified as an array of the triangle <see cref="T:NetTopologySuite.Triangulate.QuadEdge.Vertex"/>es.
- </summary>
- <param name="includeFrame">true if the frame triangles should be included</param>
- <returns>a List of Vertex[3] arrays</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.GetTriangleCoordinates(System.Boolean)">
- <summary>
- Gets the coordinates for each triangle in the subdivision as an array.
- </summary>
- <param name="includeFrame">true if the frame triangles should be included</param>
- <returns>a list of Coordinate[4] representing each triangle</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.GetEdges(NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
- Gets the geometry for the edges in the subdivision as a <see cref="T:NetTopologySuite.Geometries.MultiLineString"/>
- containing 2-point lines.
- </summary>
- <param name="geomFact">the GeometryFactory to use</param>
- <returns>a MultiLineString</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.GetTriangles(NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
- Gets the geometry for the triangles in a triangulated subdivision as a <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/>
- of triangular <see cref="N:NetTopologySuite.Triangulate.Polygon"/>s.
- </summary>
- <param name="geomFact">the GeometryFactory to use</param>
- <returns>a GeometryCollection of triangular Polygons</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.GetTriangles(System.Boolean,NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
- Gets the geometry for the triangles in a triangulated subdivision as a <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/>
- of triangular <see cref="T:NetTopologySuite.Geometries.Polygon"/>s, optionally including the frame triangles.
- </summary>
- <param name="includeFrame">A flag indicating if the frame triangles should be included</param>
- <param name="geomFact">The <c>GeometryFactory</c> to use</param>
- <returns>A <c>GeometryCollection</c> of triangular polygons</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.GetVoronoiDiagram(NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
- Gets the cells in the Voronoi diagram for this triangulation.
- The cells are returned as a <see cref="T:NetTopologySuite.Geometries.GeometryCollection" /> of <see cref="N:NetTopologySuite.Triangulate.Polygon"/>s
- </summary>
- <remarks>
- The userData of each polygon is set to be the <see cref="T:NetTopologySuite.Geometries.Coordinate" />
- of the cell site. This allows easily associating external
- data associated with the sites to the cells.
- </remarks>
- <param name="geomFact">a geometry factory</param>
- <returns>a GeometryCollection of Polygons</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.GetVoronoiCellPolygons(NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
- Gets a List of <see cref="N:NetTopologySuite.Triangulate.Polygon"/>s for the Voronoi cells
- of this triangulation.
- </summary>
- <remarks>
- The UserData of each polygon is set to be the <see cref="T:NetTopologySuite.Geometries.Coordinate"/>
- of the cell site. This allows easily associating external
- data associated with the sites to the cells.
- </remarks>
- <param name="geomFact">a geometry factory</param>
- <returns>a List of Polygons</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.GetVoronoiCellPolygon(NetTopologySuite.Triangulate.QuadEdge.QuadEdge,NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
- Gets the Voronoi cell around a site specified
- by the origin of a QuadEdge.
- </summary>
- <remarks>
- The userData of the polygon is set to be the <see cref="T:NetTopologySuite.Geometries.Coordinate" />
- of the site. This allows attaching external
- data associated with the site to this cell polygon.
- </remarks>
- <param name="qe">a quadedge originating at the cell site</param>
- <param name="geomFact">a factory for building the polygon</param>
- <returns>a polygon indicating the cell extent</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.IsDelaunay">
- <summary>
- Tests whether a subdivision is a valid Delaunay Triangulation.
- This is the case iff every edge is locally Delaunay, meaning that
- the apex of one adjacent triangle is not inside the circumcircle
- of the other adjacent triangle.
- </summary>
- </member>
- <member name="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeTriangle">
- <summary>
- Models a triangle formed from <see cref="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdge"/>s in a <see cref="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision"/>
- which forms a triangulation. The class provides methods to access the
- topological and geometric properties of the triangle and its neighbours in
- the triangulation. Triangle vertices are ordered in CCW orientation in the
- structure.
- </summary>
- <remarks>
- QuadEdgeTriangles support having an external data attribute attached to them.
- Alternatively, this class can be subclassed and attributes can
- be defined in the subclass. Subclasses will need to define
- their own <c>BuilderVisitor</c> class
- and <c>CreateOn</c> method.
- </remarks>
- <author>Martin Davis</author>
- <version>1.0</version>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeTriangle.CreateOn(NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision)">
- <summary>
- Creates <see cref="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeTriangle"/>s for all facets of a
- <see cref="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision"/> representing a triangulation.
- The <tt>data</tt> attributes of the <see cref="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdge"/>s in the subdivision
- will be set to point to the triangle which contains that edge.
- This allows tracing the neighbour triangles of any given triangle.
- </summary>
- <param name="subdiv">The QuadEdgeSubdivision to create the triangles on.</param>
- <returns>A List of the created QuadEdgeTriangles</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeTriangle.Contains(NetTopologySuite.Triangulate.QuadEdge.Vertex[],NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Tests whether the point pt is contained in the triangle defined by 3 <see cref="T:NetTopologySuite.Triangulate.QuadEdge.Vertex"/>es.
- </summary>
- <param name="tri">an array containing at least 3 Vertexes</param>
- <param name="pt">the point to test</param>
- <returns>true if the point is contained in the triangle</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeTriangle.Contains(NetTopologySuite.Triangulate.QuadEdge.QuadEdge[],NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Tests whether the point pt is contained in the triangle defined by 3 <see cref="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdge"/>es.
- </summary>
- <param name="tri">an array containing at least 3 QuadEdges</param>
- <param name="pt">the point to test</param>
- <returns>true if the point is contained in the triangle</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeTriangle.#ctor(NetTopologySuite.Triangulate.QuadEdge.QuadEdge[])">
- <summary>
- Creates a new triangle from the given edges.
- </summary>
- <param name="edge">An array of the edges of the triangle in CCW order</param>
- </member>
- <member name="P:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeTriangle.Data">
- <summary>
- Gets or sets the external data value for this triangle.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeTriangle.GetVertices">
- <summary>
- Gets the vertices for this triangle.
- </summary>
- <returns>a new array containing the triangle vertices</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeTriangle.GetEdgeIndex(NetTopologySuite.Triangulate.QuadEdge.QuadEdge)">
- <summary>
- Gets the index for the given edge of this triangle
- </summary>
- <param name="e">a QuadEdge</param>
- <returns>the index of the edge in this triangle,<br/>
- or -1 if the edge is not an edge of this triangle
- </returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeTriangle.GetEdgeIndex(NetTopologySuite.Triangulate.QuadEdge.Vertex)">
- <summary>
- Gets the index for the edge that starts at vertex v.
- </summary>
- <param name="v">the vertex to find the edge for</param>
- <returns>the index of the edge starting at the vertex, <br/>
- or -1 if the vertex is not in the triangle
- </returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeTriangle.ToString">
- <inheritdoc cref="M:System.Object.ToString"/>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeTriangle.IsBorder">
- <summary>
- Tests whether this triangle is adjacent to the outside of the subdivision.
- </summary>
- <returns>true if the triangle is adjacent to the subdivision exterior</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeTriangle.GetTrianglesAdjacentToVertex(System.Int32)">
- <summary>
- Gets the triangles which are adjacent (include) to a
- given vertex of this triangle.
- </summary>
- <param name="vertexIndex">The vertex to query</param>
- <returns>A list of the vertex-adjacent triangles</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeTriangle.GetNeighbours">
- <summary>
- Gets the neighbours of this triangle. If there is no neighbour triangle, the array element is
- <c>null</c>
- </summary>
- <returns>an array containing the 3 neighbours of this triangle</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeUtil.FindEdgesIncidentOnOrigin(NetTopologySuite.Triangulate.QuadEdge.QuadEdge)">
- <summary>
- Gets all edges which are incident on the origin of the given edge.
- </summary>
- <param name="start">the edge to start at</param>
- <returns>a List of edges which have their origin at the origin of the given
- edge</returns>
- </member>
- <member name="T:NetTopologySuite.Triangulate.QuadEdge.TrianglePredicate">
- <summary>
- Algorithms for computing values and predicates
- associated with triangles.
- </summary>
- <remarks>
- For some algorithms extended-precision
- implementations are provided, which are more robust
- (i.e. they produce correct answers in more cases).
- Also, some more robust formulations of
- some algorithms are provided, which utilize
- normalization to the origin.
- </remarks>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.TrianglePredicate.IsInCircleNonRobust(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Tests if a point is inside the circle defined by
- the triangle with vertices a, b, c (oriented counter-clockwise).
- This test uses simple
- double-precision arithmetic, and thus is not 100% robust.
- </summary>
- <param name="a">A vertex of the triangle</param>
- <param name="b">A vertex of the triangle</param>
- <param name="c">A vertex of the triangle</param>
- <param name="p">The point to test</param>
- <returns>true if this point is inside the circle defined by the points a, b, c</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.TrianglePredicate.IsInCircleNormalized(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Tests if a point is inside the circle defined by
- the triangle with vertices a, b, c (oriented counter-clockwise).
- </summary>
- <remarks>
- <para> This test uses simple
- double-precision arithmetic, and thus is not 100% robust.
- However, by using normalization to the origin
- it provides improved robustness and increased performance.</para>
- <para>Based on code by J.R.Shewchuk.</para>
- </remarks>
- <param name="a">A vertex of the triangle</param>
- <param name="b">A vertex of the triangle</param>
- <param name="c">A vertex of the triangle</param>
- <param name="p">The point to test</param>
- <returns>true if this point is inside the circle defined by the points a, b, c</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.TrianglePredicate.TriArea(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Computes twice the area of the oriented triangle (a, b, c), i.e., the area is positive if the
- triangle is oriented counterclockwise.
- </summary>
- <param name="a">A vertex of the triangle</param>
- <param name="b">A vertex of the triangle</param>
- <param name="c">A vertex of the triangle</param>
- <returns>The area of the triangle defined by the points a, b, c</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.TrianglePredicate.IsInCircleRobust(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Tests if a point is inside the circle defined by
- the triangle with vertices a, b, c (oriented counter-clockwise).
- </summary>
- <remarks>
- This method uses more robust computation.
- </remarks>
- <param name="a">A vertex of the triangle</param>
- <param name="b">A vertex of the triangle</param>
- <param name="c">A vertex of the triangle</param>
- <param name="p">The point to test</param>
- <returns>true if this point is inside the circle defined by the points a, b, c</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.TrianglePredicate.IsInCircleDDFast(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Tests if a point is inside the circle defined by
- the triangle with vertices a, b, c (oriented counter-clockwise).
- </summary>
- <remarks>
- The computation uses <see cref="T:NetTopologySuite.Mathematics.DD"/> arithmetic for robustness, but a faster approach.
- </remarks>
- <param name="a">A vertex of the triangle</param>
- <param name="b">A vertex of the triangle</param>
- <param name="c">A vertex of the triangle</param>
- <param name="p">The point to test</param>
- <returns>true if this point is inside the circle defined by the points a, b, c</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.TrianglePredicate.TriAreaDDFast(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Computes twice the area of the oriented triangle (a, b, c), i.e., the area
- is positive if the triangle is oriented counterclockwise.
- </summary>
- <remarks>
- The computation uses {@link DD} arithmetic for robustness.
- </remarks>
- <param name="a">a vertex of the triangle</param>
- <param name="b">a vertex of the triangle</param>
- <param name="c">a vertex of the triangle</param>
- <returns>The area of a triangle defined by the points a, b and c</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.TrianglePredicate.IsInCircleDDNormalized(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
-
- </summary>
- <param name="a"></param>
- <param name="b"></param>
- <param name="c"></param>
- <param name="p"></param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.TrianglePredicate.IsInCircleCC(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Computes the inCircle test using distance from the circumcentre.
- Uses standard double-precision arithmetic.
- </summary>
- <remarks>
- In general this doesn't
- appear to be any more robust than the standard calculation. However, there
- is at least one case where the test point is far enough from the
- circumcircle that this test gives the correct answer.
- <pre>
- LINESTRING (1507029.9878 518325.7547, 1507022.1120341457 518332.8225183258,
- 1507029.9833 518325.7458, 1507029.9896965567 518325.744909031)
- </pre>
- </remarks>
- <param name="a">A vertex of the triangle</param>
- <param name="b">A vertex of the triangle</param>
- <param name="c">A vertex of the triangle</param>
- <param name="p">The point to test</param>
- <returns>The area of a triangle defined by the points a, b and c</returns>
- </member>
- <member name="T:NetTopologySuite.Triangulate.QuadEdge.Vertex">
- <summary>
- Models a site (node) in a <see cref="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision"/>.
- The sites can be points on a line string representing a
- linear site.<para/>
- The vertex can be considered as a vector with a norm, length, inner product, cross
- product, etc. Additionally, point relations (e.g., is a point to the left of a line, the circle
- defined by this point and two others, etc.) are also defined in this class.
- <para/>
- It is common to want to attach user-defined data to
- the vertices of a subdivision.
- One way to do this is to subclass <tt>Vertex</tt>
- to carry any desired information.
- </summary>
- <author>David Skea</author>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.Vertex.#ctor(System.Double,System.Double)">
- <summary>
- Creates an instance of this class using the given x- and y-ordinate valuse
- </summary>
- <param name="x">x-ordinate value</param>
- <param name="y">y-ordinate value</param>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.Vertex.#ctor(System.Double,System.Double,System.Double)">
- <summary>
- Creates an instance of this class using the given x-, y- and z-ordinate values
- </summary>
- <param name="x">x-ordinate value</param>
- <param name="y">y-ordinate value</param>
- <param name="z">z-ordinate value</param>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.Vertex.#ctor(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Creates an instance of this class using a clone of the given <see cref="P:NetTopologySuite.Triangulate.QuadEdge.Vertex.Coordinate"/>.
- </summary>
- <param name="p">The coordinate</param>
- </member>
- <member name="P:NetTopologySuite.Triangulate.QuadEdge.Vertex.X">
- <summary>
- Gets the x-ordinate value
- </summary>
- </member>
- <member name="P:NetTopologySuite.Triangulate.QuadEdge.Vertex.Y">
- <summary>
- Gets the y-ordinate value
- </summary>
- </member>
- <member name="P:NetTopologySuite.Triangulate.QuadEdge.Vertex.Z">
- <summary>
- Gets the z-ordinate value
- </summary>
- </member>
- <member name="P:NetTopologySuite.Triangulate.QuadEdge.Vertex.Coordinate">
- <summary>
- Gets the coordinate
- </summary>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.Vertex.ToString">
- <inheritdoc cref="M:System.Object.ToString"/>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.Vertex.Equals(NetTopologySuite.Triangulate.QuadEdge.Vertex)">
- <inheritdoc cref="M:System.IEquatable`1.Equals(`0)"/>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.Vertex.CrossProduct(NetTopologySuite.Triangulate.QuadEdge.Vertex)">
- <summary>
- Computes the cross product k = u X v.
- </summary>
- <param name="v">a vertex</param>
- <returns>returns the magnitude of u X v</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.Vertex.Dot(NetTopologySuite.Triangulate.QuadEdge.Vertex)">
- <summary>
- Computes the inner or dot product
- </summary>
- <param name="v">A vertex</param>
- <returns>The dot product u.v</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.Vertex.Times(System.Double)">
- <summary>
- Computes the scalar product c(v)
- </summary>
- <param name="c">A vertex</param>
- <returns>The scaled vector</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.Vertex.IsInCircle(NetTopologySuite.Triangulate.QuadEdge.Vertex,NetTopologySuite.Triangulate.QuadEdge.Vertex,NetTopologySuite.Triangulate.QuadEdge.Vertex)">
- <summary>
- Tests if this is inside the circle defined by the points a, b, c. This test uses simple
- double-precision arithmetic, and thus may not be robust.
- </summary>
- <param name="a">A vertex of the triangle</param>
- <param name="b">A vertex of the triangle</param>
- <param name="c">A vertex of the triangle</param>
- <returns>true if this vertex is inside the circumcircle (a, b, c)</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.Vertex.IsCcw(NetTopologySuite.Triangulate.QuadEdge.Vertex,NetTopologySuite.Triangulate.QuadEdge.Vertex)">
- <summary>
- Tests whether the triangle formed by this vertex and two
- other vertices is in CCW orientation.
- </summary>
- <param name="b">a vertex</param>
- <param name="c">a vertex</param>
- <returns>true if the triangle is oriented CCW</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.Vertex.CircumRadiusRatio(NetTopologySuite.Triangulate.QuadEdge.Vertex,NetTopologySuite.Triangulate.QuadEdge.Vertex)">
- <summary>
- Computes the value of the ratio of the circumradius to shortest edge. If smaller than some
- given tolerance B, the associated triangle is considered skinny. For an equal lateral
- triangle this value is 0.57735. The ratio is related to the minimum triangle angle theta by:
- circumRadius/shortestEdge = 1/(2sin(theta)).
- </summary>
- <param name="b">second vertex of the triangle</param>
- <param name="c">third vertex of the triangle</param>
- <returns>ratio of circumradius to shortest edge.</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.Vertex.MidPoint(NetTopologySuite.Triangulate.QuadEdge.Vertex)">
- <summary>
- returns a new vertex that is mid-way between this vertex and another end point.
- </summary>
- <param name="a">the other end point.</param>
- <returns>the point mid-way between this and that.</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.Vertex.CircleCenter(NetTopologySuite.Triangulate.QuadEdge.Vertex,NetTopologySuite.Triangulate.QuadEdge.Vertex)">
- <summary>
- Computes the centre of the circumcircle of this vertex and two others.
- </summary>
- <param name="b" />
- <param name="c" />
- <returns>the Coordinate which is the circumcircle of the 3 points.</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.Vertex.InterpolateZValue(NetTopologySuite.Triangulate.QuadEdge.Vertex,NetTopologySuite.Triangulate.QuadEdge.Vertex,NetTopologySuite.Triangulate.QuadEdge.Vertex)">
- <summary>
- For this vertex enclosed in a triangle defined by three vertices v0, v1 and v2, interpolate
- a z value from the surrounding vertices.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.Vertex.InterpolateZ(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Interpolates the Z-value (height) of a point enclosed in a triangle
- whose vertices all have Z values.
- The containing triangle must not be degenerate
- (in other words, the three vertices must enclose a
- non-zero area).
- </summary>
- <param name="p">The point to interpolate the Z value of</param>
- <param name="v0">A vertex of a triangle containing the <paramref name="p"/></param>
- <param name="v1">A vertex of a triangle containing the <paramref name="p"/></param>
- <param name="v2">A vertex of a triangle containing the <paramref name="p"/></param>
- <returns>The interpolated Z-value (height) of the point</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.QuadEdge.Vertex.InterpolateZ(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Computes the interpolated Z-value for a point p lying on the segment p0-p1
- </summary>
- <param name="p">The point to interpolate the Z value of</param>
- <param name="p0">A vertex of the segment <paramref name="p"/> is lying on</param>
- <param name="p1">A vertex of the segment <paramref name="p"/> is lying on</param>
- <returns>The interpolated Z-value (height) of the point</returns>
- </member>
- <member name="T:NetTopologySuite.Triangulate.Segment">
- <summary>
- Models a constraint segment in a triangulation.
- A constraint segment is an oriented straight line segment between a start point
- and an end point.
- </summary>
- <author>David Skea</author>
- <author>Martin Davis</author>
-
- </member>
- <member name="M:NetTopologySuite.Triangulate.Segment.#ctor(System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)">
- <summary>
- Creates a new instance for the given ordinates.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Segment.#ctor(System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Object)">
- <summary>
- Creates a new instance for the given ordinates, with associated external data.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Segment.#ctor(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,System.Object)">
- <summary>
- Creates a new instance for the given points, with associated external data.
- </summary>
- <param name="p0">the start point</param>
- <param name="p1">the end point</param>
- <param name="data">an external data object</param>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Segment.#ctor(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Creates a new instance for the given points.
- </summary>
- <param name="p0">the start point</param>
- <param name="p1">the end point</param>
- </member>
- <member name="P:NetTopologySuite.Triangulate.Segment.Start">
- <summary>
- Gets the start coordinate of the segment
- </summary>
- <remarks>a Coordinate</remarks>
- </member>
- <member name="P:NetTopologySuite.Triangulate.Segment.End">
- <summary>
- Gets the end coordinate of the segment
- </summary>
- <remarks>a Coordinate</remarks>
- </member>
- <member name="P:NetTopologySuite.Triangulate.Segment.StartX">
- <summary>
- Gets the start X ordinate of the segment
- </summary>
- <remarks>the X ordinate value</remarks>
- </member>
- <member name="P:NetTopologySuite.Triangulate.Segment.StartY">
- <summary>
- Gets the start Y ordinate of the segment
- </summary>
- <remarks>the Y ordinate value</remarks>
- </member>
- <member name="P:NetTopologySuite.Triangulate.Segment.StartZ">
- <summary>
- Gets the start Z ordinate of the segment
- </summary>
- <remarks>the Z ordinate value</remarks>
- </member>
- <member name="P:NetTopologySuite.Triangulate.Segment.EndX">
- <summary>
- Gets the end X ordinate of the segment
- </summary>
- <remarks>the X ordinate value</remarks>
- </member>
- <member name="P:NetTopologySuite.Triangulate.Segment.EndY">
- <summary>
- Gets the end Y ordinate of the segment
- </summary>
- <remarks>he Y ordinate value</remarks>
- </member>
- <member name="P:NetTopologySuite.Triangulate.Segment.EndZ">
- <summary>
- Gets the end Z ordinate of the segment
- </summary>
- <remarks>the Z ordinate value</remarks>
- </member>
- <member name="P:NetTopologySuite.Triangulate.Segment.LineSegment">
- <summary>
- Gets a <tt>LineSegment</tt> modelling this segment.
- </summary>
- <remarks>a LineSegment</remarks>
- </member>
- <member name="P:NetTopologySuite.Triangulate.Segment.Data">
- <summary>
- Gets or sets the external data associated with this segment
- </summary>
- <remarks>a data object</remarks>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Segment.EqualsTopologically(NetTopologySuite.Triangulate.Segment)">
- <summary>
- Determines whether two segments are topologically equal.
- I.e. equal up to orientation.
- </summary>
- <param name="s">a segment</param>
- <returns>true if the segments are topologically equal</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Segment.Intersection(NetTopologySuite.Triangulate.Segment)">
- <summary>
- Computes the intersection point between this segment and another one.
- </summary>
- <param name="s">a segment</param>
- <returns>the intersection point, or <c>null</c> if there is none</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Segment.ToString">
- <summary>
- Computes a string representation of this segment.
- </summary>
- <returns>a string</returns>
- </member>
- <member name="T:NetTopologySuite.Triangulate.SplitSegment">
- <summary>
- Models a constraint segment which can be split in two in various ways,
- according to certain geometric constraints.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Triangulate.SplitSegment.PointAlongReverse(NetTopologySuite.Geometries.LineSegment,System.Double)">
- <summary>
- Computes the {@link Coordinate} that lies a given fraction along the line defined by the
- reverse of the given segment. A fraction of <c>0.0</c> returns the end point of the
- segment; a fraction of <c>1.0</c> returns the start point of the segment.
- </summary>
- <param name="seg">the LineSegment</param>
- <param name="segmentLengthFraction">the fraction of the segment length along the line</param>
- <returns>the point at that distance</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.SplitSegment.#ctor(NetTopologySuite.Geometries.LineSegment)">
- <summary>
- Creates an instance of this class using the provided <c>LineSegment</c>
- </summary>
- <param name="seg">A <c>LineSegment</c></param>
- </member>
- <member name="P:NetTopologySuite.Triangulate.SplitSegment.MinimumLength">
- <summary>
- Gets or sets a value indicating the minimum length of a segment
- </summary>
- </member>
- <member name="P:NetTopologySuite.Triangulate.SplitSegment.SplitPoint">
- <summary>
- Gets a value indicating the computed split point
- </summary>
- </member>
- <member name="M:NetTopologySuite.Triangulate.SplitSegment.SplitAt(System.Double,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Computes the <see cref="P:NetTopologySuite.Triangulate.SplitSegment.SplitPoint"/> using the provided <paramref name="length"/> and <paramref name="endPt"/>.
- </summary>
- <param name="length">The length to split at</param>
- <param name="endPt">The <c>Coordinate</c> to split at</param>
- </member>
- <member name="M:NetTopologySuite.Triangulate.SplitSegment.SplitAt(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Computes the <see cref="P:NetTopologySuite.Triangulate.SplitSegment.SplitPoint"/> close to the given <c>Coordinate</c>,
- ensuring that <see cref="P:NetTopologySuite.Triangulate.SplitSegment.MinimumLength"/> is not violated.
- </summary>
- <param name="pt">The <c>Coordinate</c> to split at</param>
- </member>
- <member name="T:NetTopologySuite.Triangulate.Tri.Tri">
- <summary>
- A memory-efficient representation of a triangle in a triangulation.
- Contains three vertices, and links to adjacent <c>Tri</c>s for each edge.
- <c>Tri</c>s are constructed independently, and if needed linked
- into a triangulation using <see cref="T:NetTopologySuite.Triangulate.Tri.TriangulationBuilder"/>.
- <para/>
- An edge of a Tri in a triangulation is called a boundary edge
- if it has no adjacent triangle.<br/>
- The set of Tris containing boundary edges are called the triangulation border.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Tri.Tri.ToGeometry(System.Collections.Generic.ICollection{NetTopologySuite.Triangulate.Tri.Tri},NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
- Creates a <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/> of <see cref="N:NetTopologySuite.Triangulate.Polygon"/>s
- representing the triangles in a list.
- </summary>
- <param name="tris">A collection of <c>Tri</c>s</param>
- <param name="geomFact">The GeometryFactory to use</param>
- <returns>The <c>Polygon</c>s for the triangles</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Tri.Tri.AreaOf(System.Collections.Generic.IEnumerable{NetTopologySuite.Triangulate.Tri.Tri})">
- <summary>
- Computes the area of a set of Tris.
- </summary>
- <param name="triList">A set of tris</param>
- <returns>The total area of the triangles</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Tri.Tri.Validate(System.Collections.Generic.IEnumerable{NetTopologySuite.Triangulate.Tri.Tri})">
- <summary>
- Validates a list of <c>Tri</c>s.
- </summary>
- <param name="triList">The list of <c>Tri</c>s to validate</param>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Tri.Tri.Create(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Creates a triangle with the given vertices.
- The vertices should be oriented clockwise.
- </summary>
- <param name="p0">The first triangle vertex</param>
- <param name="p1">The second triangle vertex</param>
- <param name="p2">The third triangle vertex</param>
- <returns>The created trianlge</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Tri.Tri.Create(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Creates a triangle from an array with three vertex coordinates.
- The vertices should be oriented clockwise.
- </summary>
- <param name="pts">The array of vertex coordinates</param>
- <returns>The created triangle</returns>
- </member>
- <member name="P:NetTopologySuite.Triangulate.Tri.Tri.P0">
- <summary>
- Gets a value indicating the 1st point of this <c>Tri</c>.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Triangulate.Tri.Tri.P1">
- <summary>
- Gets a value indicating the 2nd point of this <c>Tri</c>.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Triangulate.Tri.Tri.P2">
- <summary>
- Gets a value indicating the 3rd point of this <c>Tri</c>.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Triangulate.Tri.Tri.Tri0">
- <summary>
- 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.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Triangulate.Tri.Tri.Tri1">
- <summary>
- 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.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Triangulate.Tri.Tri.Tri2">
- <summary>
- 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.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Tri.Tri.#ctor(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Creates a triangle with the given vertices.
- The vertices should be oriented clockwise.
- </summary>
- <param name="p0">The first triangle vertex</param>
- <param name="p1">The second triangle vertex</param>
- <param name="p2">The third triangle vertex</param>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Tri.Tri.SetAdjacent(NetTopologySuite.Triangulate.Tri.Tri,NetTopologySuite.Triangulate.Tri.Tri,NetTopologySuite.Triangulate.Tri.Tri)">
- <summary>
- Sets the adjacent triangles.<br/>
- The vertices of the adjacent triangles are
- assumed to match the appropriate vertices in this triangle.
- </summary>
- <param name="tri0">The triangle adjacent to edge 0</param>
- <param name="tri1">The triangle adjacent to edge 1</param>
- <param name="tri2">The triangle adjacent to edge 2</param>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Tri.Tri.SetAdjacent(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Triangulate.Tri.Tri)">
- <summary>
- Sets the triangle adjacent to the edge originating
- at a given vertex.<br/>
- The vertices of the adjacent triangles are
- assumed to match the appropriate vertices in this triangle.
- </summary>
- <param name="pt">The edge start point</param>
- <param name="tri">The adjacent triangle</param>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Tri.Tri.SetTri(System.Int32,NetTopologySuite.Triangulate.Tri.Tri)">
- <summary>
- Sets the triangle adjacent to an edge.<br/>
- The vertices of the adjacent triangle are
- assumed to match the appropriate vertices in this triangle.
- </summary>
- <param name="edgeIndex">The edge triangle is adjacent to</param>
- <param name="tri">The adjacent triangle</param>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Tri.Tri.Split(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Splits a triangle by a point located inside the triangle.
- Creates the three new resulting triangles with adjacent links
- set correctly.
- Returns the new triangle whose 0'th vertex is the splitting point.
- </summary>
- <param name="p">The point to insert</param>
- <returns>The new triangle whose 0'th vertex is <paramref name="p"/></returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Tri.Tri.Flip(System.Int32)">
- <summary>
- Interchanges the vertices of this triangle and a neighbor
- so that their common edge
- becomes the the other diagonal of the quadrilateral they form.
- Neighbour triangle links are modified accordingly.
- </summary>
- <param name="index">The index of the adjacent tri to flip with</param>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Tri.Tri.Replace(NetTopologySuite.Triangulate.Tri.Tri,NetTopologySuite.Triangulate.Tri.Tri)">
- <summary>
- Replaces an adjacent triangle with a different one.
- </summary>
- <param name="triOld">An adjacent triangle</param>
- <param name="triNew">The triangle to replace with</param>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Tri.Tri.Degree(System.Int32,System.Collections.Generic.IList{NetTopologySuite.Triangulate.Tri.Tri})">
- <summary>
- Computes the degree of a Tri vertex, which is the number of tris containing it.
- This must be done by searching the entire triangulation,
- since the containing tris may not be adjacent or edge-connected.
- </summary>
- <param name="index">The vertex index</param>
- <param name="triList">The triangulation</param>
- <returns>The degree of the vertex</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Tri.Tri.Remove(System.Collections.Generic.IList{NetTopologySuite.Triangulate.Tri.Tri})">
- <summary>
- Removes this tri from the triangulation containing it.
- All links between the tri and adjacent ones are nulled.
- </summary>
- <param name="triList">The triangulation</param>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Tri.Tri.Remove">
- <summary>
- Removes this triangle from a triangulation.
- All adjacent references and the references to this
- Tri in the adjacent Tris are set to <c>null</c>.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Tri.Tri.GetAdjacentTris(NetTopologySuite.Triangulate.Tri.Tri,System.Int32,System.Int32)">
- <summary>
- Gets the triangles adjacent to the quadrilateral
- formed by this triangle and an adjacent one.
- The triangles are returned in the following order:
- <para/>
- Order:
- <list type="number">
- <item><description>opp0-adj0 edge</description></item>
- <item><description>opp0-adj1 edge</description></item>
- <item><description>opp1-adj0 edge</description></item>
- <item><description>opp1-adj1 edge</description></item>
- </list>
- </summary>
- <param name="triAdj">An adjacent triangle</param>
- <param name="index">The index of the common edge in this triangle</param>
- <param name="indexAdj">The index of the common edge in the adjacent triangle</param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Tri.Tri.Validate">
- <summary>
- Validates that a <see cref="T:NetTopologySuite.Triangulate.Tri.Tri"/> is correct.
- Currently just checks that orientation is CW.
- </summary>
- <exception cref="T:System.ArgumentException">Thrown if <see cref="T:NetTopologySuite.Triangulate.Tri.Tri"/> is not valid</exception>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Tri.Tri.ValidateAdjacent(System.Int32)">
- <summary>
- Validates that the vertices of an adjacent linked triangle are correct.
- </summary>
- <param name="index">The index of the adjacent triangle</param>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Tri.Tri.GetCoordinate(System.Int32)">
- <summary>
- Gets the coordinate for a vertex.
- This is the start vertex of the edge.
- </summary>
- <param name="index">The vertex (edge) index</param>
- <returns>The vertex coordinate</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Tri.Tri.GetIndex(NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Gets the index of the triangle vertex which has a given coordinate (if any).
- This is also the index of the edge which originates at the vertex.
- </summary>
- <param name="p">The coordinate to find</param>
- <returns>The vertex index, or -1 if it is not in the triangle</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Tri.Tri.GetIndex(NetTopologySuite.Triangulate.Tri.Tri)">
- <summary>
- Gets the edge index which a triangle is adjacent to (if any),
- based on the adjacent triangle link.
- </summary>
- <param name="tri">The <c>Tri</c> to find</param>
- <returns>The index of the edge adjacent to the triangle, or -1 if not found</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Tri.Tri.GetAdjacent(System.Int32)">
- <summary>
- Gets the triangle adjacent to an edge.
- </summary>
- <param name="index">The edge index</param>
- <returns>The adjacent triangle (may be <c>null</c>)</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Tri.Tri.HasAdjacent">
- <summary>
- Tests if this tri has any adjacent tris.
- </summary>
- <returns><c>true</c> if there is at least one adjacent tri</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Tri.Tri.HasAdjacent(System.Int32)">
- <summary>
- Tests if there is an adjacent triangle to an edge.
- </summary>
- <param name="index">The edge index</param>
- <returns><c>true</c> if there is a triangle adjacent to edge</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Tri.Tri.IsAdjacent(NetTopologySuite.Triangulate.Tri.Tri)">
- <summary>
- Tests if a triangle is adjacent to some edge of this triangle.
- </summary>
- <param name="tri">The triangle to test</param>
- <returns><c>true</c> if the triangle is adjacent</returns>
- <see cref="M:NetTopologySuite.Triangulate.Tri.Tri.GetIndex(NetTopologySuite.Triangulate.Tri.Tri)"/>
- </member>
- <member name="P:NetTopologySuite.Triangulate.Tri.Tri.NumAdjacent">
- <summary>
- Computes the number of triangle adjacent to this triangle.
- This is a number in the range [0,2].</summary>
- <returns>The number of adjacent triangles</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Tri.Tri.IsInteriorVertex(System.Int32)">
- <summary>
- Tests if a tri vertex is interior.
- A vertex of a triangle is interior if it
- is fully surrounded by other triangles.
- </summary>
- <param name="index">The vertex index</param>
- <returns><c>true</c> if the vertex is interior</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Tri.Tri.IsBorder">
- <summary>
- Tests if a tri contains a boundary edge,
- and thus on the border of the triangulation containing it.
- </summary>
- <returns><c>true</c> if the tri is on the border of the triangulation</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Tri.Tri.IsBoundary(System.Int32)">
- <summary>
- Tests if an edge is on the boundary of a triangulation.
- </summary>
- <param name="index">The index of an edge</param>
- <returns><c>true</c> if the edge is on the boundary</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Tri.Tri.Next(System.Int32)">
- <summary>
- Computes the vertex or edge index which is the next one
- (counter-clockwise) around the triangle.
- </summary>
- <param name="index">The index</param>
- <returns>The next index value</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Tri.Tri.Prev(System.Int32)">
- <summary>
- Computes the vertex or edge index which is the previous one
- (counter-clockwise) around the triangle.
- </summary>
- <param name="index">The index</param>
- <returns>The previous index value</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Tri.Tri.OppVertex(System.Int32)">
- <summary>
- Gets the index of the vertex opposite an edge.
- </summary>
- <param name="edgeIndex">The edge index</param>
- <returns>The index of the opposite vertex</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Tri.Tri.OppEdge(System.Int32)">
- <summary>
- Gets the index of the edge opposite a vertex.
- </summary>
- <param name="vertexIndex">The index of the vertex</param>
- <returns>The index of the opposite edge</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Tri.Tri.MidPoint(System.Int32)">
- <summary>
- Computes a coordinate for the midpoint of a triangle edge.
- </summary>
- <param name="edgeIndex">The edge index</param>
- <returns>the midpoint of the triangle edge</returns>
- </member>
- <member name="P:NetTopologySuite.Triangulate.Tri.Tri.Area">
- <summary>Gets the area of the triangle.</summary>
- <returns>The area of the triangle</returns>
- </member>
- <member name="P:NetTopologySuite.Triangulate.Tri.Tri.Length">
- <summary>
- Gets the perimeter length of the perimeter of the triangle.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Tri.Tri.GetLength(System.Int32)">
- <summary>
- Gets the length of an edge of the triangle.
- </summary>
- <param name="edgeIndex">The edge index</param>
- <returns>The edge length</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Tri.Tri.ToPolygon(NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
- Creates a <see cref="N:NetTopologySuite.Triangulate.Polygon"/> representing this triangle.
- </summary>
- <param name="geomFact">The geometry factory</param>
- <returns>A polygon</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Tri.Tri.ToString">
- <inheritdoc cref="M:System.Object.ToString"/>
- </member>
- <member name="T:NetTopologySuite.Triangulate.Tri.TriangulationBuilder">
- <summary>
- Builds a triangulation from a set of <see cref="T:NetTopologySuite.Triangulate.Tri.Tri"/>s
- by populating the links to adjacent triangles.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Tri.TriangulationBuilder.Build(System.Collections.Generic.IEnumerable{NetTopologySuite.Triangulate.Tri.Tri})">
- <summary>
- Computes the triangulation of a set of <see cref="T:NetTopologySuite.Triangulate.Tri.Tri"/>s.
- </summary>
- <param name="triList">An enumeration of <see cref="T:NetTopologySuite.Triangulate.Tri.Tri"/>s</param>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Tri.TriangulationBuilder.#ctor(System.Collections.Generic.IEnumerable{NetTopologySuite.Triangulate.Tri.Tri})">
- <summary>
- Creates an instance of this class and computes the triangulation of a set of <see cref="T:NetTopologySuite.Triangulate.Tri.Tri"/>s.
- </summary>
- <param name="triList">An enumeration of <see cref="T:NetTopologySuite.Triangulate.Tri.Tri"/>s</param>
- </member>
- <member name="T:NetTopologySuite.Triangulate.Tri.TriEdge">
- <summary>
- Represents an edge in a <see cref="T:NetTopologySuite.Triangulate.Tri.Tri"/>,
- to be used as a key for looking up Tris
- while building a triangulation.
- The edge value is normalized to allow lookup
- of adjacent triangles.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="P:NetTopologySuite.Triangulate.Tri.TriEdge.P0">
- <summary>
- Gets or sets a value indicating the start point of this <see cref="T:NetTopologySuite.Triangulate.Tri.TriEdge"/>
- </summary>
- </member>
- <member name="P:NetTopologySuite.Triangulate.Tri.TriEdge.P1">
- <summary>
- Gets or sets a value indicating the end point of this <see cref="T:NetTopologySuite.Triangulate.Tri.TriEdge"/>
- </summary>
- </member>
- <member name="M:NetTopologySuite.Triangulate.Tri.TriEdge.#ctor(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Creates an instance of this class
- </summary>
- <param name="a">A coordinate</param>
- <param name="b">A coordinate</param>
- </member>
- <member name="T:NetTopologySuite.Triangulate.VertexTaggedGeometryDataMapper">
- <summary>
- Creates a map between the vertex <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s of a
- set of <see cref="T:NetTopologySuite.Geometries.Geometry"/>s,
- and the parent geometry, and transfers the source geometry
- data objects to geometry components tagged with the coordinates.
- </summary>
- <remarks>
- This class can be used in conjunction with <see cref="T:NetTopologySuite.Triangulate.VoronoiDiagramBuilder"/>
- to transfer data objects from the input site geometries
- to the constructed Voronoi polygons.
- </remarks>
- <author>Martin Davis</author>
- <see cref="T:NetTopologySuite.Triangulate.VoronoiDiagramBuilder"/>
- </member>
- <member name="M:NetTopologySuite.Triangulate.VertexTaggedGeometryDataMapper.LoadSourceGeometries(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Loads the vertices of a geometry and maps them with th the <see cref="P:NetTopologySuite.Geometries.Geometry.UserData"/>.
- </summary>
- <param name="geoms">A geometry</param>
- </member>
- <member name="M:NetTopologySuite.Triangulate.VertexTaggedGeometryDataMapper.LoadSourceGeometries(System.Collections.Generic.ICollection{NetTopologySuite.Geometries.Geometry})">
- <summary>
- Loads the vertices of a collection of geometries and maps them with the <see cref="P:NetTopologySuite.Geometries.Geometry.UserData"/>.
- </summary>
- <param name="geoms">A collection of geometry</param>
- </member>
- <member name="M:NetTopologySuite.Triangulate.VertexTaggedGeometryDataMapper.LoadSourceGeometries(NetTopologySuite.Geometries.GeometryCollection)">
- <summary>
- Loads the vertices of the geometries of a <c>GeometryCollection</c> and maps them with the <see cref="P:NetTopologySuite.Geometries.Geometry.UserData"/>.
- </summary>
- <param name="geomColl">A <c>GeometryCollection</c></param>
- </member>
- <member name="P:NetTopologySuite.Triangulate.VertexTaggedGeometryDataMapper.Coordinates">
- <summary>
- Gets a value indicating the coordinates.
- </summary>
- <returns>A list of <c>Coordinate</c>s.</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.VertexTaggedGeometryDataMapper.TransferData(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Input is assumed to be a multiGeometry
- in which every component has its userData
- set to be a Coordinate which is the key to the output data.
- The Coordinate is used to determine
- the output data object to be written back into the component.
- </summary>
- <param name="targetGeom" />
- </member>
- <member name="T:NetTopologySuite.Triangulate.VoronoiDiagramBuilder">
- <summary>
- A utility class which creates Voronoi Diagrams
- from collections of points.
- The diagram is returned as a <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/> of <see cref="N:NetTopologySuite.Triangulate.Polygon"/>s,
- representing the faces of the Voronoi diagram.
- /// The faces are clipped to the larger of:
- <list type="bullet">
- <item>
- <description>an envelope supplied by <see cref="M:NetTopologySuite.Triangulate.VoronoiDiagramBuilder.set_ClipEnvelope(NetTopologySuite.Geometries.Envelope)"/>.</description>
- </item>
- <item>
- <description>an envelope determined by the input sites.</description>
- </item>
- </list>
- The <tt>userData</tt> attribute of each face <tt>Polygon</tt> is set to
- the <tt>Coordinate</tt> of the corresponding input site.
- This allows using a <tt>Map</tt> to link faces to data associated with sites.
- </summary>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Triangulate.VoronoiDiagramBuilder.SetSites(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Sets the sites (point or vertices) which will be diagrammed.
- All vertices of the given geometry will be used as sites.
- </summary>
- <param name="geom">geom the geometry from which the sites will be extracted.</param>
- </member>
- <member name="M:NetTopologySuite.Triangulate.VoronoiDiagramBuilder.SetSites(System.Collections.Generic.ICollection{NetTopologySuite.Geometries.Coordinate})">
- <summary>
- Sets the sites (point or vertices) which will be diagrammed
- from a collection of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s.
- </summary>
- <param name="coords">a collection of Coordinates.</param>
- </member>
- <member name="P:NetTopologySuite.Triangulate.VoronoiDiagramBuilder.ClipEnvelope">
- <summary>
- Sets the envelope to clip the diagram to.
- The diagram will be clipped to the larger
- of this envelope or an envelope surrounding the sites.
- </summary>
- <remarks>the clip envelope.</remarks>
- </member>
- <member name="P:NetTopologySuite.Triangulate.VoronoiDiagramBuilder.Tolerance">
- <summary>
- Sets the snapping tolerance which will be used
- to improved the robustness of the triangulation computation.
- A tolerance of 0.0 specifies that no snapping will take place.
- </summary>
- <remarks>tolerance the tolerance distance to use</remarks>
- </member>
- <member name="M:NetTopologySuite.Triangulate.VoronoiDiagramBuilder.GetSubdivision">
- <summary>
- Gets the <see cref="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision"/> which models the computed diagram.
- </summary>
- <returns>the subdivision containing the triangulation</returns>
- </member>
- <member name="M:NetTopologySuite.Triangulate.VoronoiDiagramBuilder.GetDiagram(NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
- Gets the faces of the computed diagram as a <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/>
- of <see cref="N:NetTopologySuite.Triangulate.Polygon"/>s, clipped as specified.
- <para/>
- The <see cref="P:NetTopologySuite.Geometries.Geometry.UserData"/> attribute of each face <see cref="N:NetTopologySuite.Triangulate.Polygon"/> is set to
- the <c>Coordinate</c> of the corresponding input site.
- This allows using a <see cref="T:System.Collections.Generic.IDictionary`2"/> to link faces to data associated with sites.
- </summary>
- <param name="geomFact">the geometry factory to use to create the output</param>
- <returns>a <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/> containing the face <see cref="N:NetTopologySuite.Triangulate.Polygon"/>s of the diagram</returns>
- </member>
- <member name="T:NetTopologySuite.Utilities.AlternativePriorityQueue`2">
- <summary>
- An alternative implementation of the priority queue abstract data type.
- This allows us to do more than <see cref="T:NetTopologySuite.Utilities.PriorityQueue`1"/>, which we
- got from JTS. Ultimately, this queue enables scenarios that have more
- favorable execution speed characteristics at the cost of less favorable
- memory and usability characteristics.
- </summary>
- <typeparam name="TPriority">
- The type of the priority for each queue node.
- </typeparam>
- <typeparam name="TData">
- The type of data stored in the queue.
- </typeparam>
- <remarks>
- When enumerating over the queue, note that the elements will not be in
- sorted order. To get at the elements in sorted order, use the copy
- constructor and repeatedly <see cref="M:NetTopologySuite.Utilities.AlternativePriorityQueue`2.Dequeue"/> elements from it.
- </remarks>
- </member>
- <member name="M:NetTopologySuite.Utilities.AlternativePriorityQueue`2.#ctor">
- <summary>
- Initializes a new instance of the
- <see cref="T:NetTopologySuite.Utilities.AlternativePriorityQueue`2"/> class.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Utilities.AlternativePriorityQueue`2.#ctor(System.Int32)">
- <summary>
- Initializes a new instance of the
- <see cref="T:NetTopologySuite.Utilities.AlternativePriorityQueue`2"/> class.
- </summary>
- <param name="capacity">
- The initial queue capacity.
- </param>
- <exception cref="T:System.ArgumentOutOfRangeException">
- <paramref name="capacity"/> is less than 1.
- </exception>
- </member>
- <member name="M:NetTopologySuite.Utilities.AlternativePriorityQueue`2.#ctor(System.Collections.Generic.IComparer{`0})">
- <summary>
- Initializes a new instance of the
- <see cref="T:NetTopologySuite.Utilities.AlternativePriorityQueue`2"/> class.
- </summary>
- <param name="priorityComparer">
- The <see cref="T:System.Collections.Generic.IComparer`1"/> to use to compare priority values,
- or <see langword="null"/> to use the default comparer for the type.
- </param>
- </member>
- <member name="M:NetTopologySuite.Utilities.AlternativePriorityQueue`2.#ctor(System.Int32,System.Collections.Generic.IComparer{`0})">
- <summary>
- Initializes a new instance of the
- <see cref="T:NetTopologySuite.Utilities.AlternativePriorityQueue`2"/> class.
- </summary>
- <param name="capacity">
- The initial queue capacity.
- </param>
- <param name="priorityComparer">
- The <see cref="T:System.Collections.Generic.IComparer`1"/> to use to compare priority values,
- or <see langword="null"/> to use the default comparer for the type.
- </param>
- <exception cref="T:System.ArgumentOutOfRangeException">
- <paramref name="capacity"/> is less than 1.
- </exception>
- </member>
- <member name="M:NetTopologySuite.Utilities.AlternativePriorityQueue`2.#ctor(NetTopologySuite.Utilities.AlternativePriorityQueue{`0,`1})">
- <summary>
- Initializes a new instance of the
- <see cref="T:NetTopologySuite.Utilities.AlternativePriorityQueue`2"/> class.
- </summary>
- <param name="copyFrom">
- The <see cref="T:NetTopologySuite.Utilities.AlternativePriorityQueue`2"/> to
- copy from.
- </param>
- <exception cref="T:System.ArgumentNullException">
- <paramref name="copyFrom"/> is <see langword="null"/>.
- </exception>
- </member>
- <member name="P:NetTopologySuite.Utilities.AlternativePriorityQueue`2.Count">
- <summary>
- Gets the number of nodes currently stored in this queue.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Utilities.AlternativePriorityQueue`2.Head">
- <summary>
- Gets the node at the head of the queue.
- This is the node whose <typeparamref name="TPriority"/> compares
- less than or equal to the priority of all other nodes in the queue.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Utilities.AlternativePriorityQueue`2.Clear">
- <summary>
- Removes all nodes from this queue.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Utilities.AlternativePriorityQueue`2.Contains(NetTopologySuite.Utilities.PriorityQueueNode{`0,`1})">
- <summary>
- Determines whether the given node is contained within this queue.
- </summary>
- <param name="node">
- The node to locate in the queue.
- </param>
- <returns>
- <see langword="true"/> if <paramref name="node"/> is found in the
- queue, otherwise <see langword="false"/>.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Utilities.AlternativePriorityQueue`2.Enqueue(NetTopologySuite.Utilities.PriorityQueueNode{`0,`1},`0)">
- <summary>
- Adds a given node to the queue with the given priority.
- </summary>
- <param name="node">
- The node to add to the queue.
- </param>
- <param name="priority">
- The priority for the node.
- </param>
- <exception cref="T:System.ArgumentNullException">
- <paramref name="node"/> is <see langword="null"/>.
- </exception>
- </member>
- <member name="M:NetTopologySuite.Utilities.AlternativePriorityQueue`2.Dequeue">
- <summary>
- Removes and returns the head of the queue.
- </summary>
- <returns>
- The removed element.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Utilities.AlternativePriorityQueue`2.ChangePriority(NetTopologySuite.Utilities.PriorityQueueNode{`0,`1},`0)">
- <summary>
- Changes the priority of the given node.
- </summary>
- <param name="node">
- The node whose priority to change.
- </param>
- <param name="priority">
- The new priority for the node.
- </param>
- <exception cref="T:System.ArgumentNullException">
- <paramref name="node"/> is <see langword="null"/>.
- </exception>
- </member>
- <member name="M:NetTopologySuite.Utilities.AlternativePriorityQueue`2.Remove(NetTopologySuite.Utilities.PriorityQueueNode{`0,`1})">
- <summary>
- Removes the given node from this queue if it is present.
- </summary>
- <param name="node">
- The node to remove if present.
- </param>
- <returns>
- A value indicating whether the node was removed.
- </returns>
- </member>
- <member name="M:NetTopologySuite.Utilities.AlternativePriorityQueue`2.GetEnumerator">
- <inheritdoc />
- </member>
- <member name="M:NetTopologySuite.Utilities.AlternativePriorityQueue`2.System#Collections#IEnumerable#GetEnumerator">
- <inheritdoc />
- </member>
- <member name="T:NetTopologySuite.Utilities.Assert">
- <summary>
- A utility for making programming assertions.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Utilities.Assert.IsTrue(System.Boolean)">
- <summary>
- Tests if <paramref name="assertion"/> is <c>true</c>
- <para/>
- If the test fails, <see cref="T:NetTopologySuite.Utilities.AssertionFailedException"/> with no message is thrown.
- </summary>
- <param name="assertion">The assertion value</param>
- </member>
- <member name="M:NetTopologySuite.Utilities.Assert.IsTrue(System.Boolean,System.String)">
- <summary>
- Tests if <paramref name="assertion"/> is <c>true</c>
- <para/>
- If the test fails, <see cref="T:NetTopologySuite.Utilities.AssertionFailedException"/> with <paramref name="message"/> is thrown.
- </summary>
- <param name="assertion">The assertion value</param>
- <param name="message">A message describing the failure condition.</param>
- </member>
- <member name="M:NetTopologySuite.Utilities.Assert.IsEquals(System.Object,System.Object)">
- <summary>
- Tests if two values are equal.
- <para/>
- If the test fails, <see cref="T:NetTopologySuite.Utilities.AssertionFailedException"/> with no specific message is thrown.
- </summary>
- <param name="expectedValue">The expected value</param>
- <param name="actualValue">The actual value</param>
- </member>
- <member name="M:NetTopologySuite.Utilities.Assert.IsEquals(System.Object,System.Object,System.String)">
- <summary>
- Tests if two values are equal.
- <para/>
- If the test fails, <see cref="T:NetTopologySuite.Utilities.AssertionFailedException"/> with <paramref name="message"/> is thrown.
- </summary>
- <param name="expectedValue">The expected value</param>
- <param name="actualValue">The actual value</param>
- <param name="message">A message describing the failure condition.</param>
- </member>
- <member name="M:NetTopologySuite.Utilities.Assert.ShouldNeverReachHere">
- <summary>
- Throws an <see cref="T:NetTopologySuite.Utilities.AssertionFailedException"/> with no specific message text.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Utilities.Assert.ShouldNeverReachHere(System.String)">
- <summary>
- Throws an <see cref="T:NetTopologySuite.Utilities.AssertionFailedException"/> with <paramref name="message"/> as specific message text.
- </summary>
- <param name="message">A text describing the failure condition</param>
- </member>
- <member name="T:NetTopologySuite.Utilities.AssertionFailedException">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Utilities.AssertionFailedException.#ctor">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Utilities.AssertionFailedException.#ctor(System.String)">
- <summary>
-
- </summary>
- <param name="message"></param>
- </member>
- <member name="T:NetTopologySuite.Utilities.CoordinateArrayFilter">
- <summary>
- A <c>CoordinateFilter</c> that creates an array containing every coordinate in a <c>Geometry</c>.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Utilities.CoordinateArrayFilter.#ctor(System.Int32)">
- <summary>
- Constructs a <c>CoordinateArrayFilter</c>.
- </summary>
- <param name="size">The number of points that the <c>CoordinateArrayFilter</c> will collect.</param>
- </member>
- <member name="P:NetTopologySuite.Utilities.CoordinateArrayFilter.Coordinates">
- <summary>
- Returns the <c>Coordinate</c>s collected by this <c>CoordinateArrayFilter</c>.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Utilities.CoordinateArrayFilter.Filter(NetTopologySuite.Geometries.Coordinate)">
- <summary>
-
- </summary>
- <param name="coord"></param>
- </member>
- <member name="T:NetTopologySuite.Utilities.CoordinateCompare">
- <summary>
- CoordinateCompare is used in the sorting of arrays of Coordinate objects.
- Implements a lexicographic comparison.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Utilities.CoordinateCompare.Compare(System.Object,System.Object)">
- <summary>
- Compares two object and returns a value indicating whether one is less than, equal to or greater
- than the other.
- </summary>
- <param name="x">First Coordinate object to compare.</param>
- <param name="y">Second Coordinate object to compare.</param>
- <returns>
- <table cellspacing="0" class="dtTABLE">
- <TR VALIGN="top">
- <TH width=50%>Value</TH>
- <TH width=50%>Condition</TH>
- </TR>
- <TR VALIGN="top">
- <TD width=50%>Less than zero</TD>
- <TD width=50%><I>a</I> is less than <I>b</I>.</TD>
- </TR>
- <TR VALIGN="top">
- <TD width=50%>Zero</TD>
- <TD width=50%><I>a</I> equals <I>b</I>.</TD>
- </TR>
- <TR VALIGN="top">
- <TD width=50%>Greater than zero</TD>
- <TD width=50%><I>a</I> is greater than <I>b</I>.</TD>
- </TR>
- </table>
- </returns>
- <remarks>If a implements IComparable, then a. CompareTo (b) is returned; otherwise, if b
- implements IComparable, then b. CompareTo (a) is returned.
- Comparing a null reference (Nothing in Visual Basic) with any type is allowed and does not
- generate an exception when using IComparable. When sorting, a null reference (Nothing) is
- considered to be less than any other object.
- </remarks>
- </member>
- <member name="T:NetTopologySuite.Utilities.CoordinateCountFilter">
- <summary>
- A <c>CoordinateFilter</c> that counts the total number of coordinates
- in a <c>Geometry</c>.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Utilities.CoordinateCountFilter.Count">
- <summary>
- Returns the result of the filtering.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Utilities.CoordinateCountFilter.Filter(NetTopologySuite.Geometries.Coordinate)">
- <summary>
-
- </summary>
- <param name="coord"></param>
- </member>
- <member name="T:NetTopologySuite.Utilities.Degrees">
- <summary>
- Converts degrees to radians.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Utilities.Degrees.ToRadians(System.Double)">
- <summary>
- Converts degrees to radians.
- </summary>
- <param name="degrees">The angle in degrees.</param>
- <returns>The angle in radians.</returns>
- </member>
- <member name="T:NetTopologySuite.Utilities.FunctionsUtil">
- <summary>
- A utility class to get <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>s, <see cref="T:NetTopologySuite.Geometries.Envelope"/>s
- off of <see cref="T:NetTopologySuite.Geometries.Geometry"/>s or to build aggregate geometries.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Utilities.FunctionsUtil.DefaultEnvelope">
- <summary>
- Gets a default envelope
- </summary>
- </member>
- <member name="M:NetTopologySuite.Utilities.FunctionsUtil.GetEnvelopeOrDefault(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Gets the envelope of a geometry.
- </summary>
- <param name="g">A geometry</param>
- <returns>The envelope of <paramref name="g"/> or <see cref="F:NetTopologySuite.Utilities.FunctionsUtil.DefaultEnvelope"/> if <c>g == null</c>.</returns>
- </member>
- <member name="M:NetTopologySuite.Utilities.FunctionsUtil.GetFactoryOrDefault(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Function to get the geometry factory of a geometry. If
- <paramref name="g"/> is <c>null</c>, a default geometry
- factory is returned.
- </summary>
- <param name="g">A geometry</param>
- <returns>A geometry factory</returns>
- </member>
- <member name="M:NetTopologySuite.Utilities.FunctionsUtil.GetFactoryOrDefault(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})">
- <summary>
- Function to get the geometry factory of the first
- geometry in a series of geometries.<para/>
- If no geometry is provided in <paramref name="gs"/>,
- a default geometry factory is returned.
- </summary>
- <param name="gs">An enumeration of geometries</param>
- <returns>A geometry factory</returns>
- </member>
- <member name="M:NetTopologySuite.Utilities.FunctionsUtil.BuildGeometry(System.Collections.Generic.List{NetTopologySuite.Geometries.Geometry},NetTopologySuite.Geometries.Geometry)">
- <summary>
- Builds a geometry from a list of geometries.
- <para/>
- The function returns
- <list type="bullet">
- <item><term><c>null</c></term><description>if the list is <c>null</c> or empty</description></item>
- <item><term><c><paramref name="geoms"/>[0]</c></term><description>if the list contains one single item.</description></item>
- <item><term>a <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/></term>if <paramref name="parentGeom"/> is a <tt>GeometryCollection</tt>.</item>
- <item><term>a <tt>Multi</tt>-geometry</term> in all other cases.</item>
- </list>
- </summary>
- <param name="geoms">A list of geometries.</param>
- <param name="parentGeom">A parent geometry</param>
- <returns>A geometry.</returns>
- </member>
- <member name="M:NetTopologySuite.Utilities.FunctionsUtil.BuildGeometry(System.Collections.Generic.IList{NetTopologySuite.Geometries.Geometry},NetTopologySuite.Geometries.Geometry)">
- <summary>
- Builds a geometry from a list of geometries.
- <para/>
- The function returns
- <list type="bullet">
- <item><term><c>null</c></term><description>if the list is <c>null</c> or empty</description></item>
- <item><term><c><paramref name="geoms"/>[0]</c></term><description>if the list contains one single item.</description></item>
- <item><term>a <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/></term>if <paramref name="parentGeom"/> is a <tt>GeometryCollection</tt>.</item>
- <item><term>a <tt>Multi</tt>-geometry</term> in all other cases.</item>
- </list>
- </summary>
- <param name="geoms">A list of geometries.</param>
- <param name="parentGeom">A parent geometry</param>
- <returns>A geometry.</returns>
- </member>
- <member name="M:NetTopologySuite.Utilities.FunctionsUtil.BuildGeometry(NetTopologySuite.Geometries.Geometry[])">
- <summary>
- Method to build a geometry.
- </summary>
- <param name="geoms">An array of geometries</param>
- <returns>A <c>GEOMETRYCOLLECTION</c> containing <paramref name="geoms"/>.</returns>
- </member>
- <member name="M:NetTopologySuite.Utilities.FunctionsUtil.BuildGeometry(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
- <summary>
- Method to build a geometry.
- </summary>
- <param name="a">A geometry</param>
- <param name="b">A geometry</param>
- <returns>A <c>GEOMETRYCOLLECTION</c> containing <paramref name="a"/> and <paramref name="b"/>.</returns>
- </member>
- <member name="T:NetTopologySuite.Utilities.GeometricShapeFactory">
- <summary>
- Computes various kinds of common geometric shapes.
- Allows various ways of specifying the location and extent of the shapes,
- as well as number of line segments used to form them.
- </summary>
- </member>
- <member name="F:NetTopologySuite.Utilities.GeometricShapeFactory.GeomFact">
- <summary>
- A geometry factory
- </summary>
- </member>
- <member name="F:NetTopologySuite.Utilities.GeometricShapeFactory.PrecModel">
- <summary>
- A precision model
- </summary>
-
- </member>
- <member name="M:NetTopologySuite.Utilities.GeometricShapeFactory.#ctor">
- <summary>
- Create a shape factory which will create shapes using the default GeometryFactory.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Utilities.GeometricShapeFactory.#ctor(NetTopologySuite.Geometries.GeometryFactory)">
- <summary>
- Create a shape factory which will create shapes using the given GeometryFactory.
- </summary>
- <param name="geomFact">The factory to use.</param>
- </member>
- <member name="P:NetTopologySuite.Utilities.GeometricShapeFactory.Base">
- <summary>
- Gets/Sets the location of the shape by specifying the base coordinate
- (which in most cases is the
- lower left point of the envelope containing the shape).
- </summary>
- </member>
- <member name="P:NetTopologySuite.Utilities.GeometricShapeFactory.Centre">
- <summary>
- Gets/Sets the location of the shape by specifying the centre of
- the shape's bounding box.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Utilities.GeometricShapeFactory.Envelope">
- <summary>
- Gets or sets the envelope of the shape
- </summary>
- </member>
- <member name="P:NetTopologySuite.Utilities.GeometricShapeFactory.NumPoints">
- <summary>
- Gets/Sets the total number of points in the created Geometry.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Utilities.GeometricShapeFactory.Size">
- <summary>
- Gets/Sets the size of the extent of the shape in both x and y directions.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Utilities.GeometricShapeFactory.Width">
- <summary>
- Gets/Sets the width of the shape.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Utilities.GeometricShapeFactory.Height">
- <summary>
- Gets/Sets the height of the shape.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Utilities.GeometricShapeFactory.Rotation">
- <summary>
- Gets/Sets the rotation angle, in radians, to use for the shape.
- The rotation is applied relative to the centre of the shape.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Utilities.GeometricShapeFactory.Rotate(NetTopologySuite.Geometries.Geometry)">
- <summary>
- Rotates a geometry by <see cref="P:NetTopologySuite.Utilities.GeometricShapeFactory.Rotation"/> angle
- </summary>
- <param name="geom">The geometry to rotate</param>
- <returns>A rotated geometry</returns>
- </member>
- <member name="M:NetTopologySuite.Utilities.GeometricShapeFactory.CreateCoord(System.Double,System.Double)">
- <summary>
- Creates a coordinate at (<paramref name="x"/>, <paramref name="y"/>)
- </summary>
- <param name="x">The x-ordinate value</param>
- <param name="y">The y-ordinate value</param>
- <returns>A coordinate</returns>
- </member>
- <member name="M:NetTopologySuite.Utilities.GeometricShapeFactory.CreateCoordTrans(System.Double,System.Double,NetTopologySuite.Geometries.Coordinate)">
- <summary>
- Creates a translated coordinate at (<paramref name="x"/> + <paramref name="trans.X.X"/>, <paramref name="y"/> + <paramref name="trans.Y.Y"/>)
- </summary>
- <param name="x">The x-ordinate value</param>
- <param name="y">The y-ordinate value</param>
- <param name="trans">A translation vector (coordinate)</param>
- <returns>A coordinate</returns>
- </member>
- <member name="M:NetTopologySuite.Utilities.GeometricShapeFactory.CreateRectangle">
- <summary>
- Creates a rectangular <c>Polygon</c>.
- </summary>
- <returns>A rectangular polygon.</returns>
- </member>
- <member name="M:NetTopologySuite.Utilities.GeometricShapeFactory.CreateCircle">
- <summary>
- Creates a circular <c>Polygon</c>.
- </summary>
- <returns>A circular polygon.</returns>
- </member>
- <member name="M:NetTopologySuite.Utilities.GeometricShapeFactory.CreateEllipse">
- <summary>
- Creates an elliptical <c>Polygon</c>.
- If the supplied envelope is square the
- result will be a circle.
- </summary>
- <returns>An an ellipse or circle.</returns>
- </member>
- <member name="M:NetTopologySuite.Utilities.GeometricShapeFactory.CreateSquircle">
- <summary>
- Creates a squircular <see cref="T:NetTopologySuite.Geometries.Polygon"/>.
- </summary>
- <returns>a squircle</returns>
- </member>
- <member name="M:NetTopologySuite.Utilities.GeometricShapeFactory.CreateSupercircle(System.Double)">
- <summary>
- Creates a supercircular <see cref="T:NetTopologySuite.Geometries.Polygon"/>
- of a given positive power.
- </summary>
- <returns>a supercircle</returns>
- </member>
- <member name="M:NetTopologySuite.Utilities.GeometricShapeFactory.CreateArc(System.Double,System.Double)">
- <summary>
- Creates a elliptical arc, as a LineString.
- </summary><remarks>
- The arc is always created in a counter-clockwise direction.
- </remarks>
- <param name="startAng">Start angle in radians</param>
- <param name="angExtent">Size of angle in radians</param>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Utilities.GeometricShapeFactory.CreateArcPolygon(System.Double,System.Double)">
- <summary>
- Creates an elliptical arc polygon.
- </summary>
- <remarks>
- The polygon is formed from the specified arc of an ellipse
- and the two radii connecting the endpoints to the centre of the ellipse.
- </remarks>
- <param name="startAng">Start angle in radians</param>
- <param name="angExtent">Size of angle in radians</param>
- <returns>An elliptical arc polygon</returns>
- </member>
- <member name="T:NetTopologySuite.Utilities.GeometricShapeFactory.Dimensions">
- <summary>
- A dimension class for <see cref="T:NetTopologySuite.Utilities.GeometricShapeFactory"/>s
- </summary>
- </member>
- <member name="P:NetTopologySuite.Utilities.GeometricShapeFactory.Dimensions.Base">
- <summary>
- Gets or sets a value indicating the base of the shapes to be created
- </summary>
- </member>
- <member name="P:NetTopologySuite.Utilities.GeometricShapeFactory.Dimensions.Centre">
- <summary>
- Gets or sets a value indicating the centre of the shapes to be created
- </summary>
- </member>
- <member name="P:NetTopologySuite.Utilities.GeometricShapeFactory.Dimensions.Width">
- <summary>
- Gets or sets a value indicating the width of the <see cref="P:NetTopologySuite.Utilities.GeometricShapeFactory.Dimensions.Envelope"/>.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Utilities.GeometricShapeFactory.Dimensions.Height">
- <summary>
- Gets or sets a value indicating the height of the <see cref="P:NetTopologySuite.Utilities.GeometricShapeFactory.Dimensions.Envelope"/>.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Utilities.GeometricShapeFactory.Dimensions.Size">
- <summary>
- Sets <see cref="P:NetTopologySuite.Utilities.GeometricShapeFactory.Dimensions.Width"/> and <see cref="P:NetTopologySuite.Utilities.GeometricShapeFactory.Dimensions.Height"/> to the same value
- </summary>
- </member>
- <member name="P:NetTopologySuite.Utilities.GeometricShapeFactory.Dimensions.MinSize">
- <summary>
- Gets a value indicating the minimum size of the shape's <see cref="P:NetTopologySuite.Utilities.GeometricShapeFactory.Dimensions.Envelope"/>
- </summary>
- </member>
- <member name="P:NetTopologySuite.Utilities.GeometricShapeFactory.Dimensions.Envelope">
- <summary>
- Gets or sets a value indicating the bounds of the shape to be created
- </summary>
- </member>
- <member name="T:NetTopologySuite.Utilities.Global">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Utilities.Global.#ctor">
- <summary>
-
- </summary>
- </member>
- <member name="F:NetTopologySuite.Utilities.Global.global">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Utilities.Global.GetNfi">
- <summary>
-
- </summary>
- <returns></returns>
- </member>
- <member name="T:NetTopologySuite.Utilities.Guard">
- <summary>
- A guard class
- </summary>
- </member>
- <member name="M:NetTopologySuite.Utilities.Guard.IsNotNull(System.Object,System.String)">
- <summary>
- Checks if a value is <b>not</b> <c>null</c>.
- </summary>
- <param name="candidate">The value to check for <c>null</c></param>
- <param name="propertyName">The name of the property that <paramref name="candidate"/> belongs to.</param>
- </member>
- <member name="T:NetTopologySuite.Utilities.HexConverter">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Utilities.HexConverter.#ctor">
- <summary>
- Only static methods!
- </summary>
- </member>
- <member name="M:NetTopologySuite.Utilities.HexConverter.ConvertAny2Any(System.String,System.Int32,System.Int32)">
- <summary>
- Convert the given numeric value (passed as string) of the base specified by <c>baseIn</c>
- to the value specified by <c>baseOut</c>.
- </summary>
- <param name="valueIn">Numeric value to be converted, as string.</param>
- <param name="baseIn">Base of input value.</param>
- <param name="baseOut">Base to use for conversion.</param>
- <returns>Converted value, as string.</returns>
- </member>
- <member name="T:NetTopologySuite.Utilities.Memory">
- <summary>
- Utility functions to report memory usage.
- </summary>
- <author>mbdavis</author>
- </member>
- <member name="P:NetTopologySuite.Utilities.Memory.Total">
- <summary>
- Gets a value indicating the total memory used.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Utilities.Memory.TotalString">
- <summary>
- Gets a string describing the total memory used
- </summary>
- </member>
- <member name="F:NetTopologySuite.Utilities.Memory.KB">
- <summary>
- Number of bytes in a kilo-byte
- </summary>
- </member>
- <member name="F:NetTopologySuite.Utilities.Memory.MB">
- <summary>
- Number of bytes in mega-byte
- </summary>
- </member>
- <member name="F:NetTopologySuite.Utilities.Memory.GB">
- <summary>
- Number of bytes in a giga-byte
- </summary>
- </member>
- <member name="M:NetTopologySuite.Utilities.Memory.Format(System.Int64)">
- <summary>
- Formats a number of bytes
- </summary>
- <param name="mem">The number of bytes</param>
- <returns>A string describing a number of bytes</returns>
- </member>
- <member name="M:NetTopologySuite.Utilities.Memory.Round(System.Double)">
- <summary>
- Rounds a double to 2 decimal places
- </summary>
- <param name="d">The number to round</param>
- <returns>The rounded number</returns>
- </member>
- <member name="T:NetTopologySuite.Utilities.PriorityQueue`1">
- <summary>
- A priority queue over a set of <see cref="T:System.IComparable`1"/> objects.
- </summary>
- <typeparam name="T">Objects to add</typeparam>
- <author>Martin Davis</author>
- </member>
- <member name="M:NetTopologySuite.Utilities.PriorityQueue`1.#ctor">
- <summary>
- Creates an instance of this class
- </summary>
- </member>
- <member name="M:NetTopologySuite.Utilities.PriorityQueue`1.#ctor(System.Int32,System.Collections.Generic.IComparer{`0})">
- <summary>
- Creates an instance of this class
- </summary>
- <param name="capacity">The capacity of the queue</param>
- <param name="comparer">The comparer to use for computing priority values</param>
- </member>
- <member name="M:NetTopologySuite.Utilities.PriorityQueue`1.Add(`0)">
- <summary>Insert into the priority queue. Duplicates are allowed.
- </summary>
- <param name="x">The item to insert.</param>
- </member>
- <member name="M:NetTopologySuite.Utilities.PriorityQueue`1.IsEmpty">
- <summary>
- Test if the priority queue is logically empty.
- </summary>
- <returns><c>true</c> if empty, <c>false</c> otherwise.</returns>
- </member>
- <member name="P:NetTopologySuite.Utilities.PriorityQueue`1.Size">
- <summary>
- Returns size.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Utilities.PriorityQueue`1.Clear">
- <summary>
- Make the priority queue logically empty.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Utilities.PriorityQueue`1.Poll">
- <summary>
- Remove the smallest item from the priority queue.
- </summary>
- <remarks>The smallest item, or <c>default(T)</c> if empty.</remarks>
- </member>
- <member name="M:NetTopologySuite.Utilities.PriorityQueue`1.Peek">
- <summary>
- Gets the smallest item without removing it from the queue
- </summary>
- <returns></returns>
- </member>
- <member name="M:NetTopologySuite.Utilities.PriorityQueue`1.GetEnumerator">
- <inheritdoc cref="M:System.Collections.Generic.IEnumerable`1.GetEnumerator"/>>
- </member>
- <member name="T:NetTopologySuite.Utilities.PriorityQueueNode`2">
- <summary>
- A container for a prioritized node that sites in an
- <see cref="T:NetTopologySuite.Utilities.AlternativePriorityQueue`2"/>.
- </summary>
- <typeparam name="TPriority">
- The type to use for the priority of the node in the queue.
- </typeparam>
- <typeparam name="TData">
- The type to use for the data stored by the node in the queue.
- </typeparam>
- </member>
- <member name="M:NetTopologySuite.Utilities.PriorityQueueNode`2.#ctor(`1)">
- <summary>
- Initializes a new instance of the <see cref="T:NetTopologySuite.Utilities.PriorityQueueNode`2"/> class.
- </summary>
- <param name="data">
- The <typeparamref name="TData"/> to store in this node.
- </param>
- </member>
- <member name="P:NetTopologySuite.Utilities.PriorityQueueNode`2.Data">
- <summary>
- Gets the <typeparamref name="TData"/> that is stored in this node.
- </summary>
- </member>
- <member name="P:NetTopologySuite.Utilities.PriorityQueueNode`2.Priority">
- <summary>
- Gets the <typeparamref name="TPriority"/> of this node in the queue.
- </summary>
- <remarks>
- The queue may update this priority while the node is still in the queue.
- </remarks>
- </member>
- <member name="P:NetTopologySuite.Utilities.PriorityQueueNode`2.QueueIndex">
- <summary>
- Gets or sets the index of this node in the queue.
- </summary>
- <remarks>
- This should only be read and written by the queue itself.
- It has no "real" meaning to anyone else.
- </remarks>
- </member>
- <member name="T:NetTopologySuite.Utilities.Radians">
- <summary>
- Converts radians to degress.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Utilities.Radians.ToDegrees(System.Double)">
- <summary>
- Converts radians to degress.
- </summary>
- <param name="radians">Angle in radians.</param>
- <returns>The angle in degrees.</returns>
- </member>
- <member name="T:NetTopologySuite.Utilities.ReverseOrder">
- <summary>
-
- </summary>
- </member>
- <member name="M:NetTopologySuite.Utilities.ReverseOrder.Compare(System.Object,System.Object)">
- <summary>
-
- </summary>
- <param name="x"></param>
- <param name="y"></param>
- <returns></returns>
- </member>
- <member name="T:NetTopologySuite.Utilities.UniqueCoordinateArrayFilter">
- <summary>
- A <see cref="T:NetTopologySuite.Geometries.ICoordinateFilter"/>
- that extracts a unique array of<c>Coordinate</c> s.
- The array of coordinates contains no duplicate points.
- <para/>
- It preserves the order of the input points.
- </summary>
- </member>
- <member name="M:NetTopologySuite.Utilities.UniqueCoordinateArrayFilter.FilterCoordinates(NetTopologySuite.Geometries.Coordinate[])">
- <summary>
- Convenience method which allows running the filter over an array of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s.
- </summary>
- <param name="coords">an array of coordinates</param>
- <returns>an array of the unique coordinates</returns>
- </member>
- <member name="P:NetTopologySuite.Utilities.UniqueCoordinateArrayFilter.Coordinates">
- <summary>
- Returns the gathered <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s.
- </summary>
- <returns>The <c>Coordinate</c>s collected by this <c>ICoordinateArrayFilter</c></returns>
- </member>
- <member name="M:NetTopologySuite.Utilities.UniqueCoordinateArrayFilter.Filter(NetTopologySuite.Geometries.Coordinate)">
- <inheritdoc cref="M:NetTopologySuite.Geometries.ICoordinateFilter.Filter(NetTopologySuite.Geometries.Coordinate)"/>
- </member>
- <member name="T:RTools_NTS.Util.CharBuffer">
- <summary>
- Buffer for characters. This approximates StringBuilder
- but is designed to be faster for specific operations.
- This is about 30% faster for the operations I'm interested in
- (Append, Clear, Length, ToString).
- This trades off memory for speed.
- </summary>
- <remarks>
- <para>To make Remove from the head fast, this is implemented
- as a ring buffer.</para>
- <para>This uses head and tail indices into a fixed-size
- array. This will grow the array as necessary.</para>
- </remarks>
- </member>
- <member name="P:RTools_NTS.Util.CharBuffer.Length">
- <summary>
- Gets/Sets the number of characters in the character buffer.
- Increasing the length this way provides indeterminate results.
- </summary>
- </member>
- <member name="P:RTools_NTS.Util.CharBuffer.Capacity">
- <summary>
- Returns the capacity of this character buffer.
- </summary>
- </member>
- <member name="M:RTools_NTS.Util.CharBuffer.#ctor">
- <summary>
- Default constructor.
- </summary>
- </member>
- <member name="M:RTools_NTS.Util.CharBuffer.#ctor(System.Int32)">
- <summary>
- Construct with a specific capacity.
- </summary>
- <param name="capacity"></param>
- </member>
- <member name="M:RTools_NTS.Util.CharBuffer.Grow(System.Int32)">
- <summary>
- Reallocate the buffer to be larger. For the new size, this
- uses the max of the requested length and double the current
- capacity.
- This does not shift, meaning it does not change the head or
- tail indices.
- </summary>
- <param name="requestedLen">The new requested length.</param>
- </member>
- <member name="M:RTools_NTS.Util.CharBuffer.CheckCapacity(System.Int32)">
- <summary>
- Ensure that we're set for the requested length by
- potentially growing or shifting contents.
- </summary>
- <param name="requestedLength"></param>
- </member>
- <member name="M:RTools_NTS.Util.CharBuffer.ShiftToZero">
- <summary>
- Move the buffer contents such that headIndex becomes 0.
- </summary>
- </member>
- <member name="M:RTools_NTS.Util.CharBuffer.SetBuffer(System.Char[],System.Int32)">
- <summary>
- Overwrite this object's underlying buffer with the specified
- buffer.
- </summary>
- <param name="b">The character array.</param>
- <param name="len">The number of characters to consider filled
- in the input buffer.</param>
- </member>
- <member name="M:RTools_NTS.Util.CharBuffer.Append(System.Char)">
- <summary>
- Append a character to this buffer.
- </summary>
- <param name="c"></param>
- </member>
- <member name="M:RTools_NTS.Util.CharBuffer.Append(System.String)">
- <summary>
- Append a string to this buffer.
- </summary>
- <param name="s">The string to append.</param>
- </member>
- <member name="M:RTools_NTS.Util.CharBuffer.Append(RTools_NTS.Util.CharBuffer)">
- <summary>
- Append a string to this buffer.
- </summary>
- <param name="s">The string to append.</param>
- </member>
- <member name="M:RTools_NTS.Util.CharBuffer.Remove(System.Int32)">
- <summary>
- Remove a character at the specified index.
- </summary>
- <param name="i">The index of the character to remove.</param>
- <returns></returns>
- </member>
- <member name="M:RTools_NTS.Util.CharBuffer.Remove(System.Int32,System.Int32)">
- <summary>
- Remove a specified number of characters at the specified index.
- </summary>
- <param name="i">The index of the characters to remove.</param>
- <param name="n">The number of characters to remove.</param>
- </member>
- <member name="M:RTools_NTS.Util.CharBuffer.IndexOf(System.Char)">
- <summary>
- Find the first instance of a character in the buffer, and
- return its index. This returns -1 if the character is
- not found.
- </summary>
- <param name="c">The character to find.</param>
- <returns>The index of the specified character, or -1
- for not found.</returns>
- </member>
- <member name="M:RTools_NTS.Util.CharBuffer.Clear">
- <summary>
- Empty the buffer.
- </summary>
- </member>
- <member name="P:RTools_NTS.Util.CharBuffer.Item(System.Int32)">
- <summary>
- Indexer.
- </summary>
- </member>
- <member name="M:RTools_NTS.Util.CharBuffer.ToString">
- <summary>
- Return the current contents as a string.
- </summary>
- <returns>The new string.</returns>
- </member>
- <member name="T:RTools_NTS.Util.StreamTokenizerUntermException">
- <summary>
- Exception class for unterminated tokens.
- </summary>
- </member>
- <member name="M:RTools_NTS.Util.StreamTokenizerUntermException.#ctor(System.String)">
- <summary>
- Construct with a particular message.
- </summary>
- <param name="msg">The message to store in this object.</param>
- </member>
- <member name="T:RTools_NTS.Util.StreamTokenizerUntermQuoteException">
- <summary>
- Exception class for unterminated quotes.
- </summary>
- </member>
- <member name="M:RTools_NTS.Util.StreamTokenizerUntermQuoteException.#ctor(System.String)">
- <summary>
- Construct with a particular message.
- </summary>
- <param name="msg">The message to store in this object.</param>
- </member>
- <member name="T:RTools_NTS.Util.StreamTokenizerUntermCommentException">
- <summary>
- Exception class for unterminated block comments.
- </summary>
- </member>
- <member name="M:RTools_NTS.Util.StreamTokenizerUntermCommentException.#ctor(System.String)">
- <summary>
- Construct with a particular message.
- </summary>
- <param name="msg">The message to store in this object.</param>
- </member>
- <member name="T:RTools_NTS.Util.CharTypeBits">
- <summary>
- Bitwise enumeration for character types.
- </summary>
- </member>
- <member name="F:RTools_NTS.Util.CharTypeBits.Word">
- <summary>word characters (usually alpha, digits, and domain specific)</summary>
- </member>
- <member name="F:RTools_NTS.Util.CharTypeBits.Comment">
- <summary># or something for line comments</summary>
- </member>
- <member name="F:RTools_NTS.Util.CharTypeBits.Whitespace">
- <summary>whitespace</summary>
- </member>
- <member name="F:RTools_NTS.Util.CharTypeBits.Quote">
- <summary>' or " type</summary>
- </member>
- <member name="F:RTools_NTS.Util.CharTypeBits.Digit">
- <summary>usually 0 to 9</summary>
- </member>
- <member name="F:RTools_NTS.Util.CharTypeBits.HexDigit">
- <summary>usually 0 to 9, a-f and A-F</summary>
- </member>
- <member name="F:RTools_NTS.Util.CharTypeBits.Eof">
- <summary>eof char</summary>
- </member>
- <member name="T:RTools_NTS.Util.StreamTokenizerSettings">
- <summary>
- This contains the settings that control the behavior of the tokenizer.
- This is separated from the StreamTokenizer so that common settings
- are easy to package and keep together.
- </summary>
- </member>
- <member name="P:RTools_NTS.Util.StreamTokenizerSettings.CharTypes">
- <summary>
- This is the character type table. Each byte is bitwise encoded
- with the character attributes, such as whether that character is
- word or whitespace.
- </summary>
- </member>
- <member name="P:RTools_NTS.Util.StreamTokenizerSettings.GrabWhitespace">
- <summary>
- Whether or not to return whitespace tokens. If not, they're ignored.
- </summary>
- </member>
- <member name="P:RTools_NTS.Util.StreamTokenizerSettings.GrabEol">
- <summary>
- Whether or not to return EolTokens on end of line. Eol tokens will not
- break up other tokens which can be multi-line. For example block comments
- and quotes will not be broken by Eol tokens. Therefore the number of
- Eol tokens does not give you the line count of a stream.
- </summary>
- </member>
- <member name="P:RTools_NTS.Util.StreamTokenizerSettings.SlashSlashComments">
- <summary>
- Whether or not to look for // comments
- </summary>
- </member>
- <member name="P:RTools_NTS.Util.StreamTokenizerSettings.SlashStarComments">
- <summary>
- Whether or not to look for /* */ block comments.
- </summary>
- </member>
- <member name="P:RTools_NTS.Util.StreamTokenizerSettings.GrabComments">
- <summary>
- Whether or not to return comments.
- </summary>
- </member>
- <member name="P:RTools_NTS.Util.StreamTokenizerSettings.DoUntermCheck">
- <summary>
- Whether or not to check for unterminated quotes and block comments.
- If true, and one is encoutered, an exception is thrown of the appropriate type.
- </summary>
- </member>
- <member name="P:RTools_NTS.Util.StreamTokenizerSettings.ParseNumbers">
- <summary>
- Whether or not digits are specified as Digit type in the
- character table.
- This setting is based on the character types table, so this
- setting interacts with character type table manipulation.
- This setting may become incorrect if you modify the character
- types table directly.
- </summary>
- </member>
- <member name="P:RTools_NTS.Util.StreamTokenizerSettings.ParseHexNumbers">
- <summary>
- Whether or not to parse Hex (0xABCD...) numbers.
- This setting is based on the character types table, so this
- setting interacts with character type table manipulation.
- </summary>
- </member>
- <member name="M:RTools_NTS.Util.StreamTokenizerSettings.#ctor">
- <summary>
- Default constructor.
- </summary>
- </member>
- <member name="M:RTools_NTS.Util.StreamTokenizerSettings.#ctor(RTools_NTS.Util.StreamTokenizerSettings)">
- <summary>
- Copy constructor.
- </summary>
- </member>
- <member name="M:RTools_NTS.Util.StreamTokenizerSettings.Copy(RTools_NTS.Util.StreamTokenizerSettings)">
- <summary>
- Sets this object to be the same as the specified object.
- Note that some settings which are entirely embodied by the character
- type table.
- </summary>
- </member>
- <member name="M:RTools_NTS.Util.StreamTokenizerSettings.SetDefaults">
- <summary>
- Setup default parse behavior.
- This resets to same behavior as on construction.
- </summary>
- <returns>bool - true for success.</returns>
- </member>
- <member name="M:RTools_NTS.Util.StreamTokenizerSettings.SetupForCodeParse">
- <summary>
- Apply settings which are commonly used for code parsing
- C-endCapStyle code, including C++, C#, and Java.
- </summary>
- <returns></returns>
- </member>
- <member name="M:RTools_NTS.Util.StreamTokenizerSettings.ResetCharTypeTable">
- <summary>
- Clear the character type settings. This leaves them unset,
- as opposed to the default. Use SetDefaults() for default
- settings.
- </summary>
- </member>
- <member name="M:RTools_NTS.Util.StreamTokenizerSettings.WordChar(System.Int32)">
- <summary>
- Specify that a particular character is a word character.
- Character table type manipulation method.
- This adds the type to the char(s), rather
- than overwriting other types.
- </summary>
- <param name="c">The character.</param>
- </member>
- <member name="M:RTools_NTS.Util.StreamTokenizerSettings.WordChars(System.Int32,System.Int32)">
- <summary>
- Specify that a range of characters are word characters.
- Character table type manipulation method.
- This adds the type to the char(s), rather
- than overwriting other types.
- </summary>
- <param name="startChar">First character.</param>
- <param name="endChar">Last character.</param>
- </member>
- <member name="M:RTools_NTS.Util.StreamTokenizerSettings.WordChars(System.String)">
- <summary>
- Specify that a string of characters are word characters.
- Character table type manipulation method.
- This adds the type to the char(s), rather
- than overwriting other types.
- </summary>
- <param name="s"></param>
- </member>
- <member name="M:RTools_NTS.Util.StreamTokenizerSettings.WhitespaceChar(System.Int32)">
- <summary>
- Specify that a character is a whitespace character.
- Character table type manipulation method.
- This type is exclusive with other types.
- </summary>
- <param name="c">The character.</param>
- </member>
- <member name="M:RTools_NTS.Util.StreamTokenizerSettings.WhitespaceChars(System.Int32,System.Int32)">
- <summary>
- Specify that a range of characters are whitespace characters.
- Character table type manipulation method.
- This adds the characteristic to the char(s), rather
- than overwriting other characteristics.
- </summary>
- <param name="startChar">First character.</param>
- <param name="endChar">Last character.</param>
- </member>
- <member name="M:RTools_NTS.Util.StreamTokenizerSettings.OrdinaryChars(System.Int32,System.Int32)">
- <summary>
- Remove other type settings from a range of characters.
- Character table type manipulation method.
- </summary>
- <param name="startChar"></param>
- <param name="endChar"></param>
- </member>
- <member name="M:RTools_NTS.Util.StreamTokenizerSettings.OrdinaryChar(System.Int32)">
- <summary>
- Remove other type settings from a character.
- Character table type manipulation method.
- </summary>
- <param name="c"></param>
- </member>
- <member name="M:RTools_NTS.Util.StreamTokenizerSettings.CommentChar(System.Int32)">
- <summary>
- Specify that a particular character is a comment-starting character.
- Character table type manipulation method.
- </summary>
- <param name="c"></param>
- </member>
- <member name="M:RTools_NTS.Util.StreamTokenizerSettings.QuoteChar(System.Int32)">
- <summary>
- Specify that a particular character is a quote character.
- Character table type manipulation method.
- </summary>
- <param name="c"></param>
- </member>
- <member name="M:RTools_NTS.Util.StreamTokenizerSettings.CharTypeToString(System.Byte)">
- <summary>
- Return a string representation of a character type setting.
- Since the type setting is bitwise encoded, a character
- can have more than one type.
- </summary>
- <param name="ctype">The character type byte.</param>
- <returns>The string representation of the type flags.</returns>
- </member>
- <member name="M:RTools_NTS.Util.StreamTokenizerSettings.IsCharType(System.Byte,RTools_NTS.Util.CharTypeBits)">
- <summary>
- Check whether the specified char type byte has a
- particular type flag set.
- </summary>
- <param name="ctype">The char type byte.</param>
- <param name="type">The CharTypeBits entry to compare to.</param>
- <returns>bool - true or false</returns>
- </member>
- <member name="M:RTools_NTS.Util.StreamTokenizerSettings.IsCharType(System.Char,RTools_NTS.Util.CharTypeBits)">
- <summary>
- Check whether the specified char has a
- particular type flag set.
- </summary>
- <param name="c">The character.</param>
- <param name="type">The CharTypeBits entry to compare to.</param>
- <returns>bool - true or false</returns>
- </member>
- <member name="M:RTools_NTS.Util.StreamTokenizerSettings.IsCharType(System.Int32,RTools_NTS.Util.CharTypeBits)">
- <summary>
- Check whether the specified char has a
- particular type flag set.
- </summary>
- <param name="c">The character.</param>
- <param name="type">The CharTypeBits entry to compare to.</param>
- <returns>bool - true or false</returns>
- </member>
- <member name="M:RTools_NTS.Util.StreamTokenizerSettings.Display">
- <summary>
- Display the state of this object.
- </summary>
- </member>
- <member name="M:RTools_NTS.Util.StreamTokenizerSettings.Display(System.String)">
- <summary>
- Display the state of this object, with a per-line prefix.
- </summary>
- <param name="prefix">The pre-line prefix.</param>
- </member>
- <member name="T:RTools_NTS.Util.StreamTokenizer">
- <summary>
- A StreamTokenizer similar to Java's. This breaks an input stream
- (coming from a TextReader) into Tokens based on various settings. The settings
- are stored in the TokenizerSettings property, which is a
- StreamTokenizerSettings instance.
- </summary>
- <remarks>
- <para>
- This is configurable in that you can modify TokenizerSettings.CharTypes[] array
- to specify which characters are which type, along with other settings
- such as whether to look for comments or not.
- </para>
- <para>
- WARNING: This is not internationalized. This treats all characters beyond
- the 7-bit ASCII range (decimal 127) as Word characters.
- </para>
- <para>
- There are two main ways to use this: 1) Parse the entire stream at
- once and get an ArrayList of Tokens (see the Tokenize* methods),
- and 2) call NextToken() successively.
- This reads from a TextReader, which you can set directly, and this
- also provides some convenient methods to parse files and strings.
- This returns an Eof token if the end of the input is reached.
- </para>
- <para>
- Here's an example of the NextToken() endCapStyle of use:
- <code>
- StreamTokenizer tokenizer = new StreamTokenizer();
- tokenizer.GrabWhitespace = true;
- tokenizer.Verbosity = VerbosityLevel.Debug; // just for debugging
- tokenizer.TextReader = File.OpenText(fileName);
- Token token;
- while (tokenizer.NextToken(out token)) log.Info("Token = '{0}'", token);
- </code>
- </para>
- <para>
- Here's an example of the Tokenize... endCapStyle of use:
- <code>
- StreamTokenizer tokenizer = new StreamTokenizer("some string");
- ArrayList tokens = new ArrayList();
- if (!tokenizer.Tokenize(tokens))
- {
- // error handling
- }
- foreach (Token t in tokens) Console.WriteLine("t = {0}", t);
- </code>
- </para>
- <para>
- Comment delimiters are hardcoded (// and /*), not affected by char type table.
- </para>
- <para>
- This sets line numbers in the tokens it produces. These numbers are normally
- the line on which the token starts.
- There is one known caveat, and that is that when GrabWhitespace setting
- is true, and a whitespace token contains a newline, that token's line number
- will be set to the following line rather than the line on which the token
- started.
- </para>
- </remarks>
- </member>
- <member name="F:RTools_NTS.Util.StreamTokenizer.NChars">
- <summary>
- This is the number of characters in the character table.
- </summary>
- </member>
- <member name="P:RTools_NTS.Util.StreamTokenizer.TextReader">
- <summary>
- This is the TextReader that this object will read from.
- Set this to set the input reader for the parse.
- </summary>
- </member>
- <member name="P:RTools_NTS.Util.StreamTokenizer.Settings">
- <summary>
- The settings which govern the behavior of the tokenization.
- </summary>
- </member>
- <member name="M:RTools_NTS.Util.StreamTokenizer.#ctor">
- <summary>
- Default constructor.
- </summary>
- </member>
- <member name="M:RTools_NTS.Util.StreamTokenizer.#ctor(System.IO.TextReader)">
- <summary>
- Construct and set this object's TextReader to the one specified.
- </summary>
- <param name="sr">The TextReader to read from.</param>
- </member>
- <member name="M:RTools_NTS.Util.StreamTokenizer.#ctor(System.IO.TextReader,RTools_NTS.Util.StreamTokenizerSettings)">
- <summary>
- Construct and set this object's TextReader to the one specified.
- </summary>
- <param name="sr">The TextReader to read from.</param>
- <param name="tokenizerSettings">Tokenizer settings.</param>
- </member>
- <member name="M:RTools_NTS.Util.StreamTokenizer.#ctor(System.String)">
- <summary>
- Construct and set a string to tokenize.
- </summary>
- <param name="str">The string to tokenize.</param>
- </member>
- <member name="M:RTools_NTS.Util.StreamTokenizer.Initialize">
- <summary>
- Utility function, things common to constructors.
- </summary>
- </member>
- <member name="M:RTools_NTS.Util.StreamTokenizer.InitializeStream">
- <summary>
- Clear the stream settings.
- </summary>
- </member>
- <member name="M:RTools_NTS.Util.StreamTokenizer.Display">
- <summary>
- Display the state of this object.
- </summary>
- </member>
- <member name="M:RTools_NTS.Util.StreamTokenizer.Display(System.String)">
- <summary>
- Display the state of this object, with a per-line prefix.
- </summary>
- <param name="prefix">The pre-line prefix.</param>
- </member>
- <member name="T:RTools_NTS.Util.StreamTokenizer.NextTokenState">
- <summary>
- The states of the state machine.
- </summary>
- </member>
- <member name="M:RTools_NTS.Util.StreamTokenizer.PickNextState(System.Byte,System.Int32)">
- <summary>
- Pick the next state given just a single character. This is used
- at the start of a new token.
- </summary>
- <param name="ctype">The type of the character.</param>
- <param name="c">The character.</param>
- <returns>The state.</returns>
- </member>
- <member name="M:RTools_NTS.Util.StreamTokenizer.PickNextState(System.Byte,System.Int32,RTools_NTS.Util.StreamTokenizer.NextTokenState)">
- <summary>
- Pick the next state given just a single character. This is used
- at the start of a new token.
- </summary>
- <param name="ctype">The type of the character.</param>
- <param name="c">The character.</param>
- <param name="excludeState">Exclude this state from the possible next state.</param>
- <returns>The state.</returns>
- </member>
- <member name="M:RTools_NTS.Util.StreamTokenizer.GetNextChar">
- <summary>
- Read the next character from the stream, or from backString
- if we backed up.
- </summary>
- <returns>The next character.</returns>
- </member>
- <member name="M:RTools_NTS.Util.StreamTokenizer.NextToken(RTools_NTS.Util.Token@)">
- <summary>
- Get the next token. The last token will be an EofToken unless
- there's an unterminated quote or unterminated block comment
- and Settings.DoUntermCheck is true, in which case this throws
- an exception of type StreamTokenizerUntermException or sub-class.
- </summary>
- <param name="token">The output token.</param>
- <returns>bool - true for success, false for failure.</returns>
- </member>
- <member name="M:RTools_NTS.Util.StreamTokenizer.GrabInt(RTools_NTS.Util.CharBuffer,System.Boolean,System.Char@)">
- <summary>
- Starting from current stream location, scan forward
- over an int. Determine whether it's an integer or not. If so,
- push the integer characters to the specified CharBuffer.
- If not, put them in backString (essentially leave the
- stream as it was) and return false.
- <para>
- If it was an int, the stream is left 1 character after the
- end of the int, and that character is output in the thisChar parameter.
- </para>
- <para>The formats for integers are: 1, +1, and -1</para>
- The + and - signs are included in the output buffer.
- </summary>
- <param name="sb">The CharBuffer to append to.</param>
- <param name="allowPlus">Whether or not to consider + to be part
- of an integer.</param>
- <param name="thisChar">The last character read by this method.</param>
- <returns>true for parsed an int, false for not an int</returns>
- </member>
- <member name="M:RTools_NTS.Util.StreamTokenizer.Tokenize(System.Collections.Generic.IList{RTools_NTS.Util.Token})">
- <summary>
- Parse the rest of the stream and put all the tokens
- in the input ArrayList. This resets the line number to 1.
- </summary>
- <param name="tokens">The ArrayList to append to.</param>
- <returns>bool - true for success</returns>
- </member>
- <member name="M:RTools_NTS.Util.StreamTokenizer.TokenizeReader(System.IO.TextReader,System.Collections.Generic.IList{RTools_NTS.Util.Token})">
- <summary>
- Parse all tokens from the specified TextReader, put
- them into the input ArrayList.
- </summary>
- <param name="tr">The TextReader to read from.</param>
- <param name="tokens">The ArrayList to append to.</param>
- <returns>bool - true for success, false for failure.</returns>
- </member>
- <member name="M:RTools_NTS.Util.StreamTokenizer.TokenizeFile(System.String,System.Collections.Generic.IList{RTools_NTS.Util.Token})">
- <summary>
- Parse all tokens from the specified file, put
- them into the input ArrayList.
- </summary>
- <param name="fileName">The file to read.</param>
- <param name="tokens">The ArrayList to put tokens in.</param>
- <returns>bool - true for success, false for failure.</returns>
- </member>
- <member name="M:RTools_NTS.Util.StreamTokenizer.TokenizeFile(System.String)">
- <summary>
- Tokenize a file completely and return the tokens in a Token[].
- </summary>
- <param name="fileName">The file to tokenize.</param>
- <returns>A Token[] with all tokens.</returns>
- </member>
- <member name="M:RTools_NTS.Util.StreamTokenizer.TokenizeString(System.String,System.Collections.Generic.IList{RTools_NTS.Util.Token})">
- <summary>
- Parse all tokens from the specified string, put
- them into the input ArrayList.
- </summary>
- <param name="str"></param>
- <param name="tokens">The ArrayList to put tokens in.</param>
- <returns>bool - true for success, false for failure.</returns>
- </member>
- <member name="M:RTools_NTS.Util.StreamTokenizer.TokenizeStream(System.IO.Stream,System.Collections.Generic.IList{RTools_NTS.Util.Token})">
- <summary>
- Parse all tokens from the specified Stream, put
- them into the input ArrayList.
- </summary>
- <param name="s"></param>
- <param name="tokens">The ArrayList to put tokens in.</param>
- <returns>bool - true for success, false for failure.</returns>
- </member>
- <member name="M:RTools_NTS.Util.StreamTokenizer.GetEnumerator">
- <summary>
- Gibt einen Enumerator zurück, der die Auflistung durchläuft.
- </summary>
- <returns>
- Ein <see cref="T:System.Collections.Generic.IEnumerator`1"/>, der zum Durchlaufen der Auflistung verwendet werden kann.
- </returns>
- <filterpriority>1</filterpriority>
- </member>
- <member name="M:RTools_NTS.Util.StreamTokenizer.System#Collections#IEnumerable#GetEnumerator">
- <summary>
- Gibt einen Enumerator zurück, der eine Auflistung durchläuft.
- </summary>
- <returns>
- Ein <see cref="T:System.Collections.IEnumerator"/>-Objekt, das zum Durchlaufen der Auflistung verwendet werden kann.
- </returns>
- <filterpriority>2</filterpriority>
- </member>
- <member name="T:RTools_NTS.Util.Token">
- <summary>
- Token class used by StreamTokenizer.
- This represents a single token in the input stream.
- This is subclassed to provide specific token types,
- such as CharToken, FloatToken, etc.
- </summary>
- </member>
- <member name="F:RTools_NTS.Util.Token._lineNumber">
- <summary>
- The line number in the input stream where this token originated.
- This is base-1.
- </summary>
- </member>
- <member name="P:RTools_NTS.Util.Token.LineNumber">
- <summary>
- The line number where this token was found. This is base-1.
- </summary>
- </member>
- <member name="F:RTools_NTS.Util.Token.obj">
- <summary>
- A storage object for the data of this token.
- </summary>
- </member>
- <member name="P:RTools_NTS.Util.Token.Object">
- <summary>
- The Object stored by this token. This will be
- a primitive C# type.
- </summary>
- </member>
- <member name="F:RTools_NTS.Util.Token.untermError">
- <summary>
- Backer for UntermError.
- </summary>
- </member>
- <member name="P:RTools_NTS.Util.Token.UntermError">
- <summary>
- Whether or not there was an unterminated token problem
- when creating this token. See UntermErrorMessage for
- a message associated with the problem.
- </summary>
- </member>
- <member name="F:RTools_NTS.Util.Token.untermErrorMsg">
- An error message associated with unterm error.
- </member>
- <member name="P:RTools_NTS.Util.Token.UntermErrorMsg">
- <summary>
- The error message if there was an unterminated token error
- creating this token.
- </summary>
- </member>
- <member name="M:RTools_NTS.Util.Token.#ctor(System.Int32)">
- <summary>
- Construct a Token with the specified line number.
- </summary>
- <param name="line">The line number where this
- token comes from.</param>
- </member>
- <member name="M:RTools_NTS.Util.Token.Equals(System.Object)">
- <summary>
- Equals override.
- </summary>
- <param name="other">The object to compare to.</param>
- <returns>bool - true for equals, false otherwise.</returns>
- </member>
- <member name="M:RTools_NTS.Util.Token.Equals(System.String)">
- <summary>
- Equals overload.
- </summary>
- <param name="s">The string to compare to.</param>
- <returns>bool</returns>
- </member>
- <member name="M:RTools_NTS.Util.Token.Equals(System.Char)">
- <summary>
- Equals overload.
- </summary>
- <param name="c">The char to compare to.</param>
- <returns>bool</returns>
- </member>
- <member name="M:RTools_NTS.Util.Token.op_Equality(RTools_NTS.Util.Token,System.Object)">
- <summary>
- Operator== overload. Compare a token and an object.
- </summary>
- <param name="t">The token to compare.</param>
- <param name="o">The other object.</param>
- <returns>bool</returns>
- </member>
- <member name="M:RTools_NTS.Util.Token.op_Inequality(RTools_NTS.Util.Token,System.Object)">
- <summary>
- Operator!= overload. Compare a token and an object.
- </summary>
- <param name="t">The token to compare.</param>
- <param name="o">The other object.</param>
- <returns>bool</returns>
- </member>
- <member name="M:RTools_NTS.Util.Token.op_Equality(RTools_NTS.Util.Token,System.Char)">
- <summary>
- Operator== overload. Compare a token and a char.
- </summary>
- <param name="t">The token to compare.</param>
- <param name="c">The char.</param>
- <returns>bool</returns>
- </member>
- <member name="M:RTools_NTS.Util.Token.op_Inequality(RTools_NTS.Util.Token,System.Char)">
- <summary>
- Operator!= overload. Compare a token and a char.
- </summary>
- <param name="t">The token to compare.</param>
- <param name="c">The char.</param>
- <returns>bool</returns>
- </member>
- <member name="M:RTools_NTS.Util.Token.op_Equality(RTools_NTS.Util.Token,System.String)">
- <summary>
- Operator== overload. Compare a token and a string.
- </summary>
- <param name="t">The token to compare.</param>
- <param name="s">The string.</param>
- <returns>bool</returns>
- </member>
- <member name="M:RTools_NTS.Util.Token.op_Inequality(RTools_NTS.Util.Token,System.String)">
- <summary>
- Operator!= overload. Compare a token and a string.
- </summary>
- <param name="t">The token to compare.</param>
- <param name="s">The string.</param>
- <returns>bool</returns>
- </member>
- <member name="M:RTools_NTS.Util.Token.GetHashCode">
- <summary>
- Override. Returns the ToString().GetHashCode().
- </summary>
- <returns>The hash code.</returns>
- </member>
- <member name="P:RTools_NTS.Util.Token.StringValue">
- <summary>
- Return this token's value as a string.
- </summary>
- <returns>This token's value as a string.</returns>
- </member>
- <member name="M:RTools_NTS.Util.Token.ToLineString">
- <summary>
- Produce a string which includes the line number.
- </summary>
- <returns></returns>
- </member>
- <member name="M:RTools_NTS.Util.Token.ToDebugString">
- <summary>
- Produce a string which includes the token type.
- </summary>
- <returns></returns>
- </member>
- <member name="M:RTools_NTS.Util.Token.ConvertToType(System.Type)">
- <summary>
- Create an object of the specified type corresponding to
- this token.
- </summary>
- <param name="t">The type of object to create.</param>
- <returns>The new object, or null for error.</returns>
- </member>
- <member name="T:RTools_NTS.Util.EolToken">
- <summary>
- Represents end-of-lines (line separator characters).
- </summary>
- </member>
- <member name="M:RTools_NTS.Util.EolToken.#ctor">
- <summary>Default constructor.</summary>
- </member>
- <member name="M:RTools_NTS.Util.EolToken.#ctor(System.Int32)">
- <summary>Constructor that takes line number.</summary>
- </member>
- <member name="M:RTools_NTS.Util.EolToken.ToDebugString">
- <summary>Override, see base <see cref="T:RTools_NTS.Util.Token"/></summary>
- </member>
- <member name="M:RTools_NTS.Util.EolToken.ToString">
- <summary>Override, see base <see cref="T:RTools_NTS.Util.Token"/></summary>
- </member>
- <member name="M:RTools_NTS.Util.EolToken.Equals(System.Object)">
- <summary>Override, see base <see cref="T:RTools_NTS.Util.Token"/></summary>
- </member>
- <member name="P:RTools_NTS.Util.EolToken.StringValue">
- <summary>Override, see base <see cref="T:RTools_NTS.Util.Token"/></summary>
- </member>
- <member name="M:RTools_NTS.Util.EolToken.GetHashCode">
- <summary>Override, see base <see cref="T:RTools_NTS.Util.Token"/></summary>
- </member>
- <member name="T:RTools_NTS.Util.EofToken">
- <summary>
- Represents end of file/stream.
- </summary>
- </member>
- <member name="M:RTools_NTS.Util.EofToken.#ctor">
- <summary>Default constructor.</summary>
- </member>
- <member name="M:RTools_NTS.Util.EofToken.#ctor(System.Int32)">
- <summary>Constructor that takes line number.</summary>
- </member>
- <member name="M:RTools_NTS.Util.EofToken.ToString">
- <summary>Override, see base <see cref="T:RTools_NTS.Util.Token"/></summary>
- </member>
- <member name="M:RTools_NTS.Util.EofToken.ToDebugString">
- <summary>Override, see base <see cref="T:RTools_NTS.Util.Token"/></summary>
- </member>
- <member name="M:RTools_NTS.Util.EofToken.Equals(System.Object)">
- <summary>Override, see base <see cref="T:RTools_NTS.Util.Token"/></summary>
- </member>
- <member name="P:RTools_NTS.Util.EofToken.StringValue">
- <summary>Override, see base <see cref="T:RTools_NTS.Util.Token"/></summary>
- </member>
- <member name="M:RTools_NTS.Util.EofToken.GetHashCode">
- <summary>Override, see base <see cref="T:RTools_NTS.Util.Token"/></summary>
- </member>
- <member name="T:RTools_NTS.Util.StringToken">
- <summary>
- Abstract base class for string tokens.
- </summary>
- </member>
- <member name="M:RTools_NTS.Util.StringToken.#ctor(System.String)">
- <summary>Default constructor.</summary>
- </member>
- <member name="M:RTools_NTS.Util.StringToken.#ctor(System.String,System.Int32)">
- <summary>Constructor with the specified value
- and line number.</summary>
- </member>
- <member name="M:RTools_NTS.Util.StringToken.ToDebugString">
- <summary>Override, see base <see cref="T:RTools_NTS.Util.Token"/></summary>
- </member>
- <member name="M:RTools_NTS.Util.StringToken.ToString">
- <summary>Override, see base <see cref="T:RTools_NTS.Util.Token"/></summary>
- </member>
- <member name="P:RTools_NTS.Util.StringToken.StringValue">
- <summary>Override, see base <see cref="T:RTools_NTS.Util.Token"/></summary>
- </member>
- <member name="M:RTools_NTS.Util.StringToken.GetHashCode">
- <summary>Override, see base <see cref="T:RTools_NTS.Util.Token"/></summary>
- </member>
- <member name="T:RTools_NTS.Util.WordToken">
- <summary>
- Token type for words, meaning sequences of word
- characters.
- </summary>
- </member>
- <member name="M:RTools_NTS.Util.WordToken.#ctor(System.String)">
- <summary>Constructor with the specified value.</summary>
- </member>
- <member name="M:RTools_NTS.Util.WordToken.#ctor(System.String,System.Int32)">
- <summary>Constructor with the specified value
- and line number.</summary>
- </member>
- <member name="T:RTools_NTS.Util.QuoteToken">
- <summary>
- Token type for Quotes such as "this is a quote".
- </summary>
- </member>
- <member name="M:RTools_NTS.Util.QuoteToken.#ctor(System.String)">
- <summary>Constructor with the specified value.</summary>
- </member>
- <member name="M:RTools_NTS.Util.QuoteToken.#ctor(System.String,System.Int32)">
- <summary>Constructor with the specified value
- and line number.</summary>
- </member>
- <member name="T:RTools_NTS.Util.CommentToken">
- <summary>
- Token type for comments, including line and block
- comments.
- </summary>
- </member>
- <member name="M:RTools_NTS.Util.CommentToken.#ctor(System.String)">
- <summary>Constructor with the specified value.</summary>
- </member>
- <member name="M:RTools_NTS.Util.CommentToken.#ctor(System.String,System.Int32)">
- <summary>Constructor with the specified value
- and line number.</summary>
- </member>
- <member name="T:RTools_NTS.Util.WhitespaceToken">
- <summary>
- Token type for whitespace such as spaces and tabs.
- </summary>
- </member>
- <member name="M:RTools_NTS.Util.WhitespaceToken.#ctor(System.String)">
- <summary>Constructor with the specified value.</summary>
- </member>
- <member name="M:RTools_NTS.Util.WhitespaceToken.#ctor(System.String,System.Int32)">
- <summary>Constructor with the specified value
- and line number.</summary>
- </member>
- <member name="T:RTools_NTS.Util.CharToken">
- <summary>
- Token type for characters, meaning non-word characters.
- </summary>
- </member>
- <member name="M:RTools_NTS.Util.CharToken.#ctor(System.String,System.Int32)">
- <summary>Constructor with the specified value
- and line number.</summary>
- </member>
- <member name="M:RTools_NTS.Util.CharToken.#ctor(System.Char)">
- <summary>Constructor with the specified value.</summary>
- </member>
- <member name="M:RTools_NTS.Util.CharToken.#ctor(System.Char,System.Int32)">
- <summary>Constructor with the specified value.</summary>
- </member>
- <member name="M:RTools_NTS.Util.CharToken.ToDebugString">
- <summary>Override, see base <see cref="T:RTools_NTS.Util.Token"/></summary>
- </member>
- <member name="M:RTools_NTS.Util.CharToken.ToString">
- <summary>Override, see base <see cref="T:RTools_NTS.Util.Token"/></summary>
- </member>
- <member name="M:RTools_NTS.Util.CharToken.GetHashCode">
- <summary>Override, see base <see cref="T:RTools_NTS.Util.Token"/></summary>
- </member>
- <member name="P:RTools_NTS.Util.CharToken.StringValue">
- <summary>Override, see base <see cref="T:RTools_NTS.Util.Token"/></summary>
- </member>
- <member name="M:RTools_NTS.Util.CharToken.Equals(System.Object)">
- <summary>Override, see base <see cref="T:RTools_NTS.Util.Token"/></summary>
- </member>
- <member name="T:RTools_NTS.Util.FloatToken">
- <summary>
- Token type for floating point numbers, stored internally as a Double.
- </summary>
- </member>
- <member name="M:RTools_NTS.Util.FloatToken.#ctor(System.String)">
- <summary>
- Constructor with the specified value.
- </summary>
- </member>
- <member name="M:RTools_NTS.Util.FloatToken.#ctor(System.Single)">
- <summary>
- Constructor with the specified value.
- </summary>
- </member>
- <member name="M:RTools_NTS.Util.FloatToken.#ctor(System.Double)">
- <summary>
- Constructor with the specified value.
- </summary>
- </member>
- <member name="M:RTools_NTS.Util.FloatToken.#ctor(System.String,System.Int32)">
- <summary>
- Constructor with the specified value and line number.
- </summary>
- </member>
- <member name="M:RTools_NTS.Util.FloatToken.#ctor(System.Double,System.Int32)">
- <summary>
- Constructor with the specified value and line number.
- </summary>
- </member>
- <member name="M:RTools_NTS.Util.FloatToken.ToDebugString">
- <summary>
- Override, see base <see cref="T:RTools_NTS.Util.Token"/>
- </summary>
- </member>
- <member name="M:RTools_NTS.Util.FloatToken.ToString">
- <summary>
- Override, see base <see cref="T:RTools_NTS.Util.Token"/>
- </summary>
- </member>
- <member name="M:RTools_NTS.Util.FloatToken.GetHashCode">
- <summary>
- Override, see base <see cref="T:RTools_NTS.Util.Token"/>
- </summary>
- </member>
- <member name="P:RTools_NTS.Util.FloatToken.StringValue">
- <summary>
- Override, see base <see cref="T:RTools_NTS.Util.Token"/>
- </summary>
- </member>
- <member name="M:RTools_NTS.Util.FloatToken.Equals(System.Object)">
- <summary>
- Override, see base <see cref="T:RTools_NTS.Util.Token"/>
- </summary>
- </member>
- <member name="T:RTools_NTS.Util.IntToken">
- <summary>
- Token type for integer tokens. This handles both Int32 and Int64.
- </summary>
- </member>
- <member name="M:RTools_NTS.Util.IntToken.#ctor(System.Int32)">
- <summary>Constructor with the specified value.</summary>
- </member>
- <member name="M:RTools_NTS.Util.IntToken.#ctor(System.Int64)">
- <summary>Constructor with the specified value.</summary>
- </member>
- <member name="M:RTools_NTS.Util.IntToken.#ctor(System.String)">
- <summary>Constructor with the specified value.</summary>
- </member>
- <member name="M:RTools_NTS.Util.IntToken.#ctor(System.String,System.Int32)">
- <summary>Constructor with the specified value
- and line number.</summary>
- </member>
- <member name="M:RTools_NTS.Util.IntToken.#ctor(System.Int32,System.Int32)">
- <summary>Constructor with the specified value
- and line number.</summary>
- </member>
- <member name="M:RTools_NTS.Util.IntToken.#ctor(System.Int64,System.Int32)">
- <summary>
- Constructor for a 64 bit int
- </summary>
- </member>
- <member name="M:RTools_NTS.Util.IntToken.ParseHex(System.String,System.Int32)">
- <summary>
- Parse a string known to be a hex string. This is faster
- than Parse which doesn't assume the number is Hex. This will
- throw an exception if the input number isn't hex.
- </summary>
- <param name="s">The hex number as a string.</param>
- <param name="lineNumber">The line where this token was found.</param>
- <returns>A new IntToken set to the value in the input string.</returns>
- </member>
- <member name="M:RTools_NTS.Util.IntToken.Parse(System.String)">
- <summary>
- Convert the input string to an integer, if possible
- </summary>
- <param name="s">The string to parse.</param>
- </member>
- <member name="M:RTools_NTS.Util.IntToken.ToDebugString">
- <summary>Override, see base <see cref="T:RTools_NTS.Util.Token"/></summary>
- </member>
- <member name="M:RTools_NTS.Util.IntToken.ToString">
- <summary>Override, see base <see cref="T:RTools_NTS.Util.Token"/></summary>
- </member>
- <member name="M:RTools_NTS.Util.IntToken.GetHashCode">
- <summary>Override, see base <see cref="T:RTools_NTS.Util.Token"/></summary>
- </member>
- <member name="P:RTools_NTS.Util.IntToken.StringValue">
- <summary>Override, see base <see cref="T:RTools_NTS.Util.Token"/></summary>
- </member>
- <member name="M:RTools_NTS.Util.IntToken.Equals(System.Object)">
- <summary>Override, see base <see cref="T:RTools_NTS.Util.Token"/></summary>
- </member>
- <member name="T:RTools_NTS.Util.VerbosityLevel">
- <summary>
- This enumerates verbosity levels.
- </summary>
- </member>
- <member name="F:RTools_NTS.Util.VerbosityLevel.Error">
- <summary>For error messages.</summary>
- </member>
- <member name="F:RTools_NTS.Util.VerbosityLevel.Warn">
- <summary>For warn messages.</summary>
- </member>
- <member name="F:RTools_NTS.Util.VerbosityLevel.Info">
- <summary>For info messages.</summary>
- </member>
- <member name="F:RTools_NTS.Util.VerbosityLevel.Debug">
- <summary>For debug messages.</summary>
- </member>
- </members>
- </doc>
|