#NEWLINE# @ classmethod #NEWLINE# def _make_specification( cls ) : #NEWLINE# #INDENT# 'Return a dict that describes this supershape.' #NEWLINE# side = 1.0 #NEWLINE# w = ( ( 0.5 * right_rail ) * ( 3 ** 0.5 ) ) #NEWLINE# left_rail = ( - w ) #NEWLINE# h_mid_rail = 0.0 #NEWLINE# right_rail = w #NEWLINE# top_rail = ( - side ) #NEWLINE# midtop_rail = ( ( - 0.5 ) * side ) #NEWLINE# v_mid_rail = 0.0 #NEWLINE# midbottom_rail = ( 0.5 * side ) #NEWLINE# bottom_rail = side #NEWLINE# top_pt = ( top_rail , h_mid_rail ) #NEWLINE# top_right_pt = ( midtop_rail , right_rail ) #NEWLINE# bottom_right_pt = ( midbottom_rail , right_rail ) #NEWLINE# bottom_pt = ( bottom_rail , h_mid_rail ) #NEWLINE# bottom_left_pt = ( midbottom_rail , left_rail ) #NEWLINE# top_left_pt = ( midtop_rail , left_rail ) #NEWLINE# center_pt = ( v_mid_rail , h_mid_rail ) #NEWLINE# c = { #NEWLINE# #INDENT# ( 0 , 0 ) : { #NEWLINE# #INDENT# 'name' : 'left' , #NEWLINE# 'clockwise_edge_names' : ( 'left' , 'top' , 'right' , 'bottom' ) , #NEWLINE# 'edges' : { #NEWLINE# #INDENT# ( 0 , ( - 1 ) ) : { #NEWLINE# #INDENT# 'name' : 'left' , #NEWLINE# 'counter_vertex' : bottom_left_pt , #NEWLINE# #UNINDENT# } , #NEWLINE# ( ( - 1 ) , 1 ) : { #NEWLINE# #INDENT# 'name' : 'top' , #NEWLINE# 'counter_vertex' : top_left_pt , #NEWLINE# #UNINDENT# } , #NEWLINE# ( 0 , 2 ) : { #NEWLINE# #INDENT# 'name' : 'right' , #NEWLINE# 'counter_vertex' : top_pt , #NEWLINE# #UNINDENT# } , #NEWLINE# ( 0 , 1 ) : { #NEWLINE# #INDENT# 'name' : 'bottom' , #NEWLINE# 'counter_vertex' : center_pt , #NEWLINE# #UNINDENT# } , #NEWLINE# #UNINDENT# } , #NEWLINE# #UNINDENT# } , #NEWLINE# ( 0 , 2 ) : { #NEWLINE# #INDENT# 'name' : 'right' , #NEWLINE# 'clockwise_edge_names' : ( 'left' , 'top' , 'right' , 'bottom' ) , #NEWLINE# 'edges' : { #NEWLINE# #INDENT# ( 0 , 0 ) : { #NEWLINE# #INDENT# 'name' : 'left' , #NEWLINE# 'counter_vertex' : center_pt , #NEWLINE# #UNINDENT# } , #NEWLINE# ( ( - 1 ) , 4 ) : { #NEWLINE# #INDENT# 'name' : 'top' , #NEWLINE# 'counter_vertex' : top_pt , #NEWLINE# #UNINDENT# } , #NEWLINE# ( 0 , 3 ) : { #NEWLINE# #INDENT# 'name' : 'right' , #NEWLINE# 'counter_vertex' : top_right_pt , #NEWLINE# #UNINDENT# } , #NEWLINE# ( 0 , 1 ) : { #NEWLINE# #INDENT# 'name' : 'bottom' , #NEWLINE# 'counter_vertex' : bottom_right_pt , #NEWLINE# #UNINDENT# } , #NEWLINE# #UNINDENT# } , #NEWLINE# #UNINDENT# } , #NEWLINE# ( 0 , 1 ) : { #NEWLINE# #INDENT# 'name' : 'bottom' , #NEWLINE# 'clockwise_edge_names' : ( 'top_left' , 'top_right' , 'bottom_right' , 'bottom_left' ) , #NEWLINE# 'edges' : { #NEWLINE# #INDENT# ( 0 , 0 ) : { #NEWLINE# #INDENT# 'name' : 'top_left' , #NEWLINE# 'counter_vertex' : bottom_left_pt , #NEWLINE# #UNINDENT# } , #NEWLINE# ( 0 , 2 ) : { #NEWLINE# #INDENT# 'name' : 'top_right' , #NEWLINE# 'counter_vertex' : center_pt , #NEWLINE# #UNINDENT# } , #NEWLINE# ( 1 , 0 ) : { #NEWLINE# #INDENT# 'name' : 'bottom_right' , #NEWLINE# 'counter_vertex' : bottom_right_pt , #NEWLINE# #UNINDENT# } , #NEWLINE# ( 1 , ( - 1 ) ) : { #NEWLINE# #INDENT# 'name' : 'bottom_left' , #NEWLINE# 'counter_vertex' : bottom_pt , #NEWLINE# #UNINDENT# } , #NEWLINE# #UNINDENT# } , #NEWLINE# #UNINDENT# } , #NEWLINE# #UNINDENT# } #NEWLINE# d = { #NEWLINE# #INDENT# 'name' : 'Qube' , #NEWLINE# 'reference_length' : side , #NEWLINE# 'graph_offset_per_row' : ( ( bottom_rail + midbottom_rail ) , right_rail ) , #NEWLINE# 'graph_offset_per_col' : ( 0 , ( float ( ( 2 * right_rail ) ) / 3 ) ) , #NEWLINE# 'components' : c , #NEWLINE# #UNINDENT# } #NEWLINE# return d