From 8377d07783728cbb158c21c900229477fc5a551a Mon Sep 17 00:00:00 2001 From: Pzaff Date: Fri, 16 Feb 2018 01:10:26 -0500 Subject: [PATCH] Implemented a function to calculate the monotonicity of a curve file in a specific format. Fixed the logger creating a handler every time it is called. --- cli_application.py | 25 +- data_objects/monotonically_formatted_curve.py | 18 + data_objects/monotonicity_calculator.py | 69 + logger.py | 6 +- .../TJP-4_1_ci4-su3+++_composite.curve | 1254 +++++++++++++++++ user_interface/curve_parser.py | 54 + 6 files changed, 1423 insertions(+), 3 deletions(-) create mode 100644 data_objects/monotonically_formatted_curve.py create mode 100644 data_objects/monotonicity_calculator.py create mode 100644 test_curves/TJP-4_1_ci4-su3+++_composite.curve diff --git a/cli_application.py b/cli_application.py index cab353b..65982fc 100755 --- a/cli_application.py +++ b/cli_application.py @@ -7,9 +7,10 @@ import cmd import os import sys -from user_interface.curve_parser import parse_curve_file +from user_interface.curve_parser import parse_curve_file, parse_subdivided_curve_file from logger import get_logger from data_objects.subdivision_generator import generate_curve_values +from data_objects.monotonicity_calculator import calculate_monotonicity class CliApplication(cmd.Cmd): @@ -39,6 +40,21 @@ class CliApplication(cmd.Cmd): self.generate_m_value(curve_path) else: self.logger.info("The curve file doesn't exist. Please choose an appropriate file.") + + elif args.calculate_monotonicity: + self.logger.debug(args.calculate_monotonicity) + if os.path.exists(args.calculate_monotonicity): + if os.path.isdir(args.calculate_monotonicity): + self.logger.error("Please input a filename not a directory name.") + else: + self.calculate_monotonicity(args.calculate_monotonicity) + else: + curve_path = os.path.join(self.test_curves_path, args.calculate_monotonicity) + if os.path.exists(curve_path): + self.generate_m_value(curve_path) + else: + self.logger.info("The curve file doesn't exist. Please choose an appropriate file.") + else: raise Exception("There were no arguments when running the application") @@ -47,6 +63,12 @@ class CliApplication(cmd.Cmd): generate_curve_values(knot_curve.get_points_as_np_arrays()) pass + def calculate_monotonicity(self, subdivided_file="subdivided_test.curve"): + subdivided_knot_curve_list = parse_subdivided_curve_file(subdivided_file) + for subdivided_knot_curve in subdivided_knot_curve_list: + calculate_monotonicity(subdivided_knot_curve) + pass + def main(): """The main function that runs the Subdivision Generator application""" @@ -58,6 +80,7 @@ def main(): description='Generates the required number of subdivisions for a Bezier curve to match the stick knot it was created from') argument_parser.add_argument("-g", "--generate_m_value", help="generates the minimum number of iterations needed for the supplied \ stick knot's Bezier cure to match the stick knot", default=None, action="store") + argument_parser.add_argument("-m", "--calculate_monotonicity", help="calculates whether the coordinates of the subdivided curves in the file are monotonically increasing or decreasing", default=None, action="store") arguments = argument_parser.parse_args() get_logger().debug("Subdivision-Generator Starting Up") diff --git a/data_objects/monotonically_formatted_curve.py b/data_objects/monotonically_formatted_curve.py new file mode 100644 index 0000000..6b46fe5 --- /dev/null +++ b/data_objects/monotonically_formatted_curve.py @@ -0,0 +1,18 @@ +#!/usr/bin/env python +""" +@author Peter Zaffetti 2018 +""" +from stick_knot import StickKnot + + +class MonotonicallyFormattedCurve: + + def __init__(self, knot_name, stick_knot): + self.knot_name = knot_name + self.stick_knot = stick_knot + + def get_name(self): + return self.knot_name + + def get_stick_knot(self): + return self.stick_knot diff --git a/data_objects/monotonicity_calculator.py b/data_objects/monotonicity_calculator.py new file mode 100644 index 0000000..da9ab91 --- /dev/null +++ b/data_objects/monotonicity_calculator.py @@ -0,0 +1,69 @@ +from monotonically_formatted_curve import MonotonicallyFormattedCurve +from logger import get_logger + + +# TODO: Refactor the hardcoded coordinate location: 0 should be a variable x, 1 should be y, and 2 should be z +def calculate_monotonicity(monotonically_formatted_curve): + curve_name = monotonically_formatted_curve.get_name() + stick_knot_points = monotonically_formatted_curve.get_stick_knot().get_points() + + # PDZ- This will hold the monotonic status for all the coordinates. 0 means no monotonicity, 1 mean monotonically increasing, and -1 mean monotonically decreasing + coordinate_monotonic_status = [0, 0, 0] + for i in range(1, len(stick_knot_points) - 1): + if i == 1: + coordinate_monotonic_status[0] = calculate_coordinate_monotonicity(0, stick_knot_points[i - 1], stick_knot_points[i]) + coordinate_monotonic_status[1] = calculate_coordinate_monotonicity(1, stick_knot_points[i - 1], + stick_knot_points[i]) + coordinate_monotonic_status[2] = calculate_coordinate_monotonicity(2, stick_knot_points[i - 1], + stick_knot_points[i]) + + else: + # PDZ- Check each monotonicity status: if it differs then just set the coordinate to 0. Otherwise, leave it alone. At the end, any that are 0 aren't monotonic + if calculate_coordinate_monotonicity(0, stick_knot_points[i - 1], stick_knot_points[i]) != coordinate_monotonic_status[0]: + coordinate_monotonic_status[0] = 0 # PDZ- X coordinate was checked + + if calculate_coordinate_monotonicity(1, stick_knot_points[i - 1], stick_knot_points[i]) != coordinate_monotonic_status[1]: + coordinate_monotonic_status[1] = 0 # PDZ- Y coordinate was checked + + if calculate_coordinate_monotonicity(2, stick_knot_points[i - 1], stick_knot_points[i]) != coordinate_monotonic_status[2]: + coordinate_monotonic_status[2] = 0 # PDZ- Z coordinate was checked + + logger = get_logger(calculate_monotonicity.__name__) + + logger.info("%s, x: %s" % (curve_name, convert_int_to_monotonicity_str(coordinate_monotonic_status[0]))) + logger.info("%s, y: %s" % (curve_name, convert_int_to_monotonicity_str(coordinate_monotonic_status[1]))) + logger.info("%s, z: %s" % (curve_name, convert_int_to_monotonicity_str(coordinate_monotonic_status[2]))) + logger.info("End of curve\n") + + +def convert_int_to_monotonicity_str(value): + if value == 0: + return "no" + if value == 1: + return "Strictly Mono Increasing" + if value == -1: + return "Strictly Mono Decreasing" + + return "Something wasn't quite right" + + +def calculate_coordinate_monotonicity(index, stick_knot_point_behind, stick_knot_point_current): + prev_coord_val = 0 + current_coord_val = 0 + + if index == 0: + prev_coord_val = stick_knot_point_behind.get_x() + current_coord_val = stick_knot_point_current.get_x() + elif index == 1: + prev_coord_val = stick_knot_point_behind.get_y() + current_coord_val = stick_knot_point_current.get_y() + elif index == 2: + prev_coord_val = stick_knot_point_behind.get_z() + current_coord_val = stick_knot_point_current.get_z() + + if prev_coord_val < current_coord_val: # PDZ- Increasing since the point is bigger + return 1 + elif prev_coord_val > current_coord_val: # PDZ- Decreasing + return -1 + else: # PDZ- Same point + return 0 diff --git a/logger.py b/logger.py index 595c9aa..ee3afc7 100644 --- a/logger.py +++ b/logger.py @@ -29,12 +29,14 @@ def get_logger(classname=None): file_handler = logging.FileHandler("logs/generator_log.txt") file_handler.setFormatter(log_format) file_handler.setLevel(logging.DEBUG) - logger.addHandler(file_handler) + if len(logger.handlers) == 0: # PDZ- only add if there are no file handlers to begin with + logger.addHandler(file_handler) console_handler = logging.StreamHandler() console_handler.setFormatter(log_format) console_handler.setLevel(logging.INFO) - logger.addHandler(console_handler) + if len(logger.handlers) == 1: # PDZ- only add if there is a file handler- this was causing a duplicate handler to be added every time a logger was gotten + logger.addHandler(console_handler) logger.setLevel(logging.DEBUG) diff --git a/test_curves/TJP-4_1_ci4-su3+++_composite.curve b/test_curves/TJP-4_1_ci4-su3+++_composite.curve new file mode 100644 index 0000000..b56c1d8 --- /dev/null +++ b/test_curves/TJP-4_1_ci4-su3+++_composite.curve @@ -0,0 +1,1254 @@ +[TJP-4_1_ci4-1-1-1] +1.3076,-3.332,-2.5072 +1.28657094922,-3.26938632422,-2.48047546094 +1.26554189844,-3.20677264844,-2.45375092188 +1.24451284766,-3.14415897266,-2.42702638281 +1.22348379688,-3.08154529687,-2.40030184375 +1.20245474609,-3.01893162109,-2.37357730469 +1.18142569531,-2.95631794531,-2.34685276563 +1.16039664453,-2.89370426953,-2.32012822656 +1.13936759375,-2.83109059375,-2.2934036875 +1.11833854297,-2.76847691797,-2.26667914844 +1.09730949219,-2.70586324219,-2.23995460938 +1.07628044141,-2.64324956641,-2.21323007031 +1.05525139063,-2.58063589063,-2.18650553125 +1.03422233984,-2.51802221484,-2.15978099219 +1.01319328906,-2.45540853906,-2.13305645313 +0.992164238281,-2.39279486328,-2.10633191406 +0.9711351875,-2.3301811875,-2.079607375 +0.950106136719,-2.26756751172,-2.05288283594 +0.929077085938,-2.20495383594,-2.02615829688 +0.908048035156,-2.14234016016,-1.99943375781 +0.887018984375,-2.07972648438,-1.97270921875 +0.865989933594,-2.0171128086,-1.94598467969 +0.844960882813,-1.95449913282,-1.91926014063 +0.823931832032,-1.89188545705,-1.89253560156 +0.802902781253,-1.82927178132,-1.86581106251 +0.781873730478,-1.76665810567,-1.83908652346 +0.760844679711,-1.70404443019,-1.81236198442 +0.739815628963,-1.64143075512,-1.78563744543 +0.718786578253,-1.57881708087,-1.75891290652 +0.697757527618,-1.51620340826,-1.73218836777 +0.676728477126,-1.45358973871,-1.70546382932 +0.655699426892,-1.39097607472,-1.67873929142 +0.63467037711,-1.32836242047,-1.65201475447 +0.613641328094,-1.26574878271,-1.62529021915 +0.592612280339,-1.20313517214,-1.5985656865 +0.571583234608,-1.14052160516,-1.57184115814 +0.550554192044,-1.07790810644,-1.5451166365 +0.529525154333,-1.01529471225,-1.51839212513 +0.508496123898,-0.952681474851,-1.49166762919 +0.487467104173,-0.890068468187,-1.46494315595 +0.466438099928,-0.827455795083,-1.43821871551 +0.445409117697,-0.76484359626,-1.41149432173 +0.424380166283,-0.70223206143,-1.38476999326 +0.403351257391,-0.639621442783,-1.35804575492 +0.382322406377,-0.577012071164,-1.33132163923 +0.361293633136,-0.514404375237,-1.30459768838 +0.340264963145,-0.451798903936,-1.27787395636 +0.31923642867,-0.389196352457,-1.25115051154 +0.298208070146,-0.326597592039,-1.22442743964 +0.277179937746,-0.264003703724,-1.19770484698 +0.256152093142,-0.201416016269,-1.17098286428 +0.235124611454,-0.138836148281,-1.14426165075 +0.214097583412,-0.0762660546265,-1.11754139868 +0.193071117702,-0.0137080770738,-1.09082233842 +0.172045343505,0.0488350009481,-1.06410474377 +0.151020413229,0.111359895661,-1.03738893775 +0.129996505392,0.173862760594,-1.01067529872 +0.108973827676,0.236339120949,-0.983964266849 +0.0879526201035,0.298783805098,-0.957256350855 +0.066933158324,0.361190873754,-0.930552134968 +0.0459157569838,0.423553547377,-0.903852286072 +0.024900773145,0.485864132509,-0.877157560951 +0.0038886097213,0.548113947734,-0.850468813571 +-0.017120281105,0.610293250047,-0.823787002326 +-0.0381253945223,0.672391162456,-0.797113197157 +-0.0591261698263,0.734395603643,-0.770448586475 +-0.0801219872918,0.796293220574,-0.743794483784 +-0.101112165222,0.858069324911,-0.717152333943 +-0.122095957215,0.919707834101,-0.690523718958 +-0.143072549684,0.981191217989,-0.663910363234 +-0.164041059677,1.04250045177,-0.637314138202 +-0.185000533023,1.10361497605,-0.61073706625 +-0.205949942839,1.16451266474,-0.584181323883 +-0.226888188438,1.22516980145,-0.557649244041 +-0.24781409465,1.28556106491,-0.531143317538 +-0.268726411593,1.34565952399,-0.504666193549 +-0.289623814903,1.40543664265,-0.478220679124 +-0.310504906441,1.46486229523,-0.451809737686 +-0.331368215489,1.52390479216,-0.425436486504 +-0.352212200436,1.5825309163,-0.399104193112 +-0.373035250957,1.64070596992,-0.372816270695 +-0.39383569068,1.69839383213,-0.346576272438 +-0.414611780331,1.75555702666,-0.320387884859 +-0.435361721342,1.81215679966,-0.294254920157 +-0.45608365991,1.86815320705,-0.26818130762 +-0.476775691473,1.92350521112,-0.242171084126 +-0.497435865592,1.97817078557,-0.21622838381 +-0.518062191187,2.03210702857,-0.190357426941 +-0.538652642126,2.08527028301,-0.164562508105 +-0.559205163094,2.13761626313,-0.138847983742 +-0.579717675736,2.18910018686,-0.113218259135 +-0.60018808501,2.23967691283,-0.0876777749355 +-0.620614285725,2.28930108132,-0.0622309933098 +-0.640994169212,2.33792725802,-0.0368823837944 +-0.661325630083,2.38551007993,-0.0116364089608 +-0.681606573046,2.43200440225,0.0135024900251 +-0.701834919714,2.47736544536,0.0385299078523 +-0.722008615384,2.52154894113,0.0634414894351 +-0.742125635735,2.56451127743,0.0882329441133 +-0.762183993394,2.60620964017,0.112900059598 +-0.782181744357,2.64660215189,0.137438715577 +-0.802116994202,2.68564800626,0.161844896911 +-0.82198790407,2.72330759763,0.186114706332 +-0.841792696387,2.75954264492,0.210244376583 +-0.861529660283,2.79431630944,0.234230281949 +-0.881197156691,2.82759330577,0.258068949089 +-0.900793623103,2.85934000543,0.281757067152 +-0.920317577948,2.88952453277,0.305291497113 +-0.939767624589,2.91811685279,0.328669280293 +-0.959142454913,2.94508885053,0.351887646033 +-0.978440852506,2.97041440179,0.374944018496 +-0.997661695401,2.99406943505,0.397836022571 +-1.01680395839,3.01603198444,0.420561488879 +[TJP-4_1_ci4-1-1-2] +-1.01680395839,3.01603198444,0.420561488879 +-1.03594622137,3.03799453384,0.443286955186 +-1.05500990445,3.05826459936,0.465845883727 +-1.07399398241,3.07682021514,0.48823610512 +-1.0928975268,3.09364152098,0.510455655716 +-1.11171970825,3.10871081529,0.532502782593 +-1.13045979833,3.12201259917,0.554375947654 +-1.149117171,3.13353361139,0.576073830799 +-1.16769130361,3.14326285432,0.59759533217 +-1.18618177743,3.15119161078,0.618939573461 +-1.20458827778,3.15731345191,0.640105898311 +-1.22291059362,3.16162423619,0.661093871772 +-1.24114861685,3.16412209985,0.681903278878 +-1.25930234104,3.16480743881,0.702534122329 +-1.27737185986,3.16368288261,0.722986619322 +-1.29535736496,3.16075326053,0.743261197543 +-1.31325914364,3.15602556037,0.763358490367 +-1.33107757598,3.14950888025,0.783279331295 +-1.34881313169,3.14121437399,0.803024747655 +-1.36646636662,3.13115519036,0.822595953636 +-1.38403791891,3.11934640698,0.841994342658 +-1.40152850483,3.10580495907,0.861221479163 +-1.4189389144,3.09054956391,0.880279089834 +-1.43627000666,3.07360064126,0.89916905432 +-1.45352270474,3.05498023047,0.917893395486 +-1.4706979907,3.03471190487,0.936454269254 +-1.48779690013,3.01282068373,0.954853954069 +-1.50482051662,2.98933294265,0.973094840035 +-1.52176996598,2.96427632266,0.991179417771 +-1.53864641042,2.93767963867,1.00911026702 +-1.55545104244,2.90957278775,1.02689004507 +-1.57218507879,2.87998665768,1.04452147497 +-1.58884975413,2.8489530362,1.0620073337 +-1.6054463148,2.81650452155,1.07935044017 +-1.62197601232,2.78267443448,1.09655364319 +-1.63844009701,2.74749673224,1.11361980944 +-1.65483981143,2.71100592493,1.1305518114 +-1.67117638387,2.67323699443,1.14735251534 +-1.68745102177,2.63422531621,1.16402476935 +-1.70366490509,2.59400658443,1.18057139144 +-1.71981917981,2.55261674027,1.19699515775 +-1.73591495126,2.51009190405,1.21329879087 +-1.7519532776,2.46646831094,1.22948494832 +-1.76793516323,2.4217822507,1.24555621109 +-1.78386155228,2.37607001137,1.26151507248 +-1.79973332211,2.32936782705,1.27736392697 +-1.81555127686,2.28171182988,1.29310505943 +-1.83131614105,2.23313800609,1.30874063439 +-1.84702855322,2.1836821563,1.32427268559 +-1.86268905967,2.13337985997,1.33970310578 +-1.87829810823,2.08226644384,1.35503363668 +-1.89385604214,2.03037695453,1.37026585923 +-1.909363094,1.97774613503,1.38540118406 +-1.92481937985,1.92440840495,1.40044084227 +-1.94022489328,1.8703978446,1.4153858764 +-1.95557949979,1.81574818254,1.43023713179 +-1.97088293114,1.7604927866,1.4449952481 +-1.98613477991,1.70466465809,1.45966065127 +-2.00133449424,1.64829642915,1.47423354573 +-2.01648137268,1.59142036286,1.48871390692 +-2.03157455924,1.53406835615,1.50310147419 +-2.04661303866,1.47627194514,1.51739574408 +-2.06159563186,1.41806231266,1.53159596397 +-2.07652099164,1.35947029796,1.54570112605 +-2.09138759861,1.30052640815,1.55970996182 +-2.10619375739,1.2412608313,1.57362093695 +-2.1209375931,1.18170345087,1.58743224659 +-2.13561704811,1.12188386143,1.60114181119 +-2.15022987916,1.06183138517,1.61474727275 +-2.16477365479,1.00157508931,1.62824599166 +-2.1792457531,0.941143803926,1.641635044 +-2.1936433599,0.88056614014,1.65491121941 +-2.20796346729,0.819870508428,1.66807101957 +-2.22220287258,0.759085136841,1.68111065719 +-2.23635817766,0.698238088971,1.6940260557 +-2.25042578886,0.637357281464,1.70681284952 +-2.26440191717,0.576470500925,1.71946638497 +-2.278282579,0.515605420041,1.73198172185 +-2.29206359745,0.454789612778,1.74435363574 +-2.30574060397,0.394050568494,1.75657662089 +-2.31930904064,0.333415704867,1.76864489393 +-2.33276416292,0.272912379478,1.78055239822 +-2.34610104288,0.21256789997,1.79229280891 +-2.35931457306,0.152409532678,1.80385953879 +-2.37239947077,0.0924645096311,1.81524574479 +-2.385350283,0.0327600338713,1.82644433527 +-2.39816139176,-0.0266767169846,1.837447978 +-2.41082702011,-0.0858185889865,1.84824910889 +-2.42334123857,-0.144638451933,1.8588399414 +-2.43569797211,-0.203109201321,1.86921247667 +-2.4478910077,-0.261203762172,1.87935851435 +-2.45991400224,-0.318895094752,1.88926966409 +-2.47176049112,-0.376156202149,1.89893735768 +-2.48342389715,-0.432960139721,1.90835286183 +-2.49489753996,-0.489280026355,1.91750729158 +-2.50617464586,-0.545089057511,1.92639162423 +-2.51724835809,-0.600360519997,1.93499671386 +-2.52811174748,-0.655067808416,1.94331330637 +-2.5387578234,-0.709184443203,1.95133205497 +-2.54917954511,-0.762684090192,1.95904353615 +-2.55936983343,-0.81554058162,1.96643826599 +-2.56932158254,-0.867727938461,1.97350671688 +-2.57902767218,-0.919220394021,1.98023933455 +-2.58848097997,-0.96999241865,1.98662655531 +-2.59767439387,-1.0200187455,1.9926588236 +-2.60660082479,-1.06927439716,1.99832660964 +-2.61525321937,-1.11773471315,2.00362042721 +-2.62362457263,-1.165375378,2.00853085154 +-2.63170794084,-1.21217244992,2.01304853715 +-2.63949645419,-1.25810238989,2.01716423576 +-2.6469833295,-1.30314209102,2.02086881398 +-2.65416188278,-1.34726890809,2.024153271 +-2.66102554167,-1.39046068709,2.02700875601 +[TJP-4_1_ci4-1-2-1-1-1] +-2.66102554167,-1.39046068709,2.02700875601 +-2.66274145639,-1.40125863184,2.02772262727 +-2.66443769021,-1.41199813671,2.02840968777 +-2.66611414044,-1.42267885555,2.02906979923 +-2.66777070482,-1.43330044411,2.02970282393 +-2.66940728154,-1.44386256011,2.03030862478 +-2.67102376925,-1.45436486324,2.03088706528 +-2.67262006708,-1.46480701518,2.03143800959 +-2.67419607463,-1.47518867967,2.03196132252 +-2.67575169201,-1.48550952249,2.03245686953 +-2.67728681983,-1.49576921153,2.0329245168 +-2.67880135922,-1.50596741679,2.0333641312 +-2.68029521184,-1.51610381041,2.0337755803 +-2.68176827991,-1.52617806675,2.03415873244 +-2.6832204662,-1.53618986232,2.03451345669 +-2.68465167402,-1.54613887591,2.03483962292 +-2.68606180728,-1.55602478854,2.03513710174 +-2.6874507705,-1.56584728357,2.03540576461 +-2.68881846877,-1.57560604662,2.03564548378 +-2.69016480781,-1.58530076571,2.03585613234 +-2.69148969395,-1.59493113121,2.03603758424 +-2.69279303418,-1.60449683591,2.0361897143 +-2.6940747361,-1.61399757502,2.03631239821 +-2.69533470802,-1.62343304622,2.03640551257 +-2.69657285887,-1.63280294968,2.03646893488 +-2.69778909829,-1.64210698808,2.03650254358 +-2.6989833366,-1.65134486665,2.03650621806 +-2.70015548482,-1.6605162932,2.03647983866 +-2.70130545469,-1.66962097811,2.03642328671 +-2.70243315867,-1.67865863441,2.03633644452 +-2.70353850996,-1.68762897778,2.0362191954 +-2.70462142249,-1.69653172657,2.03607142371 +-2.70568181095,-1.70536660184,2.03589301481 +-2.70671959082,-1.71413332738,2.03568385513 +-2.70773467832,-1.72283162975,2.03544383217 +-2.70872699046,-1.73146123826,2.03517283449 +-2.70969644507,-1.74002188507,2.03487075176 +-2.71064296077,-1.74851330514,2.03453747475 +-2.71156645699,-1.75693523632,2.03417289535 +-2.71246685399,-1.76528741932,2.03377690661 +-2.71334407286,-1.77356959776,2.03334940268 +-2.71419803555,-1.78178151822,2.03289027892 +-2.71502866485,-1.78992293021,2.03239943185 +-2.7158358844,-1.79799358622,2.03187675917 +-2.71661961873,-1.80599324177,2.03132215979 +-2.71737979325,-1.8139216554,2.03073553384 +-2.71811633425,-1.82177858868,2.03011678267 +-2.71882916892,-1.82956380628,2.02946580888 +-2.71951822537,-1.83727707596,2.02878251631 +-2.7201834326,-1.8449181686,2.02806681008 +-2.72082472055,-1.85248685821,2.02731859658 +-2.72144202009,-1.85998292199,2.0265377835 +-2.72203526303,-1.86740614029,2.02572427982 +-2.72260438212,-1.8747562967,2.02487799583 +-2.72314931108,-1.88203317801,2.02399884316 +-2.72366998458,-1.88923657426,2.02308673478 +-2.72416633826,-1.89636627878,2.02214158497 +-2.72463830876,-1.90342208816,2.02116330942 +-2.72508583367,-1.91040380231,2.02015182515 +-2.7255088516,-1.91731122446,2.01910705057 +-2.72590730215,-1.92414416118,2.0180289055 +-2.72628112593,-1.93090242241,2.01691731114 +-2.72663026455,-1.93758582147,2.0157721901 +-2.72695466067,-1.94419417508,2.01459346642 +-2.72725425795,-1.95072730336,2.01338106556 +-2.72752900108,-1.95718502988,2.01213491444 +-2.72777883581,-1.96356718165,2.0108549414 +-2.72800370891,-1.96987358914,2.00954107625 +-2.72820356823,-1.97610408632,2.00819325029 +-2.72837836265,-1.98225851063,2.00681139626 +-2.72852804212,-1.98833670304,2.00539544841 +-2.72865255766,-1.99433850803,2.00394534247 +-2.72875186137,-2.00026377365,2.00246101567 +-2.7288259064,-2.00611235146,2.00094240676 +-2.72887464702,-2.01188409663,1.999389456 +-2.72889803855,-2.01757886789,1.99780210516 +-2.72889603743,-2.02319652755,1.99618029757 +-2.72886860119,-2.02873694155,1.99452397809 +-2.72881568844,-2.03419997944,1.9928330931 +-2.72873725892,-2.03958551439,1.99110759057 +-2.72863327347,-2.04489342322,1.98934742001 +-2.72850369403,-2.0501235864,1.9875525325 +-2.72834848369,-2.05527588805,1.98572288068 +-2.72816760661,-2.06035021596,1.98385841878 +-2.72796102811,-2.06534646163,1.98195910261 +-2.72772871463,-2.0702645202,1.98002488958 +-2.72747063372,-2.07510429055,1.97805573868 +-2.72718675409,-2.07986567525,1.97605161049 +-2.72687704557,-2.08454858057,1.97401246723 +-2.72654147911,-2.08915291652,1.97193827269 +-2.72618002684,-2.09367859682,1.9698289923 +-2.72579266198,-2.09812553895,1.96768459309 +-2.72537935894,-2.10249366409,1.96550504374 +-2.72494009325,-2.10678289721,1.96329031452 +-2.7244748416,-2.110993167,1.96104037735 +-2.72398358181,-2.11512440592,1.9587552058 +-2.72346629287,-2.11917655017,1.95643477503 +-2.72292295491,-2.12314953973,1.95407906189 +-2.72235354921,-2.12704331834,1.95168804483 +-2.72175805821,-2.13085783353,1.94926170399 +-2.7211364655,-2.13459303656,1.94680002112 +-2.72048875584,-2.13824888251,1.94430297964 +-2.71981491511,-2.1418253302,1.94177056461 +-2.71911493037,-2.14532234226,1.93920276276 +-2.71838878984,-2.14873988506,1.93659956246 +-2.71763648287,-2.15207792879,1.93396095375 +-2.71685799999,-2.15533644738,1.93128692832 +-2.71605333286,-2.15851541857,1.92857747953 +-2.71522247432,-2.16161482386,1.9258326024 +-2.71436541835,-2.16463464854,1.92305229359 +-2.71348216006,-2.16757488165,1.92023655145 +-2.71257269576,-2.17043551603,1.91738537597 +-2.71163702286,-2.17321654827,1.91449876883 +[TJP-4_1_ci4-1-2-1-1-2] +-2.71163702286,-2.17321654827,1.91449876883 +-2.71070134996,-2.17599758051,1.91161216169 +-2.70973946847,-2.17869901062,1.90869012289 +-2.70875137582,-2.18132083519,1.90573265408 +-2.70773707058,-2.18386305459,1.90273975859 +-2.70669655249,-2.18632567296,1.89971144142 +-2.70562982243,-2.1887086982,1.89664770922 +-2.70453688241,-2.19101214197,1.89354857029 +-2.7034177356,-2.1932360197,1.89041403462 +-2.70227238631,-2.19538035054,1.88724411385 +-2.70110083997,-2.19744515744,1.88403882128 +-2.69990310319,-2.19943046705,1.88079817186 +-2.69867918367,-2.20133630979,1.87752218221 +-2.69742909026,-2.20316271978,1.87421087061 +-2.69615283296,-2.2049097349,1.87086425698 +-2.69485042286,-2.20657739673,1.86748236291 +-2.69352187221,-2.20816575057,1.86406521164 +-2.69216719435,-2.20967484543,1.86061282805 +-2.69078640377,-2.21110473401,1.85712523867 +-2.68937951605,-2.2124554727,1.85360247168 +-2.68794654788,-2.21372712158,1.85004455691 +-2.68648751708,-2.2149197444,1.84645152581 +-2.68500244256,-2.21603340857,1.84282341147 +-2.68349134433,-2.21706818515,1.83916024864 +-2.68195424349,-2.21802414887,1.83546207367 +-2.68039116224,-2.21890137805,1.83172892454 +-2.67880212387,-2.21969995467,1.82796084087 +-2.67718715274,-2.22041996431,1.82415786389 +-2.67554627429,-2.22106149614,1.82032003644 +-2.67387951506,-2.22162464293,1.81644740298 +-2.67218690261,-2.22210950104,1.81254000958 +-2.67046846561,-2.22251617035,1.80859790389 +-2.66872423375,-2.22284475435,1.80462113518 +-2.66695423781,-2.22309536001,1.80060975431 +-2.66515850957,-2.22326809788,1.79656381373 +-2.6633370819,-2.22336308197,1.79248336745 +-2.66148998867,-2.22338042982,1.7883684711 +-2.6596172648,-2.22332026244,1.78421918184 +-2.65771894622,-2.22318270431,1.78003555842 +-2.65579506989,-2.22296788336,1.77581766116 +-2.65384567378,-2.22267593096,1.77156555191 +-2.65187079686,-2.2223069819,1.76727929409 +-2.64987047909,-2.22186117437,1.76295895265 +-2.64784476145,-2.22133864996,1.75860459409 +-2.64579368587,-2.22073955363,1.75421628644 +-2.64371729529,-2.22006403368,1.74979409925 +-2.6416156336,-2.21931224176,1.74533810359 +-2.63948874567,-2.21848433286,1.74084837204 +-2.63733667731,-2.21758046523,1.73632497869 +-2.63515947531,-2.21660080044,1.73176799913 +-2.63295718736,-2.21554550332,1.72717751042 +-2.63072986213,-2.21441474194,1.72255359114 +-2.62847754919,-2.21320868761,1.71789632132 +-2.62620029903,-2.21192751484,1.71320578246 +-2.62389816308,-2.21057140133,1.70848205754 +-2.62157119364,-2.20914052797,1.70372523098 +-2.61921944392,-2.20763507879,1.69893538865 +-2.61684296803,-2.20605524096,1.69411261786 +-2.61444182095,-2.20440120475,1.68925700735 +-2.61201605853,-2.20267316352,1.68436864729 +-2.60956573749,-2.20087131374,1.67944762925 +-2.60709091541,-2.19899585487,1.67449404623 +-2.60459165071,-2.19704698945,1.6695079926 +-2.60206800264,-2.19502492301,1.66448956415 +-2.5995200313,-2.19292986406,1.65943885803 +-2.59694779759,-2.1907620241,1.65435597278 +-2.59435136325,-2.18852161754,1.64924100829 +-2.5917307908,-2.18620886174,1.64409406582 +-2.58908614356,-2.18382397696,1.63891524797 +-2.58641748565,-2.18136718632,1.63370465869 +-2.58372488194,-2.17883871581,1.62846240324 +-2.58100839809,-2.17623879424,1.62318858822 +-2.57826810051,-2.17356765326,1.61788332154 +-2.57550405636,-2.17082552727,1.61254671241 +-2.57271633354,-2.16801265346,1.60717887133 +-2.56990500068,-2.16512927176,1.60177991009 +-2.56707012714,-2.16217562481,1.59634994177 +-2.56421178296,-2.15915195796,1.59088908069 +-2.56133003893,-2.15605851921,1.58539744244 +-2.5584249665,-2.15289555923,1.57987514388 +-2.5554966378,-2.1496633313,1.57432230307 +-2.55254512565,-2.14636209132,1.56873903933 +-2.54957050352,-2.14299209774,1.56312547318 +-2.54657284554,-2.13955361159,1.55748172638 +-2.54355222649,-2.13604689643,1.55180792185 +-2.54050872176,-2.13247221829,1.54610418374 +-2.5374424074,-2.12882984573,1.54037063736 +-2.53435336004,-2.12512004974,1.5346074092 +-2.53124165692,-2.12134310375,1.52881462691 +-2.5281073759,-2.11749928359,1.52299241931 +-2.52495059539,-2.11358886748,1.51714091633 +-2.52177139439,-2.10961213602,1.51126024907 +-2.51856985246,-2.10556937211,1.50535054972 +-2.51534604972,-2.10146086099,1.49941195163 +-2.51210006683,-2.09728689018,1.49344458921 +-2.50883198497,-2.09304774946,1.48744859799 +-2.50554188586,-2.08874373083,1.48142411457 +-2.50222985173,-2.08437512855,1.47537127665 +-2.4988959653,-2.07994223901,1.46929022298 +-2.4955403098,-2.07544536082,1.46318109336 +-2.49216296892,-2.07088479469,1.45704402865 +-2.48876402685,-2.06626084347,1.45087917074 +-2.48534356821,-2.06157381207,1.44468666255 +-2.4819016781,-2.05682400751,1.43846664802 +-2.47843844203,-2.05201173881,1.43221927209 +-2.47495394598,-2.04713731704,1.4259446807 +-2.47144827631,-2.04220105523,1.4196430208 +-2.46792151981,-2.03720326841,1.41331444028 +-2.46437376367,-2.03214427353,1.40695908803 +-2.46080509547,-2.02702438948,1.40057711388 +-2.45721560315,-2.02184393702,1.39416866863 +-2.45360537506,-2.0166032388,1.387733904 +-2.44997449986,-2.01130261931,1.38127297266 +[TJP-4_1_ci4-1-2-1-2] +-2.44997449986,-2.01130261931,1.38127297266 +-2.44271274947,-2.00070138033,1.36835110998 +-2.43536841066,-1.98986045628,1.35532458044 +-2.42794219291,-1.97878244308,1.34219460533 +-2.4204348114,-1.9674699662,1.32896242081 +-2.41284698674,-1.95592567989,1.31562927766 +-2.4051794446,-1.94415226637,1.30219644091 +-2.39743291542,-1.93215243513,1.28866518959 +-2.38960813406,-1.91992892208,1.27503681641 +-2.38170583946,-1.90748448888,1.26131262744 +-2.37372677436,-1.8948219221,1.24749394187 +-2.36567168495,-1.88194403254,1.23358209164 +-2.35754132055,-1.86885365446,1.21957842122 +-2.34933643329,-1.85555364484,1.20548428728 +-2.34105777782,-1.84204688267,1.19130105841 +-2.33270611096,-1.8283362682,1.17703011486 +-2.3242821914,-1.81442472227,1.16267284824 +-2.31578677942,-1.80031518557,1.14823066126 +-2.30722063653,-1.78601061796,1.13370496744 +-2.29858452523,-1.77151399776,1.11909719086 +-2.28987920867,-1.75682832112,1.10440876588 +-2.28110545035,-1.7419566013,1.08964113692 +-2.27226401385,-1.72690186804,1.07479575814 +-2.26335566255,-1.71166716692,1.05987409325 +-2.2543811593,-1.69625555867,1.04487761523 +-2.24534126618,-1.68067011862,1.02980780609 +-2.23623674422,-1.66491393602,1.01466615664 +-2.2270683531,-1.64899011344,0.999454166263 +-2.21783685092,-1.63290176621,0.984173342662 +-2.2085429939,-1.61665202181,0.968825201653 +-2.19918753614,-1.60024401929,0.953411266939 +-2.18977122937,-1.58368090871,0.937933069895 +-2.18029482268,-1.56696585061,0.922392149358 +-2.1707590623,-1.55010201546,0.906790051414 +-2.16116469134,-1.5330925831,0.891128329202 +-2.15151244957,-1.51594074227,0.87540854271 +-2.14180307317,-1.49864969008,0.859632258587 +-2.13203729453,-1.48122263152,0.843801049948 +-2.12221584201,-1.46366277896,0.827916496191 +-2.11233943974,-1.44597335173,0.811980182816 +-2.10240880741,-1.42815757557,0.795993701248 +-2.09242466005,-1.41021868229,0.779958648663 +-2.08238770786,-1.39215990924,0.763876627821 +-2.07229865598,-1.37398449893,0.7477492469 +-2.06215820434,-1.35569569859,0.731578119332 +-2.05196704747,-1.33729675979,0.715364863652 +-2.04172587431,-1.31879093802,0.699111103337 +-2.03143536805,-1.30018149232,0.682818466661 +-2.02109620595,-1.28147168487,0.666488586543 +-2.01070905922,-1.26266478068,0.650123100408 +-2.00027459283,-1.2437640472,0.633723650042 +-1.98979346538,-1.22477275397,0.617291881454 +-1.97926632894,-1.2056941723,0.600829444744 +-1.96869382894,-1.1865315749,0.584337993968 +-1.95807660402,-1.16728823563,0.567819187009 +-1.94741528593,-1.14796742913,0.551274685447 +-1.93671049938,-1.12857243052,0.534706154435 +-1.92596286193,-1.10910651515,0.518115262573 +-1.91517298391,-1.08957295823,0.501503681791 +-1.9043414683,-1.06997503465,0.484873087222 +-1.89346891063,-1.05031601861,0.468225157089 +-1.88255589889,-1.03059918341,0.45156157258 +-1.87160301345,-1.01082780116,0.434884017741 +-1.86061082698,-0.991005142533,0.418194179351 +-1.84957990439,-0.971134476517,0.401493746812 +-1.8385108027,-0.951219070159,0.384784412034 +-1.82740407107,-0.931262188328,0.368067869318 +-1.81626025065,-0.911267093476,0.351345815246 +-1.80507987461,-0.891237045408,0.334619948562 +-1.79386346801,-0.871175301046,0.317891970063 +-1.78261154782,-0.851085114207,0.30116358248 +-1.77132462285,-0.830969735379,0.284436490363 +-1.76000319374,-0.810832411497,0.267712399968 +-1.74864775289,-0.790676385727,0.250993019135 +-1.7372587845,-0.770504897248,0.234280057175 +-1.72583676448,-0.750321181036,0.217575224746 +-1.71438216051,-0.730128467649,0.200880233733 +-1.70289543195,-0.709929983014,0.184196797125 +-1.69137702991,-0.689728948215,0.167526628892 +-1.6798273972,-0.669528579278,0.150871443857 +-1.66824696838,-0.649332086957,0.134232957566 +-1.65663616972,-0.629142676523,0.117612886158 +-1.64499541922,-0.608963547547,0.101012946231 +-1.63332512667,-0.588797893684,0.0844348547068 +-1.62162569364,-0.568648902458,0.0678803286877 +-1.60989751349,-0.548519755036,0.051351085319 +-1.59814097144,-0.528413626017,0.0348488416411 +-1.58635644456,-0.508333683198,0.0183753144418 +-1.57454430184,-0.488283087352,0.00193222010413 +-1.56270490421,-0.468264992001,-0.0144787255485 +-1.55083860461,-0.448282543176,-0.0308558074117 +-1.538945748,-0.428338879189,-0.0471973112621 +-1.52702667145,-0.408437130388,-0.0635015239241 +-1.51508170416,-0.388580418912,-0.07976673344 +-1.50311116754,-0.36877185845,-0.0959912292441 +-1.49111537527,-0.349014553979,-0.112173302341 +-1.47909463335,-0.329311601515,-0.128311245487 +-1.4670492402,-0.309666087849,-0.144403353379 +-1.45497948667,-0.290081090276,-0.160447922844 +-1.44288565618,-0.270559676331,-0.176443253032 +-1.43076802475,-0.251104903505,-0.19238764562 +-1.4186268611,-0.231719818968,-0.208279405013 +-1.40646242673,-0.212407459278,-0.22411683855 +-1.39427497598,-0.193170850087,-0.239898256724 +-1.38206475615,-0.174013005848,-0.255621973391 +-1.36983200756,-0.1549369295,-0.271286305998 +-1.35757696368,-0.135945612167,-0.286889575806 +-1.34529985115,-0.117042032835,-0.302430108119 +-1.33300088997,-0.0982291580341,-0.317906232524 +-1.3206802935,-0.0795099415055,-0.333316283127 +-1.30833826865,-0.0608873238699,-0.348658598798 +-1.2959750159,-0.042364232286,-0.363931523419 +-1.28359072946,-0.0239435801044,-0.379133406135 +[TJP-4_1_ci4-1-2-2] +-1.28359072946,-0.0239435801044,-0.379133406135 +-1.25882215658,0.0128977242589,-0.409537171567 +-1.23396944893,0.0493292710135,-0.439656769382 +-1.20903416012,0.0853277533563,-0.46947899275 +-1.18401774313,0.120870085418,-0.498990719075 +-1.15892155351,0.155933413354,-0.528178918076 +-1.13374685282,0.190495126812,-0.557030660148 +-1.10849481211,0.224532870791,-0.585533124988 +-1.08316651547,0.258024557872,-0.613673610489 +-1.05776296377,0.290948380814,-0.641439541879 +-1.0322850783,0.323282825518,-0.668818481108 +-1.00673370468,0.355006684322,-0.695798136457 +-0.981109616645,0.386099069632,-0.722366372358 +-0.95541352,0.416539427842,-0.748511219414 +-0.929646056553,0.446307553547,-0.774220884582 +-0.903807808102,0.475383603999,-0.799483761523 +-0.877899300441,0.503748113785,-0.824288441076 +-0.85192100739,0.531382009693,-0.84862372184 +-0.825873354826,0.558266625737,-0.872478620846 +-0.799756724721,0.584383718286,-0.895842384274 +-0.773571459188,0.609715481282,-0.918704498216 +-0.747317864501,0.634244561485,-0.941054699421 +-0.720996215122,0.657954073708,-0.96288298603 +-0.694606757695,0.680827616005,-0.984179628239 +-0.668149715024,0.702849284756,-1.00493517888 +-0.641625290031,0.724003689611,-1.0251404839 +-0.615033669669,0.744275968232,-1.04478669264 +-0.588375028817,0.763651800812,-1.06386526799 +-0.561649534129,0.782117424285,-1.08236799631 +-0.534857347852,0.799659646219,-1.10028699708 +-0.507998631592,0.816265858316,-1.11761473233 +-0.481073550053,0.831924049486,-1.13434401573 +-0.454082274717,0.84662281844,-1.15046802134 +-0.427024987489,0.860351385772,-1.16598029201 +-0.399901884294,0.87309960547,-1.18087474744 +-0.372713178626,0.884857975824,-1.19514569172 +-0.345459105055,0.895617649686,-1.2087878205 +-0.318139922688,0.905370444046,-1.22179622771 +-0.29075591858,0.914108848896,-1.23416641173 +-0.263307411114,0.921826035327,-1.2458942811 +-0.235794753326,0.928515862849,-1.25697615966 +-0.2082183362,0.934172885902,-1.26740879122 +-0.18057859192,0.938792359518,-1.27718934356 +-0.152875997085,0.942370244131,-1.28631541196 +-0.125111075897,0.944903209504,-1.29478502206 +-0.097284403312,0.946388637753,-1.30259663217 +-0.0693966081684,0.946824625474,-1.30974913497 +-0.0414483762873,0.946209984939,-1.31624185856 +-0.0134404535546,0.944544244368,-1.32207456699 +0.0146263510157,0.94182764728,-1.32724746004 +0.0427511622317,0.938061150903,-1.3317611725 +0.0709330356845,0.933246423668,-1.33561677278 +0.0991709547148,0.927385841784,-1.33881576093 +0.127463827383,0.9204824849,-1.34136006605 +0.155810483439,0.912540130874,-1.34325204312 +0.184209671285,0.903563249673,-1.34449446925 +0.21266005493,0.893556996397,-1.34509053936 +0.24116021094,0.882527203487,-1.34504386129 +0.269708625358,0.870480372104,-1.34435845038 +0.298303690619,0.857423662739,-1.34303872359 +0.326943702438,0.843364885061,-1.34108949301 +0.355626856671,0.828312487051,-1.33851595899 +0.384351246155,0.812275543441,-1.33532370278 +0.41311485751,0.795263743521,-1.33151867873 +0.44191556792,0.777287378313,-1.32710720609 +0.470751141874,0.758357327196,-1.32209596045 +0.499619227873,0.738485043982,-1.31649196477 +0.528517355108,0.717682542519,-1.31030258017 +0.557442930098,0.695962381844,-1.30353549634 +0.586393233295,0.67333765093,-1.29619872174 +0.615365415656,0.649821953089,-1.28830057349 +0.644356495185,0.625429390049,-1.27984966714 +0.673363353438,0.600174545775,-1.27085490617 +0.702382732013,0.574072470058,-1.26132547141 +0.731411229002,0.547138661932,-1.25127081025 +0.760445295433,0.519389052945,-1.24070062581 +0.789481231696,0.490839990348,-1.22962486608 +0.818515183954,0.461508220219,-1.21805371288 +0.847543140556,0.431410870582,-1.20599757098 +0.876560928451,0.400565434548,-1.19346705706 +0.905564209615,0.368989753521,-1.18047298884 +0.934548477498,0.336702000502,-1.16702637418 +0.963509053497,0.303720663521,-1.15313840031 +0.992441083467,0.270064529238,-1.13882042313 +1.02133953429,0.235752666732,-1.12408395665 +1.05019919051,0.200804411514,-1.10894066259 +1.07901465098,0.16523934978,-1.09340234007 +1.10778032573,0.129077302935,-1.07748091557 +1.13649043277,0.0923383124022,-1.06118843298 +1.16513899514,0.0550426247407,-1.04453704393 +1.19371983799,0.0172106770779,-1.0275389983 +1.22222658588,-0.0211369171211,-1.01020663496 +1.25065266022,-0.0599793819433,-0.992552372695 +1.27899127681,-0.0992957925664,-0.974588701478 +1.30723544371,-0.139065088444,-0.956328173863 +1.33537795919,-0.17926608613,-0.937783396699 +1.36341140998,-0.21987749175,-0.918967023073 +1.39132816974,-0.260877913111,-0.899891744501 +1.41912039779,-0.302245871464,-0.880570283367 +1.44678003813,-0.343959812923,-0.861015385613 +1.47429881875,-0.385998119542,-0.841239813666 +1.50166825125,-0.428339120073,-0.821256339613 +1.52887963079,-0.470961100411,-0.801077738595 +1.55592403642,-0.513842313732,-0.780716782442 +1.58279233171,-0.556960990362,-0.760186233511 +1.60947516586,-0.600295347362,-0.739498838742 +1.63596297509,-0.643823597886,-0.718667323913 +1.66224598457,-0.687523960292,-0.697704388072 +1.68831421067,-0.731374667056,-0.676622698166 +1.7141574637,-0.775353973496,-0.655434883812 +1.73976535114,-0.819440166331,-0.63415353224 +1.76512728127,-0.8636115721,-0.612791183367 +1.79023246733,-0.90784656545,-0.591360324995 +[TJP-4_1_ci4-2-1-1-1] +1.79023246733,-0.90784656545,-0.591360324995 +1.80278506036,-0.929964062125,-0.580644895809 +1.81527346737,-0.952097455695,-0.569912339249 +1.82769634002,-0.974244042992,-0.55916421629 +1.84005231778,-0.996401123854,-0.54840208465 +1.85234002803,-1.01856600138,-0.537627498642 +1.86455808627,-1.04073598221,-0.526842009023 +1.8767050962,-1.06290837675,-0.516047162848 +1.88877964988,-1.08508049942,-0.505244503328 +1.90078032792,-1.10724966897,-0.494435569688 +1.91270569963,-1.12941320866,-0.483621897021 +1.92455432319,-1.15156844653,-0.472805016155 +1.93632474584,-1.17371271568,-0.46198645351 +1.94801550408,-1.19584335449,-0.451167730962 +1.95962512383,-1.21795770686,-0.440350365711 +1.97115212072,-1.2400531225,-0.42953587014 +1.98259500021,-1.26212695713,-0.418725751688 +1.99395225787,-1.28417657276,-0.407921512711 +2.00522237963,-1.30619933793,-0.397124650354 +2.01640384194,-1.32819262795,-0.386336656418 +2.02749511211,-1.35015382515,-0.37555901723 +2.03849464852,-1.37208031916,-0.36479321351 +2.04940090088,-1.39396950712,-0.354040720245 +2.06021231054,-1.41581879395,-0.343303006554 +2.07092731072,-1.43762559259,-0.332581535563 +2.08154432686,-1.4593873243,-0.321877764274 +2.09206177686,-1.48110141883,-0.311193143431 +2.10247807144,-1.50276531478,-0.300529117397 +2.11279161442,-1.52437645978,-0.289887124021 +2.12300080306,-1.54593231077,-0.279268594505 +2.13310402838,-1.56743033429,-0.268674953277 +2.1430996755,-1.58886800671,-0.258107617861 +2.15298612401,-1.61024281451,-0.247567998739 +2.16276174831,-1.63155225455,-0.237057499226 +2.17242491796,-1.65279383436,-0.226577515334 +2.18197399807,-1.67396507235,-0.216129435638 +2.19140734967,-1.69506349818,-0.205714641143 +2.20072333012,-1.71608665294,-0.195334505149 +2.20992029347,-1.73703208952,-0.184990393113 +2.21899659088,-1.75789737282,-0.174683662514 +2.22795057104,-1.77868008009,-0.164415662716 +2.23678058056,-1.79937780117,-0.154187734827 +2.24548496441,-1.81998813884,-0.144001211561 +2.25406206637,-1.84050870906,-0.133857417094 +2.26251022941,-1.8609371413,-0.123757666928 +2.27082779621,-1.88127107882,-0.113703267741 +2.27901310954,-1.901508179,-0.103695517247 +2.28706451277,-1.92164611361,-0.0937357040481 +2.2949803503,-1.94168256914,-0.0838251074911 +2.30275896806,-1.96161524712,-0.0739649975166 +2.31039871394,-1.98144186439,-0.0641566345121 +2.31789793831,-2.00116015348,-0.0544012691606 +2.32525499449,-2.02076786287,-0.0447001422906 +2.33246823926,-2.04026275736,-0.0350544847229 +2.33953603333,-2.05964261834,-0.0254655171176 +2.34645674183,-2.07890524417,-0.0159344498193 +2.35322873488,-2.09804845047,-0.00646248270164 +2.35985038802,-2.11707007048,0.00294919498921 +2.36632008278,-2.13596795535,0.0122994047925 +2.37263620718,-2.15473997453,0.0215869791912 +2.37879715624,-2.17338401605,0.0308107617718 +2.38480133252,-2.19189798691,0.0399696073844 +2.39064714664,-2.21027981337,0.0490623823041 +2.39633301782,-2.22852744133,0.0580879643928 +2.40185737441,-2.24663883666,0.0670452432618 +2.4072186544,-2.26461198552,0.0759331204352 +2.41241530599,-2.28244489473,0.0847505095137 +2.41744578814,-2.30013559214,0.0934963363385 +2.42230857105,-2.31768212689,0.102169539157 +2.42700213676,-2.33508256985,0.110769068786 +2.43152497968,-2.3523350139,0.119293888778 +2.4358756071,-2.36943757432,0.127742975589 +2.44005253978,-2.3863883891,0.136115318738 +2.44405431246,-2.40318561931,0.14440992098 +2.44787947442,-2.41982744943,0.152625798463 +2.45152659,-2.43631208769,0.160761980901 +2.45499423917,-2.45263776643,0.168817511733 +2.45828101805,-2.46880274244,0.17679144829 +2.46138553945,-2.48480529728,0.184682861959 +2.46430643341,-2.50064373762,0.192490838343 +2.46704234774,-2.51631639559,0.200214477428 +2.46959194853,-2.53182162912,0.20785289374 +2.47195392069,-2.54715782222,0.215405216508 +2.47412696849,-2.56232338539,0.222870589823 +2.47610981606,-2.57731675585,0.230248172795 +2.4779012079,-2.59213639795,0.237537139711 +2.47949990944,-2.60678080343,0.244736680189 +2.48090470748,-2.62124849173,0.251845999333 +2.48211441076,-2.63553801035,0.258864317883 +2.4831278504,-2.6496479351,0.265790872367 +2.48394388046,-2.66357687044,0.272624915248 +2.48456137835,-2.67732344975,0.27936571507 +2.48497924537,-2.69088633562,0.286012556601 +2.48519640719,-2.70426422016,0.292564740977 +2.48521181426,-2.71745582524,0.299021585839 +2.48502444232,-2.73045990281,0.305382425467 +2.48463329285,-2.74327523512,0.311646610919 +2.48403739351,-2.75590063499,0.317813510157 +2.48323579858,-2.7683349461,0.323882508178 +2.48222758938,-2.78057704319,0.329853007135 +2.48101187471,-2.79262583231,0.335724426464 +2.47958779128,-2.80448025107,0.341496202997 +2.47795450407,-2.81613926885,0.347167791078 +2.47611120676,-2.82760188701,0.352738662676 +2.47405712212,-2.83886713908,0.358208307491 +2.47179150238,-2.84993409101,0.363576233058 +2.46931362958,-2.86080184133,0.368841964849 +2.46662281597,-2.87146952129,0.374005046363 +2.46371840432,-2.8819362951,0.379065039225 +2.46059976828,-2.89220136007,0.38402152327 +2.45726631271,-2.90226394672,0.388874096624 +2.45371747396,-2.91212331897,0.39362237579 +2.44995272025,-2.92177877426,0.398265995714 +[TJP-4_1_ci4-2-1-1-2] +2.44995272025,-2.92177877426,0.398265995714 +2.44618796653,-2.93143422955,0.402909615639 +2.44220729784,-2.94088576789,0.407448576322 +2.43801018237,-2.9501326867,0.411882512712 +2.43359612015,-2.95917431695,0.416211078205 +2.42896464332,-2.96801002323,0.420433944716 +2.42411531646,-2.97663920391,0.424550802756 +2.41904773687,-2.98506129126,0.428561361489 +2.41376153481,-2.9932757515,0.432465348801 +2.40825637381,-3.00128208496,0.436262511351 +2.40253195088,-3.00907982609,0.439952614622 +2.39658799676,-3.01666854358,0.443535442973 +2.39042427618,-3.02404784041,0.447010799673 +2.384040588,-3.03121735387,0.450378506945 +2.37743676551,-3.03817675561,0.453638405992 +2.37061267652,-3.04492575169,0.456790357024 +2.36356822362,-3.05146408254,0.459834239283 +2.3563033443,-3.05779152302,0.462769951056 +2.34881801112,-3.06390788234,0.465597409685 +2.34111223184,-3.06981300409,0.468316551573 +2.33318604958,-3.0755067662,0.470927332185 +2.32503954287,-3.08098908087,0.473429726043 +2.31667282584,-3.0862598945,0.475823726713 +2.30808604824,-3.09131918767,0.478109346789 +2.29927939556,-3.09616697499,0.480286617872 +2.29025308907,-3.10080330507,0.482355590546 +2.28100738588,-3.10522826034,0.484316334337 +2.27154257901,-3.10944195699,0.486168937683 +2.26185899737,-3.11344454479,0.487913507888 +2.2519570058,-3.11723620697,0.489550171068 +2.24183700509,-3.12081716006,0.491079072104 +2.23149943192,-3.12418765369,0.492500374578 +2.22094475891,-3.12734797045,0.493814260706 +2.21017349453,-3.13029842566,0.495020931269 +2.19918618305,-3.13303936717,0.496120605539 +2.18798340455,-3.13557117513,0.497113521193 +2.17656577477,-3.13789426179,0.497999934228 +2.16493394508,-3.14000907121,0.498780118871 +2.15308860236,-3.14191607904,0.499454367477 +2.14103046891,-3.14361579221,0.500022990433 +2.12876030235,-3.1451087487,0.500486316043 +2.11627889545,-3.14639551721,0.500844690423 +2.10358707602,-3.14747669686,0.501098477377 +2.09068570678,-3.14835291689,0.501248058279 +2.07757568515,-3.14902483631,0.501293831946 +2.06425794314,-3.14949314359,0.501236214503 +2.05073344712,-3.14975855628,0.501075639249 +2.03700319767,-3.14982182069,0.500812556517 +2.02306822934,-3.14968371146,0.500447433526 +2.0089296105,-3.14934503125,0.499980754235 +1.99458844305,-3.14880661028,0.499413019186 +1.98004586226,-3.148069306,0.498744745347 +1.9653030365,-3.14713400261,0.497976465953 +1.95036116698,-3.14600161068,0.497108730336 +1.93522148755,-3.14467306672,0.496142103758 +1.9198852644,-3.14314933273,0.495077167239 +1.90435379579,-3.14143139576,0.493914517376 +1.88862841182,-3.13952026743,0.492654766171 +1.87271047409,-3.13741698351,0.491298540837 +1.85660137545,-3.13512260342,0.489846483624 +1.84030253969,-3.13263820974,0.488299251619 +1.82381542125,-3.12996490776,0.48665751656 +1.80714150489,-3.12710382493,0.484921964642 +1.79028230542,-3.12405611043,0.483093296313 +1.77323936733,-3.1208229346,0.481172226084 +1.75601426451,-3.11740548844,0.479159482319 +1.7386085999,-3.11380498314,0.477055807033 +1.72102400516,-3.11002264946,0.474861955691 +1.70326214036,-3.10605973731,0.472578696991 +1.68532469358,-3.1019175151,0.470206812663 +1.66721338066,-3.09759726931,0.467747097253 +1.64892994476,-3.09310030385,0.465200357913 +1.63047615607,-3.08842793959,0.462567414187 +1.61185381144,-3.08358151373,0.459849097793 +1.59306473403,-3.07856237932,0.457046252413 +1.57411077297,-3.07337190464,0.454159733473 +1.55499380297,-3.06801147269,0.451190407927 +1.53571572398,-3.06248248057,0.448139154037 +1.51627846086,-3.05678633897,0.445006861161 +1.49668396295,-3.05092447156,0.441794429529 +1.47693420381,-3.04489831444,0.438502770028 +1.45703118076,-3.03870931558,0.435132803982 +1.43697691458,-3.03235893423,0.431685462938 +1.41677344916,-3.02584864034,0.428161688445 +1.39642285109,-3.01917991402,0.424562431837 +1.37592720934,-3.01235424496,0.42088865402 +1.35528863492,-3.00537313184,0.417141325254 +1.33450926046,-2.99823808179,0.41332142494 +1.31359123995,-2.99095060978,0.409429941402 +1.2925367483,-2.98351223812,0.405467871683 +1.27134798105,-2.97592449582,0.401436221326 +1.250027154,-2.96818891809,0.397336004169 +1.22857650289,-2.96030704574,0.393168242133 +1.20699828302,-2.95228042466,0.388933965018 +1.18529476894,-2.94411060523,0.3846342103 +1.16346825411,-2.93579914178,0.380270022922 +1.14152105059,-2.92734759207,0.375842455098 +1.11945548866,-2.91875751672,0.371352566111 +1.09727391655,-2.91003047867,0.366801422117 +1.07497870008,-2.90116804267,0.36219009595 +1.05257222239,-2.89217177475,0.357519666928 +1.03005688357,-2.88304324165,0.352791220665 +1.00743510039,-2.87378401038,0.34800584888 +0.984709306009,-2.86439564764,0.343164649214 +0.96188194962,-2.85487971935,0.338268725045 +0.938955496213,-2.84523779016,0.333319185308 +0.91593242625,-2.8354714229,0.328317144318 +0.892815235394,-2.82558217815,0.323263721594 +0.869606434218,-2.81557161376,0.318160041686 +0.846308547934,-2.80544128433,0.313007234006 +0.822924116118,-2.79519274078,0.307806432661 +0.799455692439,-2.78482752989,0.302558776289 +0.775905844401,-2.77434719383,0.297265407895 +[TJP-4_1_ci4-2-1-2] +0.775905844401,-2.77434719383,0.297265407895 +0.728806148326,-2.75338652173,0.286678671107 +0.681380754815,-2.73196534897,0.275909086233 +0.63365020389,-2.710096013,0.264965797323 +0.585635256886,-2.68779077771,0.253858018329 +0.537356888006,-2.66506181901,0.242595027942 +0.488836276176,-2.64192121091,0.231186164601 +0.440094797176,-2.6183809121,0.219640821693 +0.391154016065,-2.59445275307,0.207968442927 +0.342035679869,-2.57014842375,0.196178517897 +0.292761710538,-2.54547946178,0.184280577823 +0.243354198161,-2.52045724134,0.172284191474 +0.193835394396,-2.49509296256,0.160198961258 +0.144227706133,-2.46939764162,0.148034519488 +0.0945536893337,-2.44338210138,0.135800524802 +0.0448360430432,-2.41705696272,0.12350665874 +-0.00490239645894,-2.39043263649,0.111162622467 +-0.0546386614034,-2.3635193161,0.0987781336205 +-0.104349658198,-2.33632697074,0.0863629232877 +-0.154012173056,-2.30886533931,0.0739267330877 +-0.203602877614,-2.28114392491,0.0614793123492 +-0.253098334592,-2.25317199003,0.0490304153683 +-0.302475003523,-2.22495855234,0.0365897987329 +-0.35170924659,-2.1965123811,0.0241672186948 +-0.400777334635,-2.16784199422,0.0117724285762 +-0.449655453348,-2.1389556559,-0.000584823809622 +-0.498319709716,-2.10986137488,-0.0128947987378 +-0.546746138741,-2.08056690323,-0.0251477671719 +-0.594910710499,-2.05107973574,-0.0373340134004 +-0.642789337564,-2.02140710988,-0.0494438377282 +-0.690357882848,-1.99155600622,-0.0614675592416 +-0.737592167894,-1.96153314942,-0.0733955186627 +-0.784467981666,-1.93134500969,-0.085218081312 +-0.830961089871,-1.90099780474,-0.0969256401954 +-0.877047244851,-1.87049750214,-0.108508619232 +-0.92270219608,-1.83984982218,-0.119957476635 +-0.967901701296,-1.80906024105,-0.131262708473 +-1.0126215383,-1.77813399451,-0.142414852399 +-1.05683751745,-1.74707608182,-0.153404491597 +-1.10052549484,-1.7158912701,-0.16422225892 +-1.14366138629,-1.68458409891,-0.174858841259 +-1.18622118197,-1.65315888526,-0.185304984135 +-1.2281809619,-1.62161972874,-0.195551496529 +-1.26951691213,-1.58997051704,-0.20558925595 +-1.31020534177,-1.55821493156,-0.215409213759 +-1.35022270069,-1.52635645335,-0.225002400731 +-1.3895455981,-1.49439836915,-0.234359932873 +-1.4281508218,-1.46234377762,-0.243473017493 +-1.46601535817,-1.43019559572,-0.252332959516 +-1.50311641295,-1.39795656516,-0.260931168034 +-1.5394314326,-1.36562925901,-0.26925916311 +-1.57493812644,-1.33321608836,-0.277308582789 +-1.60961448929,-1.30071930905,-0.285071190348 +-1.64343882479,-1.26814102838,-0.292538881736 +-1.6763897692,-1.23548321199,-0.299703693219 +-1.70844631572,-1.20274769056,-0.306557809193 +-1.7395878392,-1.16993616667,-0.313093570161 +-1.76979412129,-1.13705022153,-0.319303480854 +-1.79904537579,-1.10409132172,-0.325180218463 +-1.82732227433,-1.07106082584,-0.33071664098 +-1.85460597218,-1.03795999117,-0.335905795605 +-1.88087813416,-1.00478998015,-0.340740927205 +-1.90612096053,-0.971551866892,-0.345215486792 +-1.93031721283,-0.938246643466,-0.349323140007 +-1.95345023957,-0.904875226191,-0.353057775555 +-1.97550400167,-0.87143846175,-0.356413513589 +-1.99646309756,-0.837937133198,-0.359384714 +-2.01631278787,-0.804371965841,-0.361965984573 +-2.03503901956,-0.770743632976,-0.364152189003 +-2.05262844955,-0.737052761497,-0.365938454717 +-2.0690684675,-0.703299937345,-0.367320180474 +-2.08434721797,-0.669485710817,-0.368293043731 +-2.09845362154,-0.63561060172,-0.368853007711 +-2.11137739511,-0.601675104372,-0.368996328178 +-2.12310907099,-0.567679692447,-0.368719559858 +-2.13364001503,-0.533624823661,-0.368019562501 +-2.14296244334,-0.499510944313,-0.366893506539 +-2.15106943785,-0.465338493654,-0.365338878324 +-2.15795496048,-0.431107908123,-0.363353484918 +-2.16361386573,-0.396819625415,-0.360935458403 +-2.16804191197,-0.362474088413,-0.358083259704 +-2.171235771,-0.328071748974,-0.354795681889 +-2.17319303604,-0.293613071575,-0.351071852941 +-2.17391222805,-0.259098536823,-0.346911237976 +-2.17339280033,-0.224528644845,-0.342313640898 +-2.17163514135,-0.189903918554,-0.33727920548 +-2.16864057584,-0.155224906797,-0.331808415855 +-2.16441136403,-0.120492187403,-0.325902096426 +-2.15895069907,-0.0857063701363,-0.319561411175 +-2.15226270271,-0.0508680995578,-0.312787862375 +-2.14435241904,-0.0159780578101,-0.305583288712 +-2.13522580647,0.0189630326625,-0.297949862822 +-2.12488972796,0.0539544064502,-0.289890088239 +-2.11335193934,0.0889952525582,-0.281406795777 +-2.10062107607,0.124084711819,-0.272503139357 +-2.08670663812,0.159221874322,-0.263182591288 +-2.07161897331,0.194405776852,-0.253448937031 +-2.05536925898,0.229635400315,-0.243306269459 +-2.03796948221,0.264909667147,-0.232758982641 +-2.01943241845,0.300227438679,-0.221811765182 +-1.99977160884,0.33558751246,-0.210469593135 +-1.9790013362,0.3709886195,-0.198737722534 +-1.95713659976,0.406429421445,-0.186621681561 +-1.93419308881,0.44190850764,-0.174127262407 +-1.91018715528,0.477424392089,-0.161260512839 +-1.88513578537,0.512975510277,-0.148027727537 +-1.85905657041,0.54856021585,-0.134435439215 +-1.83196767695,0.584176777131,-0.120490409596 +-1.8038878163,0.619823373459,-0.106199620262 +-1.7748362135,0.655498091335,-0.0915702634334 +-1.74483257605,0.691198920353,-0.0766097327143 +-1.71389706223,0.72692374892,-0.0613256138613 +-1.68205024943,0.762670359722,-0.0457256756051 +[TJP-4_1_ci4-2-2-1] +-1.68205024943,0.762670359722,-0.0457256756051 +-1.65020343662,0.798416970524,-0.0301257373489 +-1.61744532483,0.834185363561,-0.0142099796895 +-1.58379649144,0.869973321519,0.00201382864235 +-1.54927793292,0.905778521366,0.0185377359413 +-1.5139110331,0.941598529825,0.0353536167037 +-1.47771753129,0.977430798608,0.0524531807432 +-1.44071949043,1.0132726594,0.0698279822037 +-1.40293926531,1.04912131856,0.0874694284218 +-1.364399471,1.08497385158,0.105368788597 +-1.3251229517,1.1208271972,0.123517202223 +-1.28513274994,1.15667815126,0.141905687243 +-1.24445207645,1.1925233602,0.160525147873 +-1.2031042807,1.22835931427,0.179366382072 +-1.1611128222,1.26418234037,0.198420088596 +-1.11850124274,1.29998859458,0.217676873624 +-1.07529313963,1.33577405428,0.237127256893 +-1.03151214006,1.37153451002,0.256761677327 +-0.987181876605,1.40726555692,0.276570498127 +-0.942325964065,1.44296258576,0.296544011277 +-0.896967977639,1.47862077374,0.316672441465 +-0.851131432519,1.51423507484,0.336945949378 +-0.804839764993,1.54980020986,0.357354634356 +-0.758116315089,1.58531065607,0.377888536394 +-0.710984310812,1.62076063657,0.398537637475 +-0.663466854024,1.65614410936,0.41929186223 +-0.615586907982,1.69145475602,0.440141077919 +-0.567367286563,1.72668597014,0.461075093728 +-0.51883064519,1.76183084557,0.482083659401 +-0.46999947345,1.79688216426,0.503156463201 +-0.420896089408,1.83183238408,0.52428312922 +-0.371542635599,1.86667362633,0.545453214059 +-0.321961076656,1.90139766313,0.566656202897 +-0.272173198562,1.93599590483,0.587881504978 +-0.222200609455,1.97045938715,0.609118448545 +-0.172064741953,2.00477875855,0.630356275264 +-0.121786856916,2.03894426743,0.651584134181 +-0.0713880485839,2.07294574964,0.672791075242 +-0.0208892510027,2.10677261594,0.693966042454 +0.029688754349,2.1404138399,0.715097866715 +0.0803253298338,2.17385794593,0.736175258389 +0.130999971933,2.2070929978,0.75718679969 +0.181692300643,2.24010658753,0.778120936929 +0.232382048106,2.27288582487,0.798965972711 +0.283049046607,2.3054173274,0.819710058151 +0.333673216061,2.33768721129,0.84034118518 +0.38423455113,2.36968108291,0.860847179034 +0.434713108109,2.40138403135,0.881215691004 +0.485088991727,2.43278062191,0.901434191537 +0.535342342003,2.46385489072,0.921489963762 +0.585453321316,2.49459034054,0.941370097558 +0.635402101822,2.52496993795,0.96106148423 +0.685168853397,2.55497611186,0.980550811893 +0.734733732219,2.5845907537,0.999824561667 +0.78407687018,2.61379521909,1.01886900476 +0.833178365237,2.64257033144,1.03767020053 +0.882018272884,2.67089638729,1.05621399565 +0.930576598854,2.6987531637,1.0744860244 +0.978833293215,2.72611992768,1.09247171024 +1.02676824598,2.75297544786,1.1101562687 +1.07436128437,2.77929800837,1.12752471171 +1.12159217182,2.80506542514,1.14456185337 +1.16844060888,2.83025506466,1.16125231736 +1.2148862361,2.85484386529,1.1775805459 +1.26090863902,2.87880836117,1.19353081041 +1.30648735522,2.90212470878,1.209087224 +1.35160188376,2.92476871633,1.22423375558 +1.39623169677,2.94671587577,1.23895424594 +1.44035625353,2.96794139777,1.25323242561 +1.48395501683,2.98842024938,1.26705193459 +1.52700747175,3.0081271946,1.28039634396 +1.56949314696,3.0270368377,1.29324917938 +1.61139163831,3.04512366936,1.30559394643 +1.65268263485,3.06236211549,1.31741415776 +1.69334594725,3.07872658877,1.32869336214 +1.73336153843,3.09419154273,1.33941517509 +1.77270955649,3.10873152831,1.34956331138 +1.81137036972,3.12232125277,1.35912161896 +1.84932460363,3.13493564083,1.36807411451 +1.88655317997,3.1465498978,1.37640502039 +1.92303735736,3.15713957459,1.38409880286 +1.95875877367,3.16668063439,1.39114021141 +1.9936994897,3.17514952072,1.39751431923 +2.02784203415,3.18252322662,1.40320656442 +2.06116944965,3.18877936485,1.40820279189 +2.09366533946,3.19389623852,1.41248929583 +2.12531391486,3.19785291217,1.41605286241 +2.15610004278,3.20062928274,1.41888081259 +2.18600929345,3.20220615017,1.42096104481 +2.21502798791,3.20256528728,1.42228207733 +2.24314324486,3.20168950858,1.42283308996 +2.27034302685,3.19956273756,1.422603965 +2.29661618527,3.19617007216,1.42158532706 +2.32195250393,3.19149784795,1.41976858158 +2.34634274098,3.1855336987,1.41714595181 +2.3697786688,3.17826661386,1.41371051388 +2.39225311149,3.16968699269,1.40945622988 +2.41375997992,3.15978669446,1.40437797854 +2.43429430367,3.14855908456,1.39847158346 +2.45385225999,3.13599907599,1.39173383843 +2.47243119914,3.12210316597,1.38416252981 +2.49002966618,3.10686946734,1.37575645572 +2.50664741874,3.09029773439,1.36651544173 +2.52228544068,3.07238938289,1.35644035305 +2.53694595141,3.05314750412,1.34553310294 +2.55063241073,3.03257687256,1.33379665723 +2.56334951901,3.01068394716,1.3212350349 +2.57510321262,2.98747686605,1.3078533045 +2.58590065455,2.96296543453,1.29365757648 +2.59575022017,2.93716110634,1.27865499134 +2.60466147806,2.91007695819,1.26285370355 +2.61264516598,2.88172765754,1.24626286131 +2.61971316208,2.85212942381,1.22889258222 +[TJP-4_1_ci4-2-2-2] +2.61971316208,2.85212942381,1.22889258222 +2.62678115818,2.82253119008,1.21152230314 +2.63293346245,2.79168402327,1.19337258722 +2.63818195305,2.7596041428,1.17445355205 +2.64253964848,2.72630932004,1.15477628465 +2.6460206788,2.69181883946,1.13435281704 +2.64864025196,2.65615345325,1.11319609785 +2.65041461543,2.61933532925,1.09131995971 +2.65136101312,2.58138799258,1.06873908277 +2.65149763779,2.54233626103,1.04546895428 +2.65084357911,2.50220617434,1.02152582441 +2.64941876744,2.46102491792,0.996926658583 +2.64724391386,2.41882074101,0.971689086386 +2.6443404463,2.37562286992,0.94583134735 +2.64073044256,2.33146141659,0.919372233894 +2.63643656007,2.28636728313,0.892331031665 +2.63148196319,2.24037206254,0.864727457629 +2.62589024815,2.19350793657,0.836581596238 +2.61968536621,2.14580757087,0.80791383403 +2.61289154539,2.09730400839,0.778744793068 +2.60553321142,2.04803056149,0.74909526359 +2.59763490806,1.99802070346,0.718986136306 +2.58922121771,1.94730796012,0.688438334747 +2.58031668247,1.89592580225,0.657472748105 +2.57094572626,1.84390753945,0.626110165001 +2.56113257868,1.79128621618,0.594371208594 +2.55090120075,1.73809451063,0.562276273472 +2.54027521342,1.68436463713,0.529845464724 +2.52927782896,1.63012825266,0.497098539608 +2.51793178595,1.57541636812,0.464054852178 +2.5062592881,1.52025926497,0.43073330123 +2.49428194738,1.46468641765,0.397152281903 +2.48202073181,1.40872642234,0.363329641224 +2.46949591817,1.35240693251,0.329282637859 +2.45672704988,1.29575460147,0.29502790629 +2.44373290038,1.23879503243,0.260581425609 +2.43053144201,1.18155273604,0.225958493052 +2.41713982061,1.1240510958,0.191173702384 +2.40357433587,1.06631234119,0.156240927157 +2.3898504274,1.00835752872,0.121173308856 +2.37598266645,0.950206530649,0.0859832498783 +2.36198475326,0.891878031342,0.0506824112398 +2.34786951976,0.833389530932,0.0152817148795 +2.33364893739,0.774757356074,-0.020208649639 +2.31933412995,0.71599667737,-0.0557792142491 +2.30493539094,0.657121533067,-0.091421217596 +2.29046220516,0.598144858517,-0.127126586645 +2.27592327419,0.539078520899,-0.162887915016 +2.26132654525,0.479933358613,-0.198698438394 +2.24667924308,0.420719224746,-0.234552007403 +2.23198790436,0.361445033999,-0.270443058323 +2.21725841416,0.302118812411,-0.306366582049 +2.202496044,0.242747749257,-0.342318091706 +2.18770549101,0.18333825048,-0.378293589305 +2.1728909178,0.123895993013,-0.414289531832 +2.15805599247,0.0644259794184,-0.450302797155 +2.14320392852,0.00493259224381,-0.486330650096 +2.12833752409,-0.0545803524144,-0.522370709002 +2.1134592003,-0.114109552642,-0.558420913126 +2.09857103832,-0.173652170164,-0.594479491081 +2.08367481484,-0.23320578191,-0.630544930611 +2.06877203586,-0.292768334014,-0.666615949885 +2.05386396842,-0.352338098506,-0.702691470463 +2.0389516702,-0.411913632908,-0.738770592085 +2.02403601696,-0.471493742866,-0.774852569346 +2.00911772764,-0.531077447903,-0.810936790322 +1.99419738715,-0.590663950326,-0.847022757168 +1.97927546686,-0.650252607257,-0.88311006866 +1.96435234292,-0.709842905719,-0.919198404643 +1.94942831234,-0.769434440659,-0.955287512322 +1.93450360705,-0.829026895767,-0.991377194285 +1.91957840605,-0.888620026918,-1.02746729817 +1.90465284579,-0.948213648022,-1.06355770784 +1.88972702892,-1.00780761909,-1.09964833593 +1.87480103158,-1.0674018363,-1.13573911763 +1.85987490939,-1.12699622376,-1.17183000559 +1.84494870238,-1.18659072691,-1.20792096575 +1.8300224388,-1.24618530719,-1.24401197405 +1.8150961383,-1.30577993785,-1.28010301379 +1.8001698142,-1.36537460067,-1.31619407361 +1.7852434754,-1.42496928355,-1.35228514594 +1.77031712767,-1.4845639786,-1.38837622587 +1.75539077468,-1.54415868084,-1.42446731028 +1.74046441868,-1.60375338718,-1.46055839725 +1.72553806101,-1.66334809578,-1.49664948564 +1.71061170247,-1.72294280558,-1.53274057478 +1.69568534348,-1.782537516,-1.5688316643 +1.68075898427,-1.84213222671,-1.604922754 +1.66583262496,-1.90172693755,-1.64101384378 +1.65090626561,-1.96132164845,-1.6771049336 +1.63597990625,-2.02091635938,-1.71319602344 +1.62105354687,-2.08051107031,-1.74928711328 +1.6061271875,-2.14010578125,-1.78537820313 +1.59120082812,-2.19970049219,-1.82146929297 +1.57627446875,-2.25929520313,-1.85756038281 +1.56134810937,-2.31888991406,-1.89365147266 +1.54642175,-2.378484625,-1.9297425625 +1.53149539063,-2.43807933594,-1.96583365234 +1.51656903125,-2.49767404687,-2.00192474219 +1.50164267188,-2.55726875781,-2.03801583203 +1.4867163125,-2.61686346875,-2.07410692187 +1.47178995313,-2.67645817969,-2.11019801172 +1.45686359375,-2.73605289063,-2.14628910156 +1.44193723438,-2.79564760156,-2.18238019141 +1.427010875,-2.8552423125,-2.21847128125 +1.41208451563,-2.91483702344,-2.25456237109 +1.39715815625,-2.97443173438,-2.29065346094 +1.38223179688,-3.03402644531,-2.32674455078 +1.3673054375,-3.09362115625,-2.36283564062 +1.35237907813,-3.15321586719,-2.39892673047 +1.33745271875,-3.21281057813,-2.43501782031 +1.32252635938,-3.27240528906,-2.47110891016 +1.3076,-3.332,-2.5072 diff --git a/user_interface/curve_parser.py b/user_interface/curve_parser.py index 29f1311..84e1957 100644 --- a/user_interface/curve_parser.py +++ b/user_interface/curve_parser.py @@ -4,6 +4,7 @@ """ from data_objects.point import Point from data_objects.stick_knot import StickKnot +from data_objects.monotonically_formatted_curve import MonotonicallyFormattedCurve from logger import get_logger @@ -40,3 +41,56 @@ def parse_curve_file(filename="test.curve"): # stick_knot_points.remove(stick_knot_points[-1]) return StickKnot(stick_knot_points) + + +def parse_subdivided_curve_file(filename="test.curve"): + """ + Parse the file located at filename into various sub-divided curves + :param filename: + :return: + """ + logger = get_logger(parse_subdivided_curve_file.__name__) + + curve_file = open(filename, "r") + stick_knot_points = list() + monotonic_curve_name = "" + monotonic_curves = list() + + for line in curve_file: + line = ''.join(line.split()) # PDZ- Remove all whitespace in the row + + if line.startswith("%") or line == "": + continue + + if line.startswith("["): # PDZ- the start of a new curve which is formatted simply for checking its monotonicity + if len(stick_knot_points) > 0: # PDZ- check to see if just finished parsing a curve- if so, save it to the list + monotonic_curves.append(MonotonicallyFormattedCurve(monotonic_curve_name, StickKnot(stick_knot_points))) + stick_knot_points = list() + + monotonic_curve_name = line + continue + + comment_split_line = line.split("%") + point_values = comment_split_line[0] + comma_split_point_values = point_values.split(",") + logger.debug(comma_split_point_values) + + if len(comma_split_point_values) != 3: + raise Exception("The curve file is not formatted properly") + else: + x_val = float(comma_split_point_values[0]) + y_val = float(comma_split_point_values[1]) + z_val = float(comma_split_point_values[2]) + stick_knot_points.append(Point(x_val, y_val, z_val)) + + if len(stick_knot_points) > 0: # PDZ- check to see if just finished parsing a curve- if so, save it to the list + monotonic_curves.append(MonotonicallyFormattedCurve(monotonic_curve_name, StickKnot(stick_knot_points))) + """ + PDZ- TODO: right now the generator can't exactly handle if there are two duplicate points in the curve. It will + die when it tries to compute the closest point. Temporary solution for now is to remove the last point if it is + the same as the first + """ + # if stick_knot_points[0] == stick_knot_points[-1]: + # stick_knot_points.remove(stick_knot_points[-1]) + + return monotonic_curves