/*========================================================================= Program: Visualization Toolkit Module: TestLabelPlacementMapper2D.cxx Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen All rights reserved. See Copyright.txt or http://www.kitware.com/Copyright.htm for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notice for more information. =========================================================================*/ #include "vtkActor.h" #include "vtkActor2D.h" #include "vtkCamera.h" #include "vtkIdTypeArray.h" #include "vtkLabelPlacementMapper.h" #include "vtkLabelSizeCalculator.h" #include "vtkLabeledDataMapper.h" #include "vtkMath.h" #include "vtkPointData.h" #include "vtkPointSetToLabelHierarchy.h" #include "vtkPoints.h" #include "vtkPolyData.h" #include "vtkPolyDataMapper.h" #include "vtkRegressionTestImage.h" #include "vtkRenderWindow.h" #include "vtkRenderWindowInteractor.h" #include "vtkRenderer.h" #include "vtkSmartPointer.h" #include "vtkStringArray.h" #include "vtkTestUtilities.h" #include "vtkTextProperty.h" #define PTSMULT 10 #define TXTMULT (PTSMULT * PTSMULT) //#define GENERATE_TEST_POINTS static const char* vtkTextLabelList[] = { "Barbey", "Ozark", "Pennsylvania", "Gear", "Firm", "Beacon", "Hayes", "Harder", "Fortify", "Gudgeon", "Threadfin", "Surprise", "Cape May", "Tolovana", "Wilkes", "Billfish", "Plaice", "Minotaur", "Fitzgerald", "Specter", "Maloy", "Curb", "Whitehall", "Longview", "Hull", "Phoenix", "Abbot", "Newport", "Shannon", "Charrette", "Yarnall", "Muliphen", "Herndon", "Talbot", "Helios", "Lake Erie", "Carbonero", "Begor", "Reeves", "Potomac", "Miller", "Chilton", "Florida", "McInerney", "Dupont", "Laub", "Desplaines River", "Rincon", "Audacious", "Timber Hitch", "Heron", "Birmingham", "Cofer", "Koelsch", "Fremont", "Cape Douglas", "Cape Isabel", "Champion", "Des Moines", "Herald", "Crommelin", "Waccamaw", "Whale", "Marchand", "Aylwin", "Markab", "McLanahan", "Susquehanna", "Mobile", "Bulwark", "Ashland", "Bronx", "Mark", "Northern Light", "Melville", "Schuylkill", "Tippecanoe", "Yellowstone", "Gypsy", "Crosley", "Dash", "Rhode Island", "Memphis", "Khirirat", "Kearsarge", "Okinawa", "Bondia", "Sabine", "Acme", "Cushing", "Twin Falls", "Mendonca", "Lamoille River", "Benner", "Cape Trinity", "St. Louis", "Cronin", "Ozbourn", "Cape Gloucester", "Puffer", "Arcadia", "Gordon", "Ardent", "Yorktown", "Latona", "Kalamazoo", "Klondike", "Passumpsic", "Scorpion", "Carpellotti", "Hooper Island", "Higgins", "Chukawan", "Napa", "Lucid", "Bold", "Assertive", "Bronstein", "Kittiwake", "Allagash", "San Bernardino", "Pogy", "Leyte Gulf", "Inflict", "Gilmer", "Norwalk", "Satyr", "Dyess", "Gregory", "Avenger", "Wren", "Higbee", "Blandy", "Inchon", "Tattnall", "Spadefish", "Herkimer", "Williamson", "Tillamook", "Cheyenne", "Macon", "Gherardi", "Ward", "Bang", "Earheart", "Skate", "Cape John", "Union", "Atule", "Sailfish", "Nebraska", "Warbler", "Booth", "Deperm", "Fitch", "Grasp", "Laramie River", "Sea Leopard", "Gunason", "Preble", "Texas", "Sealift Antarctic", "Mauna Kea", "Ticonderoga", "Aldebaran", "Capricornus", "Hidatsa", "Grayling", "Myers", "Chauncey", "Monterey", "Misn Santa Clara", "Cape Cod", "Sylvania", "Caloosahatchee", "Ranger", "Guide", "Aeolus", "Atlas", "Shangri-la", "Petersburg", "Chewaucan", "Queenfish", "Curlew", "Mount Whitney", "Robinson", "Haraden", "Pyro", "Hartford", "Hepburn", "Albuquerque", "Hammerhead", "Starling", "Augusta", "Overton", "Worden", "McFaul", "Idaho", "Safeguard", "Umpqua", "Stanton", "Mispillion", "O'Kane", "Indra", "Manley", "Chatterer", "Engage", "Gettysburg", "Invincible", "Saipan", "Cape Henry", "Intrepid", "Furse", "Denver", "Dubuque", "Guest", "Accokeek", "Counsel", "Knapp", "Mount Baker", "Ingersoll", "Hancock", "Boyd", "Pinnacle", "Perkins", "Zeus", "Cape Vincent", "Chepachet", "Prairie", "Leftwich", "Chafee", "Observation Island", "Roanoke", "Hanson", "Brunswick", "Pinckney", "Swordfish", "Affray", "Rednour", "Cone", "Picking", "Hobby", "Sealift Mediteranean", "Yukon", "Whirlwind", "Shamal", "Firecrest", "Salinan", "Pope", "Scamp", "Owyhee", "Watertown", "Mahopac", "Philippine Sea", "Sequoia", "Wabash", "Atlantis", "Raton", "Peacock", "Askari", "Warrington", "Susanville", "Bridget", "Stringham", "Knudson", "Rodman", "Colhoun", "Tappahannock", "Alamo", "Omaha", "Bauer", "Shasta", "Soderman", "Loyal", "Vella Gulf", "Sentry", "Southerland", "Wyoming", "Louisiana", "Albacore", "Cavallaro", "Oldendorf", "Price", "Prevail", "Widgeon", "Register", "Vicksburg", "Scott", "Tortuga", "Knox", "Wilkinson", "Boulder", "Halibut", "Nimitz", "Neches", "Wagner", "Forster", "Rockingham", "Carr", "Short Splice", "Rockwall", "Gemini", "Noa", "Roosevelt", "Constitution", "Foote", "Lynch", "Kleinsmith", "Herbert", "Pegasus", "Salute", "Relentless", "Capps", "Norton Sound", "Limpkin", "Galveston", "Mountrail", "Douglas", "Copeland", "Harwood", "Rowe", "Grebe", "Frigate Bird", "Varian", "Kane", "Kilty", "San Marcos", "Ford", "Pioneer Valley", "Hawkins", "Dufilho", "Waldron", "Defender", "New York", "Chung-hoon", "Quick", "Escape", "Asterion", "Gary", "Sevier", "Antelope", "Seahorse", "Lang", "Betelgeuse", "San Juan", "Point Defiance", "Tallulah", "Yokes", "Saugatuck", "Effective", "Yosemite", "Sunfish", "Adventurous", "Bunker Hill", "Los Angeles", "Kiowa", "Sargo", "Jallao", "Mackenzie", "Nenville", "Marine Fiddler", "Arlington", "Caperton", "Navajo", "Brownson", "Tollberg", "Fort Marion", "Rushmore", "Salish", "Valcour", "Telamon", "Dallas", "Providence", "Frament", "Ottersetter", "Mack", "Irwin", "Plainview", "Nautilus", "Quillback", "Vega", "Loyalty", "Tidewater", "Sturgeon", "Sealift Arctic", "Atherton", "Fife", "Raven", "Atlanta", "Implicit", "Sunnyvale", "Rival", "Cape Edmont", "Trout", "Trumpetfish", "Algol", "Gendreau", "Bellerophon", "Coral Sea", "Menhaden", "Utina", "Cobia", "Vital", "Amick", "Kilo Moana", "Salem", "Ray", "French", "Perseus", "Eichenberger", "Swasey", "Corporal", "Muskingum", "Minnesota", "Zelima", "Mason", "Quirinus", "Nashville", "Mission Capistrano", "Chicago", "Wheatear", "Stethem", "Stockham", "Canon", "Pueblo", "Severn", "Somerset", "Haddo", "Dolphin", "Sims", "Lawrence", "Dickerson", "Samoset", "Alacrity", "Muir", "Conner", "Elkhorn", "Marsh", "Cape Intrepid", "Pivot", "Penobscot", "Triton", "Peconic", "Shadwell", "Clamp", "Skill", "Valley Forge", "Pollack", "Buchanan", "Coffman", "Snook", "Portsmouth", "Halyburton", "Benavidez", "Boise", "Vesuvius", "Sirago", "Pampanito", "Tabberer", "Pigeon", "McCandless", "Jeffers", "Fisher", "Runels", "South Carolina", "Endurance", "Finback", "Pinnebog", "Sigourney", "Pargo", "Towers", "O'Bannon", "Guadalupe", "Kansas", "La Jolla", "Bartlett", "Hunley", "Tolman", "Hoist", "Pearl Harbor", "Sealift China Sea", "Collett", "Nespelen", "Anchorage", "Columbia", "Saginaw", "Scranton", "Sutton", "Illusive", "Tench", "Cape Victory", "Trippe", "Fiske", "New Jersey", "Kline", "Georgia", "Oregon", "Piscataqua", "Henson", "Gallery", "Meteor", "Chandler", "Putnam", "Pollux", "Patuxent", "Hazelwood", "Apollo", "Fletcher", "Huse", "Moinester", "Wiltsie", "Gato", "Ouellet", "Red River", "Gearing", "Glennon", "Houston", "Flasher", "Bunch", "Barb", "Simpson", "Sterett", "Cahokia", "Gridley", "Tunxis", "Laning", "Stallion", "Cincinnati", "Miami", "O'Brien", "Sage", "Wheeling", "Hoel", "Tunny", "Acadia", "Mero", "San Francisco", "Vulcan", "Nimble", "Moana Wave", "Papago", "Glynn", "Holton", "Gravely", "Sanctuary", "Cape Rise", "Lander", "Bowers", "Makin Island", "Chanticleer", "Helena", "Conolly", "Shughart", "Arikara", "Nicholas", "Magnet", "Chickadee", "Tuscaloosa", "Skylark", "Esteem", "White Sands", "Nicholson", "Mount Vernon", "Francovich", "Peterson", "Hawes", "Cowpens", "Kankakee", "Falgout", "Chimariko", "Denebola", "Chancellorsville", "Willamette", "Supply", "Illinois", "Plymouth Rock", "Deyo", "Harkness", "Henley", "Sealion", "Pickerel", "Toledo", "Talledega", "Wiseman", "Coastal Crusader", "Tunica", "McNair", "Massachusetts", "Gilliland", "Southern Cross", "Marshfield", "Mataco", "Grand Canyon", "Aries", "Ponchatoula", "Cape Taylor", "Fahrion", "Mullinnix", "Hill", "Tigrone", "Tautog", "Fort Mandan", "Grenadier", "Caliente", "McMorris", "Henrico", "Gosselin", "Prime", "Hilbert", "Fabius", "Indiana", "Reid", "Hickox", "Guitarro", "Kretchmer", "Leary", "Iwo Jima", "Carney", "Daniel", "Shakamayon", "Chain", "Besugo", "Wright", "Sealift Indian Ocean", "Greenfish", "Whitemarsh", "Velocity", "Alexandria", "Anzio", "De Steiguer", "Biddle", "Colorado", "Libra", "Gillespie", "Truckee", "Kirkpatrick", "Pluck", "Blueback", "Roselle", "Hyades", "Evans", "Cape Ray", "Sharps", "Parche", "Swenning", "Bellatrix", "Gantner", "Wickes", "Chatelain", "Darter", "Upshur", "Cread", "Niagara Falls", "Lamar", "Berkeley", "Rutland", "Lapon", "Canberra", "South Dakota", "Durant", "Persistent", "Pasadena", "Gallup", "Acree", "Tatum", "Burdo", "Canopus", "Edwards", "Laboon", "Silversides", "Wisconsin", "Regulus", "Connecticut", "Trepang", "Tonawanda", "Consolation", "Conquest", "Tinsman", "McKean", "Hoquiam", "Bradford", "McConnell", "Condor", "Tiru", "Sprig", "Cape Lambert", "Aggressive", "Tawakoni", "Ampere", "Dextrous", "McNulty", "Yano", "Enright", "Alatna", "Brewton", "America", "Opportune", "Concord", "Agile", "Point Loma", "Volador", "Waxsaw", "White Plains", "Contender", "Wyman", "Cape Bover", "Cascade", "Kennebec", "Sierra", "Provo", "Dorchester", "Roper", "Portland", "Coghlan", "Cape Knox", "Briscoe", "Kellar", "Cook", "Davidson", "Recovery", "Hayter", "Rupertus", "Mississinewa", "Hector", "Big Black River", "Threat", "Zephyr", "Cromwell", "Suribachi", "Clamagore", "Thornhill", "Barry", "Coolbaugh", "Smoky Hill River", "Maury", "Cleveland", "Chattahoochee", "Hudson", "Sunbird", "Bremerton", "Riley", "Mahan", "Rochester", "Edenton", "Boxer", "Bexar", "Worthy", "Michigan", "Pilot", "O'Hare", "Hercules", "Cape Hudson", "Whippoorwill", "Yancey", "Cape Diamond", "Pride", "Batfish", "Ross", "Monticello", "Collingsworth", "Laffey", "Rigel", "Doyle", "Goldsborough", "Norfolk", "Barney", "Bryce Canyon", "Flint", "Cotten", "Bray", "Sarpedon", "Maine", "Ramsey", "Pavlic", "Comstock", "Seadragon", "Uhlmann", "Bridge", "Meade", "Bowen", "Fresno", "Abatan", "Venture", "Pledge", "Sea Devil", "Dennis", "New Mexico", "Little Rock", "Vireo", "Cape Washington", "Shawnee Trail", "Balduck", "Cole", "Kephart", "Mitscher", "Moore", "Advance", "Midas", "Washington", "McCampbell", "Gansevoort", "Peoria", "Reaper", "Bushnell", "Chipola", "Mount McKinley", "Camden", "Hollis", "Cabildo", "Stoddard", "Estocin", "Quincy", "Coucal", "Wahoo", "Ashtabula", "Lexington", "Scout", "Dace", "Tercel", "Catamount", "Tripoli", "Aludra", "Comet", "Isle Royale", "Marias", "Shrike", "Magoffin", "Baltimore", "Thomaston", "New Orleans", "Cadmus", "Fearless", "Redpoll", "Mercy", "Rappahannock", "Hemminger", "Colonial", "Lewis And Clark", "Savage", "Rankin", "Kyne", "Sumner", "Tomich", "Sam Houston", "Owen", "Exultant", "Hammann", "Winston", "Devastator", "Flyer", "Namakagon", "Surfbird", "Oklahoma", "Clark", "Newman", "Vancouver", "Davison", "Barber", "Dixon", "Tuscarora", "Cape Borda", "Jacksonville", "Brittin", "Welch", "Kitty Hawk", "Truett", "Greeneville", "Compass Island", "Ainsworth", "Impervious", "Mount Hood", "Freedom.", "Arneb", "Bataan", "Gallatin", "Preserver", "Tempest", "Capella", "Taussig", "Zumwalt", "Mapiro", "Black Hawk", "Vesole", "Cape Orlando", "Hart", "Witter", "Stafford", "Gonzalez", "Franks", "Spokane", "Kingman", "Indomitable", "Tekesta", "Cape Florida", "Brule", "Rogers", "Scribner", "Gallant", "Swerve", "Ajax", "Nitro", "Tullibee", "Jason", "Shakori", "Kauffman", "Cape Flattery", "Rooks", "Blair", "Tarawa", "Decatur", "Princeton", "Arizona", "Trathen", "Hale", "Misn Buenaventura", "Patriot", "Sea Dog", "Mender", "Quapaw", "Semmes", "Pickaway", "Navasota", "Parker", "Jicarilla", "Chikaskia", "Sam Rayburn", "Noxubee", "Dale", "Carpenter", "Abraham Lincoln", "Okanogan", "Salt Lake City", "Charleston", "Eldorado", "Reasoner", "Rentz", "Washburn", "Patterson", "Cape Race", "Mirfak", "Sculpin", "Connole", "Donner", "Baton Rouge", "Durham", "Gurke", "Rhodes", "Picuda", "Briareus", "Germantown", "Hitchiti", "Cape Johnson", "Bollinger", "Cape Gibson", "Schenectady", "Austin", "Liddle", "Genesee", "Flatley", "Luiseno", "Bates", "Louisville", "Shea", "Tulare", "Spangler", "Deliver", "Aquila", "Permit", "Ready", "Stevens", "Vigor", "Kilauea", "Guardian", "Cape Ann", "Corbesier", "Utah", "Hamner", "Frederick", "North Dakota", "Olympia", "Schmitt", "Bluefish", "Gage", "Monsoon", "Agerholm", "Boyle", "Duncan", "Red Cloud", "Pittsburgh", "Fort Fisher", "Blackfin", "Woolsey", "Stark", "Klakring", "Dominant", "Hailey", "De Haven", "Thrush", "Shark", "Seminole", "Paiute", "Annapolis", "Clemson", "Schley", "Maumee", "Cape Farewell", "Hampton", "Capitaine", "El Paso", "Gyre", "Jacana", "Pathfinder", "Sides", "Shoup", "Nipmuc", "Eunice", "Snyder", "Parks", "Merrick", "Navigator", "Embattle", "Sacagawea", "Farquhar", "Bannock", "Hurricane", "Roncador", "Nantahala", "Goodrich", "Waters", "Hulbert", "Lagarto", "Norman Scott", "Raymond", "Blessman", "Molala", "Sand Lance", "Marietta", "Alabama", "Meredith", "Sample", "Megara", "Claxton", "Porterfield", "Gurnard", "Hank", "Detroit", "Plunkett", "Vreeland", "Exploit", "Barrett", "Stalwart", "Moosbrugger", "Delong", "Thresher", "Mellette", "Comfort", "Trenton", "Grand Rapids", "Macdonough", "Delta", "Cockrill", "Clinton", "Spot", "Carronade", "Tornado", "Kingbird", "Squall", "Sisler", "Tutuila", "Brooks", "Hollister", "Burke", "Cabot", "Trumpeter", "Kirwin", "Corry", "Aspro", "Puget Sound", "Saint Paul", "Lake Champlain", "Springfield", "Portage", "Whipple", "Brown", "Pinto", "Luce", "Benicia", "Pecos", "Eltanin", "Cape Horn", "Fort Snelling", "Kinzer", "Converse", "Chambers", "Merrimack", "Thach", "Hanna", "Defiance", "Butte", "Little", "Wantuck", "Gray", "Juneau", "Jarrett", "Sigsbee", "Hurst", "Lassen", "Hunt", "Port Royal", "Walke", "Antares", "McCook", "Bullard", "Ringness", "Bennington", "Cossatot", "Benham", "Cape Kennedy", "Conserver", "Tirante", "Cooner", "Midway", "Razorback", "Horne", "Plunger", "Hall", "Mars", "Griffin", "Chara", "San Diego", "Ortolan", "Taconic", "Kinkaid", "Dutton", "Coates", "Superior", "Mizar", "Somers", "McKee", "McCloy", "Coronado", "Raleigh", "Seneca", "Benfold", "Terry", "Buck", "Bassett", "Charlton", "Texas", "Constant", "Kirk", "Mauna Loa", "Kraken", "Hermitage", "Sealift Pacific", "Capodanno", "Archerfish", "Morton", "Michelson", "Cape Jacob", "Laramie", "Vindicator", "Vandivier", "Cusabo", "Brooke", "Big Horn", "Leahy", "Remora", "Maine", "New Hampshire", "Gatling", "Callaghan", "McCaffery", "Integrity", "California", "Petrel", "Adria", "Mosopelea", "Lowry", "Warrior", "Mount Washington", "Tusk", "Grapple", "Repose", "Mosley", "Delaware", "Cocopa", "Pecatonica", "Cape Alexander", "Fulton", "Wyandot", "Parrot", "Glomar Explorer", "Typhoon", "Sausalito", "Adroit", "Thornback", "Oriole", "Forrestal", "Takelma", "Boston", "Saratoga", "Isherwood", "Blue Ridge", "Pintado", "Halsey", "Breton", "Growler", "Heermann", "Cape Texas", "Challenge", "Whidbey Island", "Sturtevant", "Moctobi", "Scabbard Fish", "Stewart", "Stockdale", "Sandoval", "Cowell", "Range Sentinel", "Tombigbee", "Burns", "Marathon", "Falcon", "Barbel", "Taylor", "Kamehameha", "Chowanoc", "Brumby", "Vogelgesang", "Mississippi", "Capable", "Kalmia", "Niobrara", "Keywadin", "Chesapeake", "Currituck", "Green Bay", "Amberjack", "Pililaau", "Lockwood", "Pomeroy", "Chloris", "Greenlet", "Lester", "Howard", "Key West", "West Virginia", "Hopping", "Thunderbolt", "Bradley", "Kershaw", "Montana", "Cape Mendocino", "Kite", "Shreveport", "Pensacola", "Kanawha", "Levy", "Strong", "Suamico", "Powhatan", "Hewitt", "Santa Fe", "La Salle", "Kiska", "Ordronaux", "Detector", "Petaluma", "Sarasota", "Oriskany", "Sphinx", "Woodpecker", "Pocono", "Chosin", "Hooper", "Racine", "Antietam", "Remey", "Tang", "Pelican", "Mount Katmai", "Mesa Verde", "Aulick", "Kingsbury", "Vance", "Humphreys", "Cape Ducato", "New", "Randolph", "Joyce", "Pascagoula", "Sway", "Van Valkenburgh", "Sarsfield", "Blenny", "Groton", "Tennessee", "Weber", "Watts", "Damato", "Mission Buenaventura", "Placerville", "Chauvenet", "Lavallette", "Arkansas", "Daly", "Dewey", "Procyon", "Chase", "Victoria", "Shenandoah", "Milwaukee", "Flying Fish", "Carib", "Palmyra", "Bainbridge", "Thuban", "Alaska", "Sealift Atlantic", "Charlotte", "Frontier", "Meyerkord", "Huntsville", "Topeka", "Narragansett", "Tatnuck", "Tanner", "Davis", "Mohawk", "Cavalla", "Guam", "Antrim", "Keith", "Altair", "Bergall", "Paul", "Seawolf", "Mockingbird", "Rendova", "San Antonio", "Current", "Robin", "Honolulu", "Kingsport", "Olmsted", "Haddock", "Oswald", "Vermont", "Thorn", "Ringgold", "North Carolina", "Mobile Bay", "Fanning", "McFarland", "Tacoma", "Dahlgren", "Bolster", "Narwhal", "Diachenko", "Enterprise", "Sioux", "Bennett", "Mansfield", "Tucson", "Dyson", "Seattle", "Broadbill", "American Cormorant", "Sea Poacher", "Pelias", "American Explorer", "Upham", "Ohio", "Cape Domingo", "Kishwaukee", "Ruddy", "Titan", "Norris", "Hopper", "Blue", "Rommel", "Neunzer", "Fort Mchenry", "Glover", "Cape Wrath", "Piedmont", "Rich", "Belknap", "Canisteo", "Renshaw", "Silverstein", "Van Voorhis", "Rowan", "Edson", "Tinosa", "Garcia", "O'Callahan", "Lodestone", "Sumter", "Walsh", "Major", "Ogden", "Merrill", "Wichita", "Swallow", "Force", "Endymion", "Ramsden", "Ramage", "Holder", "England", "Sands", "Rolf", "Sampson", "Haines", "Logan", "High Point", "Dashiell", "Drum", "Cape St. George", "Chief", "Hanford", "Epperson", "Lindsey", "Fidelity", "Ingraham", "Barr", "Robison", "Watkins", "Pictor", "Atakapa", "Lowndes", "Arcturus", "Sellers", "Greene", "New York City", "Lipan", "Wadleigh", "Kidd", "Cape Mohican", "Finch", "Edmonds", "Skipjack", "Littlehales", "Lizardfish", "Krishna", "Hayler", "Malabar", "Crockett", "Montpelier", "Blakely", "Bancroft", "Cormorant", "Northhampton", "Von Steuben", "Tawasa", "Spruance", "Camp", "Nassau", "Shoshone", "Ricketts", "Nereus", "Savannah", "Fentress", "Peleliu", "Neptune", "Cape Fear", "Choctaw", "Sabalo", "Jouett", "Laws", "Ault", "Salmon", "Arctic", "Elliot", "Cardinal", "McClelland", "Vanguard", "Oak Hill", "Willis", "Triumph", "Poole", "Sirius", "Manitowoc", "Bulkeley", "Schroeder", "Cutlass", "Seay", "Nevada", "Cape Lobos", "Everglades", "Iowa", "Power", "Fox", "Chickasaw", "Sagamore", "Pharris", "Bearss", "Redstone", "Bull", "Bittern", "Pitt", "Tenacious", "Lofberg", "Inch", "Jack", "Stein", "King", "Essex", "Florikan", "Mulberry", "Holland", "Cobbler", "Great Sitkin", "Hue City", "Rathburne", "Normandy", "Gillette", "Whitley", "Shoveler", "Voge", "Columbus", "Momsen", "Paricutin", "Indianapolis", "Straub", "Anthony", "Lavsan Island", "Conflict", "Phoebe", "Rose Knot", "Long Beach", "Egeria", "Frybarger", "Bagley", "Pettit", "Hummingbird", "Crosby", "Porter", "Amphion", "Maryland", "Duluth", "Rainier", "Henderson", "Cape Breton", "Calcaterra", "Cache", "Oflaherty", "Bingham", "Saturn", "Hawaii", "Tecumseh", "Observer", "Elrod", "Missouri", "Shelton", "Bon Homme Richard", "Osterhaus", "Asheboro", "Courtney", "Hodges", "Wadsworth", "Truxtun", "Independence", "Casa Grande", "Ponce", "Santa Barbara", "Haleakala", "Direct", "Downes", "Doran", "Marshall", "Braine", "Bigelow", "Cape Decision", "Purdy", "Sangay", "Nitze", "Ruchamkin", "Lloyd", "Cape Nome", "Shiloh", "Bausell", "Vandegrift", "Bonefish", "Mustin", "Valdez", "Newport News", "Sirocco", "Cohoes", "Aventinus", "Rizzi", "Gladiator", "Orleck", "Taluga", "St. Croix", "Thor", "Furman", "Victorious", "Strong Virginian", "Wandank", "Sealift Caribbean", "Colleton", "Coontz", "McCord", "Osprey", "Osmus", "Kawishiwi", "Beaufort", "Hyde", "Underwood", "Sperry", "Wrangell", "Maddox", "Kimberly", "Neosho", "Basilone", "Jarvis", "Catawba", "Williamsburg", "Curtiss", "Thrasher", "Kingfisher", "Dortch", "Erben", "Jenks", "Knorr", "Millicoma", "Entemedor", "Dynamic", "Schofield", "Virginia", "Cree", "Cimarron", "Cable", "Guadalcanal", "Asheville", "San Jose", "Haven", "Amesbury", "Pomfret", "Valor", "Blue Bird", "Sacramento", "Patapsgo", "Chevalier", "Sealift Arabian Sea", "Cape Blanco", "Eversole", "Greenville Victory", "Hassayampa", "Chinook", "Cape Avinof", "Hammerberg", "Watson", "Holt", "Spica", "Russell", "Lafayette", "Greenling", "Cochrane", "Woodrow Wilson", "Bordelon", "Cape Girardeau", "Becuna", "Misn Santa Ynez", "Bell", "Platte", "Strickland", "Stribling", "Massey", "Navarro", "Milius", "Firedrake", "Aucilla", "Stump", "Guardfish", "Excel", "Roark", "Borum", "Buffalo", "Lansing", "Stout", "Frankford", "Bottineau", "Energy", "Albany", "Waddell", "Cape Inscription", "Belet", "Grayback", "Trigger", "Steinaker", "Achelous", "Assurance", "Perry", "Cruise", "Vermilion", "San Jacinto", "Diamond Head", "Lardner", "Fanshaw Bay", "Pawcatuck", "Hawkbill", "Notable", "Constellation", "Estes", "Curts", "Kentucky", "Cape Juby", "Corpus Christi Bay", "Meadowlark", "Parsons", "Sturdy", "Swift", "Osberg", "Taurus", "Minneapolis-Saint Paul", "Healy", "Dahl", "Melvin", "Hornet", "Leader", "Salvor", "Soubarissen", "Monongahela", "Wainwright", "Black", "Johnston", "Monssen", "McClusky", "Dent", "Cayuga", "Conyngham", "Durkik", "Abnaki", "Tringa", "De Wert", "Cape Island", "Pioneer", "Weiss", "Odum", "Reclaimer", "Comte De Grasse", "Brock", "Wasp", "Geiger", "Vincennes", "Stembel", "McGowan", "Chehalis", "Janssen", "Impeccable", "Dixie", "Baya", "Stockton", "Ute", "Whetstone", "Muskogee", "Hissem", "Farragut", "Broad Kill River", "Boone", "Philadelphia", "Orion", "Nodaway", "Firebolt", "Bowditch", "Loy", "Benson", "Cape Archway", "Apache", "Enhance", "Mills", "Cyclone", "Able", "Moale", "Achomawi", "Caron", "Nervous Energy", "Prosthetic Conscience", "The Ends Of Invention", "Eschatologist", "Irregular Apocalyse", "No More Mr Nice Guy", "Determinist", "Bora Horza Gobuchul", "Profit Margin", "Trade Surplus", "Revisionist", "Screw Loose", "Flexible Demeanour", "Just Read The Instructions", "Of Course I Still Love You", "Limiting Factor", "Cargo Cult", "Little Rascal", "So Much For Subtlety", "Unfortunate Conflict Of Evidence", "Youthful Indiscretion", "Gunboat Diplomat", "Zealot", "Prime Mover", "Just Testing", "Xenophobe", "Very Little Gravitas Indeed", "Congenital Optimist", "Size Isn't Everything", "Sweet and Full of Grace", "Different Tan", "Fate Amenable To Change", "Grey Area", "It's Character Forming", "Jaundiced Outlook", "Problem Child", "Reasonable Excuse", "Recent Convert", "Tactical Grace", "Unacceptable Behaviour", "Steely Glint", "Highpoint", "Shoot Them Later", "Attitude Adjuster", "Killing Time", "Frank Exchange Of Views", "Death and Gravity", "Ethics Gradient", "Honest Mistake", "No Fixed Abode", "Quietly Confident", "Sleeper Service", "Uninvited Guest", "Use Psychology", "What Is The Answer and Why?", "Wisdom Like Silence", "Yawning Angel", "Zero Gravitas", "Misophist", "Serious Callers Only", "Not Invented Here", "Appeal To Reason", "Break Even", "Long View", "Peace Makes Plenty", "Sober Counsel", "Within Reason", "Full Refund", "Charitable View", "Just Passing Through", "Added Value", "I Blame Your Mother", "I Blame My Mother", "Heavy Messing", "Bad for Business", "Arbitrary", "Cantankerous", "Only Slightly Bent", "I Thought He Was With You", "Space Monster", "A Series Of Unlikely Explanations", "Never Talk To Strangers", "Funny, It Worked Last Time...", "Boo!", "It'll Be Over By Christmas", "A Ship With A View", "Ablation", "Arrested Development", "Credibility Problem", "Dramatic Exit", "Excuses And Accusations", "Halation Effect", "Happy Idiot Talk", "Helpless In The Face Of Your Beauty", "Just Another Victim Of The Ambient Morality", "Minority Report", "Not Wanted On Voyage", "Perfidy", "Sacrificial Victim", "Stranger Here Myself", "Synchronize Your Dogmas", "Thank you And Goodnight", "The Precise Nature Of The Catastrope", "Unwitting Accomplice", "Undesirable Alien", "Well I Was In The Neighbourhood", "You Would If You Really Loved Me", "You'll Thank Me Later", "Winter Storm", "Piety", "Nuisance Value", "Vulgarian", "Sanctioned Parts List", "Resistance Is Character-Forming", "Someone Else's Problem", "Lacking That Small Match Temperament", "Poke It With A Stick", "But Who's Counting?", "Germane Riposte", "We Haven't Met But You're A Great Fan Of Mine", "All The Same, I Saw It First", "Zero Credibility", "Charming But Irrational", "Demented But Determined", "You May Not Be The Coolest Person Here", "Lucid Nonsense", "Awkward Customer", "Thorough But ... Unreliable", "Advanced Case Of Chronic Patheticism", "Another Fine Product From The Nonsense Factory", "Conventional Wisdom", "In One Ear", "Fine Till You Came Along", "I Blame The Parents", "Inappropriate Response", "A Momentary Lapse Of Sanity", "Reformed Nice Guy", "Pride Comes Before A Fall", "Injury Time", "Now Look What You've Made Me Do", "Kiss This Then", "Experiencing A Significant Gravitas Shortfall", "Hairier Legs Than Mine", }; static unsigned int vtkTextLabelListLength = sizeof(vtkTextLabelList) / sizeof(vtkTextLabelList[0]); // This random array happens to be the same length as the // vtkTextLabelList array. Make sure it remains at least // that long! static double vtkLabelPlacer2DTestPoints[] = { 0.00921164, 0.819977, 0.347464, 0.831205, 0.0670384, 0.714962, 0.371513, 0.0237718, 0.53187, 0.133539, 0.381945, 0.35307, 0.0462124, 0.691374, 0.924344, 0.457128, 0.942825, 0.0607652, 0.280221, 0.673314, 0.380992, 0.331482, 0.225509, 0.123754, 0.93843, 0.195171, 0.242676, 0.662619, 0.631243, 0.30133, 0.447617, 0.107093, 0.907174, 0.865733, 0.368378, 0.331684, 0.615594, 0.295142, 0.451003, 0.00361544, 0.764768, 0.461687, 0.571292, 0.699818, 0.837362, 0.551284, 0.434063, 0.30029, 0.979631, 0.656224, 0.164354, 0.290287, 0.860508, 0.565351, 0.854881, 0.978975, 0.63096, 0.541449, 0.137936, 0.284214, 0.77669, 0.823447, 0.675641, 0.501772, 0.277766, 0.410558, 0.252085, 0.792617, 0.518522, 0.802662, 0.332251, 0.135308, 0.125279, 0.563129, 0.512682, 0.652736, 0.533406, 0.948849, 0.302287, 0.530752, 0.340962, 0.555047, 0.676284, 0.31189, 0.926874, 0.972603, 0.536253, 0.809922, 0.361924, 0.849495, 0.470372, 0.540795, 0.144947, 0.123148, 0.740687, 0.720296, 0.0190669, 0.458023, 0.986429, 0.919463, 0.406779, 0.738743, 0.0489612, 0.891708, 0.928413, 0.837712, 0.431541, 0.904269, 0.047463, 0.7111, 0.459614, 0.74045, 0.745189, 0.398016, 0.447616, 0.0806239, 0.046374, 0.408533, 0.213632, 0.512887, 0.0956262, 0.19025, 0.53053, 0.623171, 0.633394, 0.457661, 0.905121, 0.375017, 0.914485, 0.744035, 0.988009, 0.473073, 0.944365, 0.944494, 0.103906, 0.352722, 0.195195, 0.646345, 0.118655, 0.242551, 0.557834, 0.516189, 0.584005, 0.374389, 0.350099, 0.118398, 0.921871, 0.885747, 0.75278, 0.981625, 0.163932, 0.208981, 0.338259, 0.114224, 0.756866, 0.649797, 0.140211, 0.525654, 0.663248, 0.216916, 0.70975, 0.760232, 0.222778, 0.225644, 0.397588, 0.269708, 0.987455, 0.158755, 0.19194, 0.938443, 0.408902, 0.408133, 0.488362, 0.907696, 0.641816, 0.00403692, 0.848517, 0.0237265, 0.77128, 0.896673, 0.389918, 0.357299, 0.127779, 0.580769, 0.987407, 0.347348, 0.880217, 0.801059, 0.397824, 0.232027, 0.675761, 0.510065, 0.66343, 0.269865, 0.627837, 0.0623407, 0.759489, 0.73345, 0.0917873, 0.668824, 0.930535, 0.497226, 0.870253, 0.34634, 0.9444, 0.525171, 0.550098, 0.489602, 0.741733, 0.311525, 0.795485, 0.717851, 0.925502, 0.91302, 0.123419, 0.311028, 0.447825, 0.592253, 0.999612, 0.471759, 0.858625, 0.910176, 0.330858, 0.733188, 0.698071, 0.486099, 0.85826, 0.771814, 0.875937, 0.878095, 0.143901, 0.551986, 0.227157, 0.832514, 0.0589326, 0.479662, 0.681143, 0.969573, 0.61705, 0.754182, 0.530348, 0.556987, 0.284907, 0.426953, 0.791037, 0.957813, 0.960302, 0.792472, 0.0846935, 0.44438, 0.700365, 0.0345829, 0.235323, 0.0732833, 0.672021, 0.660814, 0.295711, 0.0214549, 0.593233, 0.466199, 0.399559, 0.389259, 0.283942, 0.205167, 0.233713, 0.00605129, 0.704013, 0.344583, 0.408559, 0.644951, 0.69193, 0.260538, 0.85767, 0.865751, 0.682889, 0.309238, 0.371072, 0.609343, 0.235205, 0.0974772, 0.299716, 0.319199, 0.776657, 0.268534, 0.251848, 0.817612, 0.607462, 0.615124, 0.388897, 0.188194, 0.973502, 0.649598, 0.80185, 0.687508, 0.94625, 0.627194, 0.24633, 0.0624264, 0.200598, 0.44407, 0.47779, 0.210866, 0.0257956, 0.547, 0.43066, 0.100981, 0.188088, 0.201565, 0.705136, 0.223273, 0.54574, 0.247097, 0.953654, 0.062951, 0.0173391, 0.418538, 0.364271, 0.306433, 0.227732, 0.485644, 0.213744, 0.395716, 0.799009, 0.940637, 0.286018, 0.101311, 0.739645, 0.216207, 0.784382, 0.107851, 0.657926, 0.756327, 0.58172, 0.961214, 0.129855, 0.477344, 0.727918, 0.115796, 0.186343, 0.866525, 0.689947, 0.930856, 0.90311, 0.572044, 0.343724, 0.974073, 0.240767, 0.571992, 0.476226, 0.931022, 0.680039, 0.41542, 0.95733, 0.837931, 0.113644, 0.0136078, 0.705817, 0.673267, 0.592869, 0.344679, 0.0139583, 0.596819, 0.744855, 0.786149, 0.802779, 0.306765, 0.803879, 0.792016, 0.404912, 0.359009, 0.865855, 0.41963, 0.728268, 0.992515, 0.201468, 0.0800923, 0.111556, 0.923455, 0.509654, 0.762779, 0.0343794, 0.814362, 0.985321, 0.296453, 0.477599, 0.00686788, 0.428397, 0.0621733, 0.946402, 0.185493, 0.581593, 0.841356, 0.673021, 0.464169, 0.294535, 0.249103, 0.682175, 0.314733, 0.713871, 0.0270751, 0.0506227, 0.815833, 0.70577, 0.869459, 0.00433748, 0.900063, 0.352159, 0.737701, 0.541624, 0.0688405, 0.00203305, 0.169404, 0.170001, 0.211147, 0.746419, 0.0631366, 0.137243, 0.642403, 0.869911, 0.595023, 0.559254, 0.375682, 0.0795518, 0.0264484, 0.518231, 0.916675, 0.554188, 0.243873, 0.765219, 0.0423473, 0.730576, 0.792922, 0.648394, 0.561278, 0.396737, 0.950779, 0.738713, 0.5514, 0.376826, 0.320054, 0.155575, 0.754422, 0.573998, 0.185987, 0.886725, 0.190613, 0.639591, 0.600613, 0.502161, 0.825737, 0.158697, 0.222926, 0.718742, 0.891539, 0.100699, 0.445629, 0.695, 0.859704, 0.0479826, 0.443325, 0.957508, 0.845057, 0.877982, 0.246555, 0.846006, 0.828898, 0.281032, 0.297567, 0.204121, 0.654834, 0.796263, 0.789383, 0.155419, 0.121702, 0.445907, 0.356049, 0.110197, 0.0868531, 0.739943, 0.21512, 0.521189, 0.628481, 0.880739, 0.575577, 0.725925, 0.627795, 0.353866, 0.432755, 0.317263, 0.247245, 0.447425, 0.869152, 0.830387, 0.320623, 0.718499, 0.804688, 0.383108, 0.902432, 0.182611, 0.136, 0.750474, 0.215184, 0.591007, 0.0548935, 0.594651, 0.29671, 0.810676, 0.0348111, 0.0706352, 0.166363, 0.0601629, 0.157963, 0.880405, 0.970715, 0.807409, 0.1207, 0.603239, 0.642915, 0.477015, 0.198298, 0.801575, 0.0688153, 0.578266, 0.924327, 0.164226, 0.141104, 0.531582, 0.299034, 0.859453, 0.833444, 0.686721, 0.71348, 0.455766, 0.0567995, 0.629921, 0.0849518, 0.78454, 0.770007, 0.499638, 0.417882, 0.341394, 0.802555, 0.535003, 0.797639, 0.91909, 0.146834, 0.844283, 0.865188, 0.207738, 0.455267, 0.67565, 0.654128, 0.923888, 0.779365, 0.794203, 0.172428, 0.997002, 0.620205, 0.791694, 0.998441, 0.791884, 0.198072, 0.991197, 0.0551287, 0.548681, 0.686498, 0.97595, 0.795811, 0.201553, 0.50752, 0.894122, 0.511354, 0.331266, 0.580909, 0.343496, 0.14078, 0.0844368, 0.130024, 0.310811, 0.800275, 0.222249, 0.338755, 0.449925, 0.892724, 0.0107553, 0.76407, 0.72211, 0.494464, 0.449709, 0.263527, 0.0968643, 0.997694, 0.234835, 0.867734, 0.00958032, 0.0163636, 0.0235464, 0.744157, 0.0532865, 0.585373, 0.366023, 0.751856, 0.451885, 0.835524, 0.657834, 0.219885, 0.609302, 0.546782, 0.770557, 0.744365, 0.536295, 0.504919, 0.180586, 0.113317, 0.519387, 0.337012, 0.158611, 0.779157, 0.285274, 0.599727, 0.617612, 0.209508, 0.199102, 0.304128, 0.479338, 0.238858, 0.48553, 0.299312, 0.542745, 0.914331, 0.155917, 0.493773, 0.837866, 0.0149391, 0.0812193, 0.0526611, 0.0744966, 0.0642446, 0.759306, 0.655511, 0.173542, 0.718922, 0.923952, 0.863631, 0.0393725, 0.733765, 0.386279, 0.193276, 0.397368, 0.559571, 0.709759, 0.922136, 0.345001, 0.432944, 0.492868, 0.625549, 0.596143, 0.37073, 0.866338, 0.54319, 0.40084, 0.91561, 0.654851, 0.0878107, 0.835067, 0.964881, 0.756416, 0.0910349, 0.0236578, 0.616241, 0.155286, 0.889653, 0.39488, 0.74058, 0.927173, 0.00181209, 0.455839, 0.278754, 0.0193973, 0.0107221, 0.205588, 0.317085, 0.254277, 0.634945, 0.526232, 0.388287, 0.940925, 0.127504, 0.95551, 0.259219, 0.691616, 0.990652, 0.888024, 0.0220513, 0.616558, 0.489927, 0.202958, 0.117015, 0.678102, 0.862607, 0.838234, 0.195321, 0.762525, 0.752729, 0.121225, 0.425655, 0.98228, 0.177356, 0.815212, 0.259758, 0.752869, 0.468697, 0.395982, 0.26504, 0.532525, 0.15147, 0.753942, 0.503235, 0.867334, 0.277134, 0.79102, 0.679656, 0.975773, 0.823716, 0.200355, 0.363995, 0.671924, 0.0218781, 0.704421, 0.199723, 0.751807, 0.613478, 0.718432, 0.682089, 0.865853, 0.386227, 0.324988, 0.069, 0.682705, 0.229523, 0.593749, 0.137033, 0.115043, 0.525719, 0.7651, 0.0274955, 0.116245, 0.736355, 0.923831, 0.83261, 0.667971, 0.596602, 0.0905437, 0.767496, 0.298924, 0.0112172, 0.527085, 0.711858, 0.191575, 0.808815, 0.750152, 0.808579, 0.78774, 0.54182, 0.369166, 0.566529, 0.644536, 0.720082, 0.425793, 0.302579, 0.448482, 0.636293, 0.18167, 0.321279, 0.736586, 0.80744, 0.64538, 0.896556, 0.423715, 0.38186, 0.913895, 0.825426, 0.939886, 0.668885, 0.955374, 0.97597, 0.120379, 0.205165, 0.215837, 0.573743, 0.901457, 0.787682, 0.568188, 0.542169, 0.242026, 0.733524, 0.344679, 0.027177, 0.764144, 0.962245, 0.446222, 0.646643, 0.128831, 0.262236, 0.394522, 0.736542, 0.0553103, 0.600864, 0.713883, 0.228737, 0.38481, 0.49817, 0.743719, 0.682866, 0.925692, 0.0986886, 0.659319, 0.16819, 0.773473, 0.766871, 0.803692, 0.653477, 0.989573, 0.757097, 0.531301, 0.569316, 0.496407, 0.113476, 0.193845, 0.956127, 0.631733, 0.536838, 0.636711, 0.208716, 0.892044, 0.576015, 0.0840899, 0.2993, 0.343266, 0.279186, 0.287465, 0.41921, 0.666519, 0.183198, 0.00804122, 0.148758, 0.167705, 0.611713, 0.0583549, 0.77102, 0.5288, 0.544969, 0.293798, 0.865103, 0.783871, 0.522395, 0.888173, 0.518327, 0.514851, 0.0966784, 0.873086, 0.956759, 0.243296, 0.0722611, 0.491732, 0.539038, 0.604535, 0.424859, 0.609011, 0.639555, 0.998937, 0.140084, 0.399777, 0.0538551, 0.143248, 0.574415, 0.195534, 0.338995, 0.496542, 0.374546, 0.986991, 0.356131, 0.489446, 0.122795, 0.821478, 0.586519, 0.624206, 0.0248468, 0.600499, 0.583496, 0.810822, 0.49154, 0.308485, 0.699421, 0.171174, 0.924855, 0.0448304, 0.463923, 0.157493, 0.979678, 0.442047, 0.479048, 0.353873, 0.544304, 0.125358, 0.889902, 0.587755, 0.400586, 0.65567, 0.847538, 0.577308, 0.81636, 0.560954, 0.957543, 0.424162, 0.885078, 0.506765, 0.203868, 0.407863, 0.947065, 0.316899, 0.119981, 0.513088, 0.462405, 0.642105, 0.850453, 0.571522, 0.574653, 0.196272, 0.746303, 0.114379, 0.359533, 0.672782, 0.445712, 0.0856751, 0.940817, 0.313289, 0.443916, 0.900691, 0.921835, 0.282882, 0.39696, 0.703656, 0.34427, 0.148683, 0.912136, 0.267437, 0.807726, 0.447656, 0.746437, 0.360625, 0.0201081, 0.956305, 0.620076, 0.610485, 0.416885, 0.588588, 0.406305, 0.762131, 0.129899, 0.214142, 0.089907, 0.0676436, 0.885713, 0.172557, 0.164625, 0.852161, 0.26415, 0.573579, 0.137027, 0.0101539, 0.656283, 0.142571, 0.198427, 0.96973, 0.24534, 0.431885, 0.687674, 0.73754, 0.842411, 0.395701, 0.549277, 0.701355, 0.675792, 0.0342518, 0.669867, 0.44753, 0.637723, 0.213601, 0.988912, 0.64071, 0.413929, 0.904198, 0.856626, 0.31587, 0.820605, 0.912327, 0.480646, 0.225101, 0.279947, 0.0618994, 0.343151, 0.341565, 0.688027, 0.675962, 0.901458, 0.801628, 0.968527, 0.0308536, 0.556561, 0.124741, 0.529949, 0.860683, 0.501069, 0.46844, 0.0689622, 0.0473451, 0.728806, 0.0424824, 0.00202327, 0.00517529, 0.981055, 0.589066, 0.432051, 0.475427, 0.497677, 0.458177, 0.572692, 0.239243, 0.963525, 0.968087, 0.6464, 0.0496256, 0.0570642, 0.0777251, 0.325331, 0.845197, 0.22648, 0.448332, 0.113064, 0.267234, 0.409798, 0.475404, 0.117331, 0.984748, 0.665244, 0.760132, 0.541321, 0.98955, 0.372141, 0.582115, 0.610333, 0.872368, 0.89137, 0.248347, 0.97259, 0.312904, 0.984524, 0.897239, 0.892031, 0.358951, 0.883536, 0.585689, 0.681858, 0.979857, 0.454432, 0.63678, 0.353597, 0.897382, 0.300572, 0.718638, 0.154625, 0.787838, 0.200869, 0.0125718, 0.293938, 0.216802, 0.784604, 0.832029, 0.914414, 0.548893, 0.246995, 0.251137, 0.858669, 0.65797, 0.50344, 0.310514, 0.800876, 0.330099, 0.970595, 0.790804, 0.0419046, 0.29108, 0.180723, 0.408486, 0.422676, 0.909404, 0.354949, 0.631967, 0.475216, 0.950923, 0.163346, 0.35278, 0.172458, 0.506875, 0.0440273, 0.967224, 0.137235, 0.511867, 0.951143, 0.853855, 0.733703, 0.350929, 0.059283, 0.369295, 0.733619, 0.931922, 0.811377, 0.812722, 0.41955, 0.371339, 0.102345, 0.106312, 0.77887, 0.460701, 0.998689, 0.96114, 0.877034, 0.302832, 0.694757, 0.778628, 0.40528, 0.536855, 0.928917, 0.303574, 0.172353, 0.73734, 0.481666, 0.359481, 0.801057, 0.372255, 0.498073, 0.113173, 0.100084, 0.112865, 0.930204, 0.933076, 0.211311, 0.498131, 0.0917588, 0.1905, 0.735537, 0.166749, 0.55014, 0.211092, 0.815809, 0.299362, 0.375197, 0.931167, 0.116012, 0.815055, 0.625073, 0.608793, 0.981823, 0.498271, 0.436703, 0.674121, 0.957778, 0.377926, 0.802581, 0.981458, 0.370764, 0.424695, 0.84361, 0.551341, 0.391972, 0.86787, 0.293041, 0.139121, 0.210377, 0.799898, 0.88631, 0.212372, 0.338473, 0.715974, 0.367734, 0.508309, 0.141473, 0.737682, 0.213511, 0.47861, 0.00450534, 0.721273, 0.43634, 0.566219, 0.447929, 0.338747, 0.314725, 0.577434, 0.928814, 0.583041, 0.168083, 0.97452, 0.753964, 0.875543, 0.251453, 0.177916, 0.236446, 0.949907, 0.0832262, 0.783154, 0.473801, 0.173318, 0.947677, 0.599206, 0.860656, 0.0522033, 0.381676, 0.836918, 0.0863289, 0.929439, 0.0762689, 0.85215, 0.0770687, 0.294291, 0.147405, 0.4374, 0.38824, 0.142181, 0.643921, 0.387538, 0.344055, 0.5329, 0.454014, 0.608583, 0.446777, 0.983971, 0.602353, 0.747934, 0.520915, 0.0168086, 0.502151, 0.650684, 0.0529897, 0.598685, 0.091241, 0.48674, 0.640578, 0.198699, 0.527877, 0.0369948, 0.771979, 0.652357, 0.171514, 0.643161, 0.603586, 0.470164, 0.041782, 0.230624, 0.0957006, 0.439706, 0.143794, 0.746043, 0.751005, 0.148812, 0.0823411, 0.906862, 0.629939, 0.377337, 0.904768, 0.429238, 0.209917, 0.0691044, 0.437636, 0.342372, 0.241961, 0.632065, 0.11099, 0.400947, 0.720527, 0.899553, 0.787215, 0.728491, 0.745173, 0.123967, 0.520426, 0.804662, 0.953355, 0.0309477, 0.138764, 0.198606, 0.9687, 0.947303, 0.324086, 0.914426, 0.74971, 0.375101, 0.328099, 0.362405, 0.932515, 0.777202, 0.428321, 0.790647, 0.396576, 0.255612, 0.0706103, 0.746596, 0.0308958, 0.266507, 0.18058, 0.999936, 0.93145, 0.882709, 0.69415, 0.580188, 0.223542, 0.0643723, 0.904459, 0.242477, 0.303118, 0.509531, 0.694356, 0.0438888, 0.639365, 0.800605, 0.776044, 0.973204, 0.632293, 0.95124, 0.494371, 0.895627, 0.804935, 0.548036, 0.840997, 0.644502, 0.142105, 0.360139, 0.849535, 0.136239, 0.77581, 0.0457593, 0.0763716, 0.577246, 0.767869, 0.575014, 0.268134, 0.524638, 0.591049, 0.763532, 0.683678, 0.580608, 0.286871, 0.444323, 0.730161, 0.821138, 0.865952, 0.0510293, 0.648668, 0.166321, 0.362818, 0.877964, 0.934987, 0.32666, 0.181021, 0.41928, 0.833845, 0.438913, 0.808663, 0.191884, 0.999466, 0.0312313, 0.903997, 0.480135, 0.62562, 0.794477, 0.779162, 0.375246, 0.75814, 0.0563962, 0.851424, 0.891263, 0.458934, 0.304246, 0.467643, 0.677011, 0.528844, 0.282628, 0.124944, 0.933536, 0.934755, 0.432823, 0.448362, 0.614539, 0.55101, 0.820818, 0.482607, 0.178068, 0.794612, 0.0490282, 0.0168655, 0.458525, 0.436858, 0.267757, 0.186155, 0.714885, 0.0803502, 0.445635, 0.788235, 0.869374, 0.574186, 0.342346, 0.813608, 0.305844, 0.320495, 0.561927, 0.304089, 0.825367, 0.941281, 0.104807, 0.494289, 0.512387, 0.684721, 0.107786, 0.558031, 0.830194, 0.0765543, 0.647624, 0.620611, 0.610175, 0.218689, 0.505082, 0.907356, 0.931008, 0.458482, 0.712175, 0.526264, 0.911347, 0.00592003, 0.498002, 0.919777, 0.691997, 0.390916, 0.123487, 0.453647, 0.438743, 0.946872, 0.0842719, 0.357353, 0.0239921, 0.235965, 0.864062, 0.291255, 0.122107, 0.255404, 0.570916, 0.388485, 0.265786, 0.062965, 0.253328, 0.677464, 0.131551, 0.983861, 0.758241, 0.761989, 0.750057, 0.203524, 0.623534, 0.735528, 0.0241604, 0.0631783, 0.837726, 0.669055, 0.813063, 0.157781, 0.825304, 0.879735, 0.713837, 0.455202, 0.584443, 0.73494, 0.14063, 0.567422, 0.656592, 0.349956, 0.707298, 0.549327, 0.531717, 0.572038, 0.247726, 0.531563, 0.985885, 0.769474, 0.553292, 0.177642, 0.630777, 0.460802, 0.707616, 0.89487, 0.0771614, 0.852388, 0.084882, 0.611759, 0.832453, 0.0421072, 0.695613, 0.170867, 0.768483, 0.899263, 0.919816, 0.352675, 0.416378, 0.0579712, 0.321833, 0.0506232, 0.824505, 0.449639, 0.0801564, 0.188684, 0.206162, 0.958938, 0.863136, 0.72373, 0.729258, 0.641762, 0.0897057, 0.683342, 0.92075, 0.0523174, 0.298628, 0.0450572, 0.275921, 0.399501, 0.419564, 0.620453, 0.950141, 0.0237171, 0.612569, 0.441868, 0.46959, 0.391274, 0.140971, 0.30743, 0.969635, 0.649755, 0.428403, 0.163822, 0.359195, 0.987418, 0.529507, 0.422236, 0.514933, 0.479645, 0.389478, 0.950822, 0.473507, 0.239715, 0.893711, 0.60499, 0.0731942, 0.175549, 0.451881, 0.75766, 0.98838, 0.702535, 0.49914, 0.0455373, 0.345612, 0.697478, 0.511227, 0.184978, 0.920965, 0.651148, 0.845901, 0.0627834, 0.200684, 0.88935, 0.29805, 0.334505, 0.0283577, 0.607199, 0.185681, 0.736168, 0.777623, 0.510238, 0.572844, 0.784919, 0.128337, 0.955633, 0.316161, 0.716171, 0.692642, 0.232997, 0.972922, 0.907827, 0.85005, 0.785575, 0.15699, 0.534399, 0.645617, 0.887973, 0.169517, 0.0737578, 0.646575, 0.985438, 0.249077, 0.234976, 0.245518, 0.425761, 0.758537, 0.730677, 0.487926, 0.576399, 0.539538, 0.00770798, 0.547989, 0.0434513, 0.286201, 0.181747, 0.618445, 0.204207, 0.100357, 0.694195, 0.336787, 0.376135, 0.697685, 0.988662, 0.449619, 0.744538, 0.453715, 0.58313, 0.66533, 0.205694, 0.0969426, 0.314981, 0.886108, 0.821934, 0.247885, 0.201161, 0.920034, 0.0116909, 0.489241, 0.680625, 0.266111, 0.520527, 0.499134, 0.93679, 0.628046, 0.561526, 0.567643, 0.384214, 0.483071, 0.966206, 0.0206604, 0.239224, 0.642895, 0.127983, 0.0075606, 0.0710209, 0.648882, 0.75778, 0.00149435, 0.115476, 0.811326, 0.949771, 0.799953, 0.817304, 0.421498, 0.12518, 0.901067, 0.227228, 0.0172774, 0.380839, 0.768941, 0.596764, 0.80674, 0.877635, 0.415229, 0.750052, 0.126199, 0.0301871, 0.354945, 0.560857, 0.322873, 0.520966, 0.868247, 0.629661, 0.709291, 0.0594918, 0.87921, 0.880081, 0.517583, 0.0119911, 0.533986, 0.70272, 0.611507, 0.598513, 0.203326, 0.305991, 0.787899, 0.217319, 0.482807, 0.535158, 0.402685, 0.929562, 0.156354, 0.833944, 0.103996, 0.867703, 0.490997, 0.190983, 0.859292, 0.127766, 0.363368, 0.130728, 0.142708, 0.496852, 0.592738, 0.149546, 0.426678, 0.171656, 0.0145037, 0.764167, 0.349157, 0.279854, 0.506956, 0.415403, 0.676152, 0.0798168, 0.481233, 0.0903182, 0.977279, 0.126579, 0.420942, 0.771996, 0.931986, 0.885147, 0.665718, 0.71415, 0.710789, 0.23455, 0.0877166, 0.25317, 0.0209904, 0.786273, 0.89177, 0.978563, 0.709663, 0.309278, 0.0376205, 0.288146, 0.873681, 0.953263, 0.487024, 0.416221, 0.425486, 0.139876, 0.888844, 0.807481, 0.328896, 0.749284, 0.214529, 0.591131, 0.140574, 0.625964, 0.581443, 0.318933, 0.306978, 0.380037, 0.274316, 0.43402, 0.57434, 0.929016, 0.973354, 0.154067, 0.399647, 0.863262, 0.847885, 0.400338, 0.482259, 0.322011, 0.0392475, 0.633512, 0.431604, 0.971433, 0.882565, 0.274808, 0.698353, 0.217107, 0.925041, 0.166659, 0.0460845, 0.542042, 0.0962001, 0.834309, 0.233045, 0.792656, 0.175757, 0.951496, 0.800393, 0.197437, 0.319575, 0.0987195, 0.178418, 0.675064, 0.807679, 0.654171, 0.656248, 0.559429, 0.317833, 0.817173, 0.224011, 0.945025, 0.0387007, 0.443186, 0.632357, 0.0205023, 0.581601, 0.961561, 0.961909, 0.806313, 0.701911, 0.0211029, 0.676318, 0.872993, 0.397057, 0.340572, 0.998811, 0.0242412, 0.421828, 0.66621, 0.997383, 0.0173153, 0.0174285, 0.921091, 0.778066, 0.94982, 0.631959, 0.336486, 0.31209, 0.303405, 0.320541, 0.340408, 0.236338, 0.13116, 0.411253, 0.929145, 0.145594, 0.993317, 0.679243, 0.0419781, 0.525698, 0.39834, 0.903667, 0.939637, 0.473873, 0.385552, 0.96722, 0.0631664, 0.63824, 0.902373, 0.189006, 0.624568, 0.121189, 0.829035, 0.593614, 0.872434, 0.998355, 0.347716, 0.0561768, 0.163514, 0.180885, 0.141431, 0.0236819, 0.0210987, 0.605067, 0.35297, 0.366204, 0.789771, 0.685882, 0.619809, 0.127642, 0.281828, 0.682904, 0.573191, 0.614515, 0.15444, 0.669555, 0.205326, 0.917234, 0.945925, 0.168098, 0.219117, 0.704457, 0.808678, 0.444026, 0.752387, 0.367896, 0.235297, 0.642223, 0.833726, 0.430878, 0.763745, 0.267553, 0.759168, 0.342827, 0.888683, 0.101819, 0.268619, 0.677743, 0.818772, 0.0967181, 0.541309, 0.784648, 0.58131, 0.0791748, 0.691229, 0.493325, 0.320912, 0.57325, 0.615437, 0.653703, 0.789816, 0.429348, 0.0519935, 0.855224, 0.75111, 0.906622, 0.601096, 0.617832, 0.908219, 0.431627, 0.356976, 0.697085, 0.90419, 0.721152, 0.396757, 0.292478, 0.678543, 0.279767, 0.0415861, 0.93764, 0.91365, 0.722366, 0.807537, 0.267066, 0.578562, 0.891317, 0.358395, 0.547624, 0.920507, 0.960723, 0.869138, 0.605035, 0.821552, 0.818851, 0.432789, 0.883274, 0.191621, 0.579931, 0.905342, 0.0897643, 0.667938, 0.0321878, 0.979876, 0.778475, 0.82736, 0.436357, 0.847444, 0.99527, 0.504789, 0.989915, 0.502576, 0.789257, 0.0372353, 0.813954, 0.132271, 0.073794, 0.255693, 0.439951, 0.255698, 0.516094, 0.986839, 0.800273, 0.193972, 0.0927261, 0.447896, 0.789797, 0.122727, 0.66453, 0.749911, 0.756242, 0.151795, 0.218094, 0.503858, 0.346341, 0.957039, 0.958699, 0.852693, 0.209565, 0.160822, 0.930611, 0.77254, 0.084369, 0.989197, 0.442047, 0.479275, 0.168469, 0.456859, 0.426212, 0.340152, 0.937572, 0.76488, 0.342747, 0.547134, 0.683402, 0.93792, 0.624029, 0.055538, 0.426753, 0.435465, 0.868071, 0.6672, 0.63111, 0.0661186, 0.255324, 0.227074, 0.429496, 0.542728, 0.624763, 0.389293, 0.852457, 0.241635, 0.159922, 0.810284, 0.448906, 0.758837, 0.776525, 0.0568491, 0.462146, 0.287192, 0.832081, 0.790435, 0.836596, 0.661919, 0.877703, 0.561088, 0.197614, 0.301422, 0.996002, 0.806175, 0.375327, 0.125133, 0.104162, 0.655026, 0.0165555, 0.248457, 0.810526, 0.515534, 0.582783, 0.83557, 0.417297, 0.515309, 0.794163, 0.496934, 0.970508, 0.324847, 0.698808, 0.85818, 0.424512, 0.777246, 0.177485, 0.982341, 0.204833, 0.62219, 0.148877, 0.176788, 0.282694, 0.2338, 0.470435, 0.608015, 0.900814, 0.976093, 0.189976, 0.926324, 0.731633, 0.555979, 0.336951, 0.135955, 0.999456, 0.849033, 0.704289, 0.988234, 0.250549, 0.97319, 0.409304, 0.17658, 0.787531, 0.0360684, 0.200807, 0.962899, 0.445792, 0.430989, 0.62891, 0.0901475, 0.108343, 0.924966, 0.911169, 0.0171861, 0.847466, 0.359337, 0.379618, 0.238293, 0.989412, 0.0556066, 0.580665, 0.235412, 0.56117, 0.584001, 0.299827, 0.189592, 0.466494, 0.362064, 0.212276, 0.728612, 0.787566, 0.619775, 0.552122, 0.519039, 0.489931, 0.277089, 0.0429447, 0.771714, 0.196657, 0.209507, 0.176734, 0.369129, 0.959327, 0.416781, 0.836765, 0.513958, 0.0892318, 0.71897, 0.726789, 0.141476, 0.788929, 0.522948, 0.18226, 0.245569, 0.281144, 0.181092, 0.614366, 0.654095, 0.371612, 0.683807, 0.749037, 0.0672187, 0.744127, 0.546263, 0.0413061, 0.23083, 0.56171, 0.659177, 0.783597, 0.919417, 0.648068, 0.0709468, 0.402212, 0.971968, 0.874117, 0.277312, 0.785311, 0.722022, 0.015992, 0.777689, 0.617716, 0.959093, 0.471641, 0.873905, 0.71633, 0.354781, 0.811633, 0.123267, 0.750201, 0.625855, 0.752804, 0.383196, 0.367842, 0.318063, 0.676528, 0.401175, 0.552717, 0.509055, 0.688833, 0.224237, 0.755739, 0.708512, 0.9638, 0.592141, 0.117769, 0.342138, 0.314509, 0.944605, 0.98139, 0.215795, 0.867147, 0.143792, 0.716773, 0.799678, 0.184907, 0.730848, 0.357394, 0.722582, 0.430472, 0.950727, 0.860681, 0.458486, 0.771335, 0.820404, 0.531977, 0.942267, 0.68555, 0.0322665, 0.302251, 0.929311, 0.925019, 0.797247, 0.330946, 0.215229, 0.351323, 0.687936, 0.140491, 0.239726, 0.0822563, 0.481845, 0.361011, 0.515877, 0.347397, 0.703418, 0.340229, 0.232429, 0.428853, 0.732093, 0.294161, 0.957297, 0.29738, 0.0616925, 0.865214, 0.658506, 0.505713, 0.519787, 0.0671259, 0.185694, 0.952661, 0.375919, 0.0646607, 0.752793, 0.19224, 0.977349, 0.303806, 0.0719589, 0.41335, 0.167529, 0.667464, 0.0686066, 0.0712313, 0.183771, 0.641323, 0.723738, 0.868661, 0.592844, 0.931705, 0.159491, 0.570783, 0.153344, 0.257332, 0.983394, 0.903501, 0.149364, 0.358569, 0.464872, 0.104886, 0.82215, 0.871212, 0.461711, 0.982419, 0.511367, 0.540543, 0.901364, 0.229812, 0.445307, 0.280365, 0.0986663, 0.283849, 0.642804, 0.608141, 0.0267921, 0.295477, 0.086513, 0.0241103, 0.222305, 0.286231, 0.677633, 0.984239, 0.113026, 0.631365, 0.359125, 0.809792, 0.170063, 0.24501, 0.888233, 0.526199, 0.81967, 0.194465, 0.378425, 0.188825, 0.588352, 0.430893, 0.0111055, 0.650885, 0.420982, 0.438896, 0.529989, 0.525862, 0.160759, 0.875984, 0.660975, 0.000387218, 0.50797, 0.458504, 0.0720393, 0.7653, 0.399667, 0.197636, 0.668345, 0.882124, 0.850495, 0.269462, 0.851524, 0.567695, 0.247768, 0.231076, 0.701851, 0.0175667, 0.243433, 0.380555, 0.983891, 0.261555, 0.957145, 0.728327, 0.993508, 0.884572, 0.000801061, 0.463429, 0.85312, 0.389586, 0.769193, 0.831667, 0.824669, 0.206712, 0.212163, 0.831587, 0.474636, 0.201333, 0.805295, 0.60113, 0.191717, 0.17961, 0.703088, 0.7952, 0.920303, 0.524446, 0.361725, 0.509851, 0.0600288, 0.904524, 0.336603, 0.285901, 0.133574, 0.982799, 0.903679, 0.133613, 0.637952, 0.0634623, 0.61074, 0.699146, 0.541673, 0.903186, 0.851014, 0.985987, 0.484615, 0.928026, 0.328396, 0.348537, 0.868114, 0.39434, 0.675469, 0.600998, 0.980431, 0.0983345, 0.708539, 0.410976, 0.266742, 0.139063, 0.234726, 0.0361525, 0.615635, 0.969626, 0.509123, 0.825888, 0.691788, 0.874974, 0.692929, 0.0518878, 0.0775269, 0.994836, 0.202528, 0.89283, 0.801992, 0.0807178, 0.623411, 0.667457, 0.95287, 0.89042, 0.292267, 0.123173, 0.161831, 0.900214, 0.89706, 0.880272, 0.724242, 0.332238, 0.924622, 0.128022, 0.667856, 0.651131, 0.558705, 0.15211, 0.50778, 0.264108, 0.871506, 0.408204, 0.679121, 0.987548, 0.724772, 0.245659, 0.785387, 0.00704876, 0.468503, 0.126751, 0.300177, 0.0773379, 0.818363, 0.22353, 0.871922, 0.390249, 0.907604, 0.0963743, 0.763163, 0.487964, 0.216776, 0.355977, 0.901986, 0.677733, 0.657118, 0.183704, 0.513379, 0.366173, 0.274021, 0.477181, 0.984682, 0.542599, 0.45365, 0.491485, 0.380027, 0.108538, 0.200592, 0.342405, 0.801922, 0.897731, 0.160582, 0.900586, 0.15083, 0.991416, 0.735416, 0.141253, 0.0444179, 0.531286, 0.327067, 0.00725067, 0.861938, 0.596312, 0.211828, 0.188039, 0.364832, 0.73713, 0.947066, 0.342835, 0.0362105, 0.589125, 0.428942, 0.232729, 0.481197, 0.47738, 0.332325, 0.384561, 0.31856, 0.0402633, 0.70539, 0.491939, 0.0176865, 0.257534, 0.367258, 0.502348, 0.955705, 0.540158, 0.43701, 0.831401, 0.361729, 0.57225, 0.810814, 0.345758, 0.154105, 0.0390846, 0.895167, 0.0695241, 0.492067, 0.163857, 0.944412, 0.725526, 0.917474, 0.98585, 0.185111, 0.152802, 0.150655, 0.0600263, 0.862254, 0.901009, 0.261556, 0.964212, 0.50695, 0.305114, 0.0456411, 0.0896164, 0.183574, 0.334409, 0.404425, 0.173848, 0.859352, 0.127045, 0.239696, 0.573871, 0.0502023, 0.750492, 0.520608, 0.853189, 0.552592, 0.416049, 0.53815, 0.692923, 0.950959, 0.766211, 0.708601, 0.450427, 0.326537, 0.104325, 0.393347, 0.984022, 0.461008, 0.153284, 0.247629, 0.898732, 0.994069, 0.319894, 0.458968, 0.883366, 0.737815, 0.448432, 0.804006, 0.927127, 0.228896, 0.0469571, 0.208345, 0.649669, 0.98389, 0.234265, 0.284877, 0.932569, 0.680498, 0.125215, 0.490118, 0.418852, 0.651852, 0.683019, 0.495065, 0.559923, 0.619779, 0.63055, 0.659214, 0.410865, 0.410061, 0.903431, 0.96172, 0.630756, 0.112834, 0.406017, 0.92664, 0.033646, 0.488245, 0.940499, 0.961077, 0.828277, 0.844607, 0.314767, 0.285, 0.997165, 0.34901, 0.80921, 0.39492, 0.416082, 0.0852057, 0.0527761, 0.00737501, 0.951782, 0.605728, 0.478592, 0.698166, 0.0691696, 0.532819, 0.0827556, 0.872722, 0.838275, 0.894357, 0.454686, 0.908897, 0.833708, 0.129766, 0.978884, 0.108387, 0.653993, 0.656135, 0.652949, 0.107255, 0.627502, 0.427824, 0.444293, 0.237789, 0.51581, 0.223922, 0.45393, 0.196228, 0.00599107, 0.691922, 0.140896, 0.039503, 0.927191, 0.298322, 0.89648, 0.141991, 0.438295, 0.430279, 0.693321, 0.649415, 0.72294, 0.458577, 0.301288, 0.747995, 0.549597, 0.0806066, 0.75449, 0.706724, 0.913141, 0.156217, 0.541507, 0.107396, 0.00156861, 0.363555, 0.273939, 0.0861067, 0.195141, 0.741421, 0.0619014, 0.377172, 0.13633, 0.304363, 0.428086, 0.840639, 0.617211, 0.471474, 0.0557778, 0.458037, 0.23476, 0.61348, 0.763652, 0.707429, 0.753404, 0.46669, 0.654086, 0.215179, 0.506498, 0.709857, 0.568382, 0.792586, 0.990047, 0.713517, 0.0828693, 0.78515, 0.0175727, 0.344072, 0.824972, 0.312729, 0.0436015, 0.81105, 0.324504, 0.940228, 0.405966, 0.0732837, 0.679378, 0.306335, 0.564714, 0.152579, 0.394436, 0.287834, 0.621498, 0.522093, 0.822563, 0.816489, 0.725665, 0.257441, 0.811438, 0.842367, 0.662496, 0.563133, 0.572351, 0.496833, 0.268382, 0.697455, 0.119705, 0.875588, 0.00911642, 0.219648, 0.632082, 0.410528, 0.746713, 0.00302351, 0.816052, 0.387693, 0.953429, 0.283769, 0.313276, 0.231767, 0.305868, 0.728366, 0.653756, 0.675455, 0.376992, 0.105858, 0.162803, 0.224463, 0.547106, 0.216911, 0.628058, 0.7688, 0.214425, 0.835567, 0.373164, 0.773721, 0.935751, 0.16884, 0.696056, 0.613995, 0.414217, 0.740041, 0.87208, 0.044006, 0.60927, 0.993419, 0.391246, 0.670059, 0.678717, 0.197398, 0.671317, 0.823728, 0.389581, 0.684637, 0.697404, 0.264768, 0.950687, 0.19493, 0.196537, 0.204602, 0.746932, 0.686927, 0.179082, 0.835271, 0.405126, 0.953488, 0.278117, 0.320797, 0.643557, 0.263779, 0.338647, 0.637338, 0.74099, 0.818135, 0.393516, 0.829925, 0.54691, 0.916594, 0.1951, 0.0492725, 0.122994, 0.153688, 0.0359633, 0.435421, 0.115565, 0.30887, 0.179381, 0.855934, 0.685447, 0.301308, 0.0896472, 0.700201, 0.275342, 0.667349, 0.127706, 0.357461, 0.841893, 0.701857, 0.112696, 0.085248, 0.763246, 0.876245, 0.0473259, 0.406054, 0.555637, 0.594141, 0.732385, 0.192951, 0.931181, 0.359123, 0.773368, 0.993197, 0.657841, 0.330519, 0.0274757, 0.783617, 0.248821, 0.942033, 0.743353, 0.527614, 0.612224, 0.64731, 0.338164, 0.522379, 0.628447, 0.305289, 0.996628, 0.3334, 0.459545, 0.577201, 0.0206621, 0.267767, 0.361208, 0.820593, 0.704592, 0.0731358, 0.193034, 0.329495, 0.821117, 0.509468, 0.636317, 0.581848, 0.111462, 0.347921, 0.505986, 0.0997631, 0.717672, 0.909032, 0.0925625, 0.697718, 0.542582, 0.168113, 0.466822, 0.875452, 0.717125, 0.720702, 0.835451, 0.426144, 0.197401, 0.710511, 0.564971, 0.461034, 0.604498, 0.795729, 0.812373, 0.550125, 0.949433, 0.112938, 0.146625, 0.325336, 0.924118, 0.653536, 0.972401, 0.140994, 0.692057, 0.394233, 0.873314, 0.789136, 0.00970479, 0.108407, 0.995082, 0.336017, 0.444101, 0.997304, 0.689243, 0.107083, 0.742757, 0.519879, 0.611769, 0.00971271, 0.241471, 0.400556, 0.137705, 0.413643, 0.105875, 0.433329, 0.959648, 0.800673, 0.917371, 0.260386, 0.312034, 0.358629, 0.47337, 0.932729, 0.368363, 0.0685616, 0.315157, 0.84421, 0.633568, 0.369094, 0.356924, 0.82169, 0.139511, 0.754654, 0.462201, 0.211439, 0.655634, 0.245354, 0.665275, 0.276054, 0.643854, 0.247995, 0.047488, 0.131173, 0.618855, 0.100514, 0.33237, 0.146716, 0.862983, 0.153355, 0.431187, 0.96382, 0.920129, 0.603394, 0.249981, 0.424237, 0.153991, 0.12297, 0.761571, 0.729702, 0.0975681, 0.826656, 0.604741, 0.886228, 0.826573, 0.205402, 0.192783, 0.106175, 0.479114, 0.476268, 0.641578, 0.995825, 0.822622, 0.802807, 0.775416, 0.418171, 0.194314, 0.833462, 0.993953, 0.360891, 0.498294, 0.826378, 0.940593, 0.54677, 0.567994, 0.283332, 0.959346, 0.722205, 0.0989476, 0.0116565, 0.91063, 0.96041, 0.609035, 0.0576239, 0.484504, 0.0651855, 0.572524, 0.414143, 0.505064, 0.603724, 0.79098, 0.994402, 0.921657, 0.288521, 0.170754, 0.862989, 0.262446, 0.936416, 0.346406, 0.0443176, 0.845917, 0.322079, 0.179143, 0.849279, 0.835571, 0.445848, 0.36516, 0.242378, 0.652615, 0.50539, 0.0879584, 0.317567, 0.356667, 0.497801, 0.536931, 0.193063, 0.813266, 0.566415, 0.741249, 0.176922, 0.523094, 0.635647, 0.316783, 0.170729, 0.448497, 0.889649, 0.322947, 0.776769, 0.158657, 0.54845, 0.79216, 0.824873, 0.63233, 0.565109, 0.792322, 0.554679, 0.486683, 0.67907, 0.123736, 0.636019, 0.575037, 0.653027, 0.421521, 0.505189, 0.71837, 0.643647, 0.774433, 0.894052, 0.332233, 0.848104, 0.0830674, 0.114621, 0.428791, 0.693425, 0.388145, 0.552568, 0.00377168, 0.390547, 0.91576, 0.179309, 0.653679, 0.376583, 0.234134, 0.0909816, 0.128259, 0.640975, 0.861584, 0.64536, 0.560782, 0.0579905, 0.646721, 0.447285, 0.51264, 0.933915, 0.313716, 0.622427, 0.12227, 0.991064, 0.815535, 0.695226, 0.667499, 0.654199, 0.123153, 0.840794, 0.220144, 0.966743, 0.0518601, 0.612163, 0.626415, 0.154465, 0.0973362, 0.929288, 0.54854, 0.303486, 0.692527, 0.309283, 0.116135, 0.875237, 0.106273, 0.131386, 0.20795, 0.0147782, 0.377076, 0.510715, 0.590388, 0.646613, 0.621737, 0.534328, 0.458881, 0.418544, 0.467697, 0.578304, 0.552064, 0.547137, 0.732786, 0.941363, 0.493612, 0.13787, 0.188021, 0.0679312, 0.719599, 0.303563, 0.991431, 0.978292, 0.153433, 0.744382, 0.82083, 0.692745, 0.96768, 0.797513, 0.80507, 0.81719, 0.512678, 0.584803, 0.785405, 0.294652, 0.219141, 0.111131, 0.775225, 0.207778, 0.130542, 0.0190868, 0.792537, 0.17457, 0.00214379, 0.0307179, 0.276004, 0.802503, 0.672694, 0.964141, 0.324691, 0.075299, 0.550065, 0.942038, 0.831924, 0.140763, 0.797655, 0.190853, 0.66499, 0.483491, 0.0323685, 0.0172901, 0.594053, 0.252904, 0.552556, 0.812284, 0.055484, 0.520342, 0.386532, 0.437681, 0.102171, 0.193509, 0.307954, 0.783097, 0.50989, 0.716254, 0.0849843, 0.331658, 0.182162, 0.600897, 0.272654, 0.500659, 0.582393, 0.282989, 0.193401, 0.492933, 0.723111, 0.324014, 0.70551, 0.502189, 0.287798, 0.0181713, 0.405543, 0.96388, 0.936469, 0.2321, 0.912726, 0.189019, 0.840208, 0.381866, 0.0224776, 0.780699, 0.208126, 0.980816, 0.568026, 0.815721, 0.817384, 0.774247, 0.774172, 0.502981, 0.60928, 0.170428, 0.3814, 0.195631, 0.968751, 0.794007, 0.871234, 0.831813, 0.272882, 0.331448, 0.646631, 0.931254, 0.590774, 0.138164, 0.113961, 0.346402, 0.976205, 0.0725465, 0.28896, 0.547044, 0.176012, 0.233773, 0.016553, 0.205529, 0.325758, 0.0203419, 0.88681, 0.607272, 0.42616, 0.475589, 0.221191, 0.556148, 0.179974, 0.815952, 0.700007, 0.0132562, 0.796486, 0.540178, 0.771924, 0.727969, 0.980281, 0.587346, 0.519204, 0.266219, 0.334366, 0.696914, 0.0262618, 0.38262, 0.696469, 0.548667, 0.444468, 0.169852, 0.701222, 0.446224, 0.680703, 0.581285, 0.656598, 0.439896, 0.339559, 0.965689, 0.339033, 0.133131, 0.526695, 0.168293, 0.499211, 0.24377, 0.0440521, 0.383517, 0.763724, 0.91456, 0.0103098, 0.27598, 0.391783, 0.70111, 0.552438, 0.824417, 0.983447, 0.790926, 0.0876236, 0.690447, 0.344681, 0.0491691, 0.385328, 0.2132, 0.253092, 0.72258, 0.404145, 0.457607, 0.00437671, 0.559442, 0.542348, 0.241701, 0.273888, 0.24136, 0.53244, 0.725365, 0.201262, 0.612635, 0.557595, 0.496667, 0.486006, 0.303778, 0.604795, 0.791238, 0.330242, 0.382439, 0.659438, 0.17844, 0.0435847, 0.527509, 0.841977, 0.11501, 0.970337, 0.44904, 0.00701654, 0.926934, 0.974887, 0.923092, 0.405509, 0.391068, 0.685755, 0.478569, 0.309571, 0.954913, 0.217361, 0.186405, 0.91385, 0.0767558, 0.0350725, 0.463764, 0.483755, 0.462039, 0.484615, 0.917178, 0.0170215, 0.0795608, 0.179031, 0.978949, 0.198036, 0.39716, 0.0739331, 0.593516, 0.224185, 0.877096, 0.355651, 0.421093, 0.317781, 0.938326, 0.451167, 0.75658, 0.839437, 0.411796, 0.0484464, 0.239414, 0.825949, 0.730261, 0.492545, 0.207525, 0.879243, 0.429492, 0.47031, 0.505609, 0.773247, 0.962786, 0.546387, 0.130571, 0.506451, 0.913681, 0.229194, 0.0631589, 0.512126, 0.302455, 0.364844, 0.936343, 0.109926, 0.520707, 0.516668, 0.646386, 0.816071, 0.70639, 0.3037, 0.288095, 0.00529818, 0.0464415, 0.542895, 0.432183, 0.703891, 0.304397, 0.00640768, 0.693956, 0.31689, 0.964322, 0.358019, 0.228152, 0.549631, 0.642869, 0.692265, 0.904281, 0.255918, 0.220087, 0.00737114, 0.886714, 0.000557859, 0.375943, 0.480969, 0.642358, 0.106144, 0.953816, 0.791466, 0.167957, 0.85762, 0.0184138, 0.48118, 0.18782, 0.697239, 0.498851, 0.180979, 0.718014, 0.653414, 0.935228, 0.380892, 0.64911, 0.599494, 0.692485, 0.588772, 0.484283, 0.338065, 0.857828, 0.513976, 0.387338, 0.99332, 0.733511, 0.125001, 0.893002, 0.678355, 0.111692, 0.202635, 0.681242, 0.633498, 0.208498, 0.223707, 0.841645, 0.535497, 0.102716, 0.347583, 0.824167, 0.770176, 0.343443, 0.251657, 0.602477, 0.831791, 0.903924, 0.245502, 0.144927, 0.788085, 0.344901, 0.745242, 0.289619, 0.627055, 0.905744, 0.845353, 0.850521, 0.701016, 0.9767, 0.400766, 0.674692, 0.549315, 0.330345, 0.104749, 0.522786, 0.463669, 0.884866, 0.94961, 0.0953167, 0.988477, 0.334254, 0.81259, 0.199162, 0.311617, 0.338806, 0.311984, 0.517012, 0.425784, 0.158801, 0.967776, 0.410919, 0.320096, 0.854361, 0.237374, 0.550796, 0.221666, 0.542285, 0.180524, 0.065194, 0.715723, 0.161053, 0.815644, 0.525188, 0.833123, 0.290635, 0.697, 0.476245, 0.257092, 0.938906, 0.199958, 0.697776, 0.519344, 0.610224, 0.0334531, 0.246516, 0.199423, 0.702992, 0.191733, 0.458268, 0.106035, 0.122696, 0.15825, 0.701934, 0.403554, 0.533411, 0.0382729, 0.253054, 0.0771629, 0.87737, 0.953502, 0.503947, 0.843674, 0.635129, 0.613336, 0.337282, 0.70466, 0.213391, 0.45954, 0.491307, 0.393437, 0.499356, 0.67601, 0.700162, 0.627522, 0.758473, 0.652767, 0.0514409, 0.566584, 0.574168, 0.0416337, 0.737174, 0.682549, 0.606476, 0.0463637, 0.235273, 0.230078, 0.922264, 0.499006, 0.789148, 0.212063, 0.149457, 0.926292, 0.193828, 0.673791, 0.406026, 0.0748398, 0.833202, 0.630626, 0.939397, 0.441485, 0.0394289, 0.68146, 0.297045, 0.441741, 0.341842, 0.344349, 0.477632, 0.554714, 0.0735667, 0.434727, 0.455637, 0.892112, 0.724636, 0.964491, 0.203202, 0.212578, 0.797251, 0.394528, 0.82822, 0.888961, 0.761608, 0.341528, 0.0641562, 0.272718, 0.578804, 0.965012, 0.960964, 0.918275, 0.442024, 0.102701, 0.0962546, 0.751176, 0.0164641, 0.711757, 0.497362, 0.166126, 0.0880301, 0.521271, 2.09413e-05, 0.35196, 0.385871, 0.326944, 0.955083, 0.0754337, 0.813568, 0.643436, 0.225182, 0.638667, 0.0742234, 0.471927, 0.673668, 0.34258, 0.742383, 0.22319, 0.147394, 0.258951, 0.195132, 0.58523, 0.962263, 0.761757, 0.855648, 0.868606, 0.659604, 0.971233, 0.514057, 0.753102, 0.389654, 0.907077, 0.242223, 0.038068, 0.808043, 0.773578, 0.526646, 0.338432, 0.0213833, 0.389036, 0.535964, 0.942265, 0.645361, 0.585724, 0.268921, 0.760883, 0.165255, 0.441825, 0.756842, 0.244908, 0.164279, 0.0399154, 0.857324, 0.0366559, 0.075204, 0.954057, 0.835515, 0.505384, 0.99531, 0.173231, 0.500863, 0.997539, 0.638374, 0.154215, 0.8991, 0.165897, 0.230397, 0.28242, 0.6255, 0.784634, 0.349016, 0.906085, 0.569661, 0.29876, 0.256539, 0.645641, 0.284183, 0.270042, 0.593194, 0.809504, 0.326832, 0.0578847, 0.868672, 0.77181, 0.806306, 0.586394, 0.52335, 0.941762, 0.197046, 0.752633, 0.502982, 0.620276, 0.98102, 0.00687803, 0.599066, 0.506719, 0.431664, 0.96892, 0.63674, 0.684332, 0.574967, 0.46705, 0.711257, 0.0970853, 0.711979, 0.227558, 0.575174, 0.941089, 0.888498, 0.987949, 0.460388, 0.743806, 0.149433, 0.528736, 0.468804, 0.190239, 0.355274, 0.097481, 0.363414, 0.905257, 0.648374, 0.221958, 0.444394, 0.92643, 0.503593, 0.895055, 0.182344, 0.653674, 0.296911, 0.179451, 0.0288017, 0.0699155, 0.0704978, 0.857067, 0.731167, 0.717964, 0.820579, 0.473041, 0.396136, 0.853972, 0.706692, 0.369631, 0.382982, 0.774302, 0.690334, 0.447999, 0.523902, 0.213521, 0.646979, 0.776942, 0.0585694, 0.376628, 0.987798, 0.916904, 0.409575, 0.731379, 0.281012, 0.977085, 0.863234, 0.372496, 0.532011, 0.503778, 0.995698, 0.691713, 0.614616, 0.847526, 0.370801, 0.060282, 0.158923, 0.015162, 0.827835, 0.427988, 0.187522, 0.679449, 0.492898, 0.140312, 0.231082, 0.799587, 0.661465, 0.242697, 0.00340222, 0.181152, 0.623874, 0.450312, 0.390911, 0.0470238, 0.329456, 0.174745, 0.935083, 0.948362, 0.126102, 0.398092, 0.727681, 0.138177, 0.341662, 0.30681, 0.557449, 0.0394847, 0.618965, 0.945611, 0.892076, 0.123845, 0.466184, 0.160643, 0.935201, 0.920271, 0.992589, 0.448256, 0.83897, 0.573014, 0.641371, 0.527178, 0.274917, 0.52401, 0.0369476 }; int TestLabelPlacementMapper2D(int argc, char* argv[]) { vtkIdType i; vtkRenderer* rr = vtkRenderer::New(); vtkRenderWindow* rw = vtkRenderWindow::New(); vtkRenderWindowInteractor* ri = vtkRenderWindowInteractor::New(); // rw->SetSize( 1800, 1200 ); rw->SetSize(600, 600); vtkPoints* pts = vtkPoints::New(); vtkPolyData* polyData = vtkPolyData::New(); vtkStringArray* labelText = vtkStringArray::New(); labelText->SetName("LabelText"); labelText->SetNumberOfValues(TXTMULT * vtkTextLabelListLength); vtkIdTypeArray* priorities = vtkIdTypeArray::New(); priorities->SetName("Priorities"); priorities->SetNumberOfComponents(1); priorities->SetNumberOfTuples(TXTMULT * vtkTextLabelListLength); pts->SetNumberOfPoints(TXTMULT * vtkTextLabelListLength); #ifdef GENERATE_TEST_POINTS cout << "static double vtkLabelPlacer2DTestPoints[] =\n{\n"; #else double* ptsrc = vtkLabelPlacer2DTestPoints; #endif for (i = 0; i < static_cast(TXTMULT * vtkTextLabelListLength); ++i) { labelText->SetValue(i, vtkTextLabelList[i % vtkTextLabelListLength]); priorities->SetValue(i, i); #ifdef GENERATE_TEST_POINTS double x = vtkMath::Random(), y = vtkMath::Random(); cout << " " << x << ", " << y << ",\n"; pts->SetPoint(i, x, y, -1.); // 2-D // pts->SetPoint( i, vtkMath::Random(), vtkMath::Random(), vtkMath::Random() ); // 3-D #else // GENERATE_TEST_POINTS if (i % vtkTextLabelListLength == 0) { ptsrc = vtkLabelPlacer2DTestPoints; } pts->SetPoint(i, ptsrc[0] + double((i / vtkTextLabelListLength) % PTSMULT), ptsrc[1] + double((i / vtkTextLabelListLength) / PTSMULT), -1.); // 2-D ptsrc += 2; #endif // GENERATE_TEST_POINTS } #ifdef GENERATE_TEST_POINTS cout << "};\n"; #endif polyData->SetPoints(pts); polyData->GetPointData()->AddArray(labelText); polyData->GetPointData()->AddArray(priorities); vtkSmartPointer tprop = vtkSmartPointer::New(); tprop->SetFontSize(12); tprop->SetFontFamily(vtkTextProperty::GetFontFamilyFromString("Arial")); vtkPointSetToLabelHierarchy* labelHierarchy = vtkPointSetToLabelHierarchy::New(); labelHierarchy->SetInputData(polyData); labelHierarchy->SetTextProperty(tprop); labelHierarchy->SetPriorityArrayName("Priorities"); labelHierarchy->SetLabelArrayName("LabelText"); vtkLabelPlacementMapper* labelPlacer = vtkLabelPlacementMapper::New(); labelPlacer->SetInputConnection(labelHierarchy->GetOutputPort()); labelPlacer->GeneratePerturbedLabelSpokesOn(); labelPlacer->OutputTraversedBoundsOn(); vtkActor2D* a1 = vtkActor2D::New(); vtkActor* a2 = vtkActor::New(); vtkActor* a3 = vtkActor::New(); vtkPolyDataMapper* m2 = vtkPolyDataMapper::New(); vtkPolyDataMapper* m3 = vtkPolyDataMapper::New(); // m2->SetInputConnection( labelPlacer->GetOutputPort( 2 ) ); // m3->SetInputConnection( labelPlacer->GetOutputPort( 3 ) ); a1->SetMapper(labelPlacer); // a2->SetMapper( m2 ); // a3->SetMapper( m3 ); rr->AddActor(a1); // rr->AddActor( a2 ); // rr->AddActor( a3 ); rw->AddRenderer(rr); rw->SetInteractor(ri); rw->Render(); // labelPlacer->Update(); cout << "Set of " << pts->GetNumberOfPoints() << " labels\n"; // rr->ResetCamera(); vtkCamera* cam = rr->GetActiveCamera(); cam->SetClippingRange(0.0106829, 10.6829); cam->SetFocalPoint(5.00016, 4.99974, -1.); cam->SetPosition(4.91977, 4.45127, -0.859406); cam->SetViewUp(-0.0373979, 0.253276, 0.966671); // cam->SetDirectionOfProjection( 0.140573, 0.959062, -0.245844 ); // rw->Render(); int retval = vtkRegressionTestImageThreshold(rw, 60.0); if (retval == vtkRegressionTester::DO_INTERACTOR) { ri->Start(); #ifdef GENERATE_TEST_POINTS vtkIndent indent; cam->PrintSelf(cout, indent); #endif // GENERATE_TEST_POINTS } pts->Delete(); polyData->Delete(); labelText->Delete(); priorities->Delete(); labelHierarchy->Delete(); labelPlacer->Delete(); rr->Delete(); rw->Delete(); ri->Delete(); a1->Delete(); a2->Delete(); a3->Delete(); m2->Delete(); m3->Delete(); return !retval; }