mklines: rewrite main to use new classes
Test with python mklines.py polar_cords.csv Shows correct conversion from polar to cart with new classes Signed-off-by: HeshamTB <hishaminv@gmail.com>
This commit is contained in:
		
							parent
							
								
									d0a2cbb0db
								
							
						
					
					
						commit
						1474e7e03a
					
				
							
								
								
									
										36
									
								
								mklines.py
									
									
									
									
									
								
							
							
						
						
									
										36
									
								
								mklines.py
									
									
									
									
									
								
							@ -6,7 +6,7 @@ import csv
 | 
			
		||||
import sys
 | 
			
		||||
import math
 | 
			
		||||
from os.path import exists as file_exists
 | 
			
		||||
from basictypes import PointWithID, Line
 | 
			
		||||
from basictypes import PointWithID, Line, point_from_polar
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def main():
 | 
			
		||||
@ -15,41 +15,29 @@ def main():
 | 
			
		||||
    if not file_exists(filename):
 | 
			
		||||
        perr('File does not exist')
 | 
			
		||||
        return -1
 | 
			
		||||
    samples_polar = read_csv(filename, remove_header=True)
 | 
			
		||||
    if not valid_data(samples_polar): # Assumes header is removed
 | 
			
		||||
    points = read_csv(filename, remove_header=True)
 | 
			
		||||
    if not valid_data(points): # Assumes header is removed
 | 
			
		||||
        perr('Invalid or corrupt samples')
 | 
			
		||||
        return -1
 | 
			
		||||
    x = polarlist_to_cart(samples_polar)
 | 
			
		||||
    for val in points: print(val.get_cartesian())
 | 
			
		||||
    return 0
 | 
			
		||||
 | 
			
		||||
def read_csv(filename: str, remove_header=False) -> list:
 | 
			
		||||
    tmp_data = list()
 | 
			
		||||
def read_csv(filename: str, remove_header=False) -> list[PointWithID]:
 | 
			
		||||
    tmp_data = list() # New list of points (PointWithID)
 | 
			
		||||
    with open(filename, 'r') as csv_file:
 | 
			
		||||
        reader = csv.reader(csv_file)
 | 
			
		||||
        for i, row in enumerate(reader):
 | 
			
		||||
            new_row = list()
 | 
			
		||||
            if remove_header and i == 0: continue
 | 
			
		||||
            for i, val in enumerate(row):
 | 
			
		||||
                if i == 0: new_row.append(val) # Append wall_id as is
 | 
			
		||||
                else: new_row.append(float(val))
 | 
			
		||||
            tmp_data.append(new_row)
 | 
			
		||||
            if remove_header and i == 0: continue # Skip header
 | 
			
		||||
            # Assumes wall_id,r,theta
 | 
			
		||||
            point_tmp = point_from_polar(float(row[1]), float(row[2]), row[0])
 | 
			
		||||
            tmp_data.append(point_tmp)
 | 
			
		||||
 | 
			
		||||
    return tmp_data
 | 
			
		||||
 | 
			
		||||
def valid_data(samples:list) -> bool:
 | 
			
		||||
    # Check if we have even number of samples
 | 
			
		||||
    return len(samples) % 2 == 0
 | 
			
		||||
 | 
			
		||||
def polarlist_to_cart(polar_points: list):
 | 
			
		||||
    cart_tmp = list()
 | 
			
		||||
    for i, polar_point in enumerate(polar_points, 1):
 | 
			
		||||
        if i % 2 == 0: continue
 | 
			
		||||
        # We can safely use i - 1 here
 | 
			
		||||
        p1 = polar_points[i-1]
 | 
			
		||||
        p2 = polar_points[i]
 | 
			
		||||
        print(p1, p2)
 | 
			
		||||
        p1 = polar_to_cart(p1[0],p1[1])
 | 
			
		||||
        p2 = polar_to_cart(p2[0],p2[1])
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def get_filename() -> str:
 | 
			
		||||
    try:
 | 
			
		||||
@ -60,7 +48,7 @@ def get_filename() -> str:
 | 
			
		||||
        return -1
 | 
			
		||||
 | 
			
		||||
def perr(*args):
 | 
			
		||||
    print(args, file=sys.stderr)
 | 
			
		||||
    print(*args, file=sys.stderr)
 | 
			
		||||
 | 
			
		||||
if __name__ == '__main__':
 | 
			
		||||
    exit(main())
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user