################################
# Initialize Points for the knot

point p_1 (0.2 0.0 {expr $param(zScale)}) endpoint
point p_2 (0.5 0.0 0.0) endpoint
point p_3 (0.3 0.5 0.0) endpoint
point p_4 (0.0 0.2 {expr -$param(zScale)}) endpoint
point p_5 (-0.2 0.0 {expr $param(zScale)}) endpoint
point p_6 (-0.5 -0.3 0.0) endpoint
point p_7 (0.5 -0.3 0.0) endpoint
point p_8 (0.2 0.0 {expr -$param(zScale)}) endpoint
point p_9 (0.0 0.2 {expr $param(zScale)}) endpoint
point p_10 (-0.3 0.5 0.0) endpoint
point p_11 (-0.5 0.0 0.0) endpoint
point p_12 (-0.2 0.0 {expr -$param(zScale)}) endpoint
point p_13 (0.1 0.1 0.0) endpoint
point p_14 (0.15 0.35 0.0) endpoint
point p_15 (-0.15 0.35 0.0) endpoint
point p_16 (-0.1 0.1 0.0) endpoint
point p_17 (-0.35 0.0 0.0) endpoint
point p_18 (-0.35 -0.15 0.0) endpoint
point p_19 (0.0 0.0 0.0) endpoint
point p_20 (0.35 -0.15 0.0) endpoint
point p_21 (0.35 0.0 0.0) endpoint

#################################
## DEFINE SWEEP PATH

polyline backbone
  pointlist (p_1 p_2 p_3 p_4 p_5 p_6 p_7 p_8 p_9 p_10 p_11 p_12 p_1) 
endpolyline

(*
bsplinecurve backbone
  order 4
  controlpointlist (p_12 p_1 p_2 p_3 p_4 p_5 p_6 p_7 p_8 p_9 p_10 p_11 p_12 p_1 p_2) 
  drawcontrols {expr $param(drawControls)}
  slices 90
endbsplinecurve
*)

##################################################
## DEFINE SURFACE MESH: 

#vertices are CCW for each mesh
face q1 (p_21 p_2 p_3 p_14 p_13) endface
face q2 (p_13 p_14 p_4) endface
face q3 (p_13 p_4 p_9) endface
face q4 (p_4 p_15 p_9) endface
face q5 (p_16 p_15 p_14) endface
face q6 (p_11 p_10 p_15 p_16 p_17) endface
face q7 (p_12 p_17 p_16) endface
face q8 (p_12 p_16 p_5) endface
face q9 (p_18 p_12 p_5) endface
face q10 (p_18 p_19 p_12) endface
face q11 (p_6 p_7 p_20 p_19 p_18) endface
face q12 (p_20 p_8 p_19) endface
face q13 (p_20 p_1 p_8) endface
face q14 (p_13 p_8 p_1) endface
face q15 (p_8 p_13 p_21) endface

object OddWindingCCW (q1 q2 q3 q4 q5 q6 q7 q8 q9 q10 q11 q12 q13 q14 q15)
  solid SLF_HOLLOW
  shading SLF_FLAT
endobject

(*
#vertices are CW for each mesh
face q21 (p_13 p_14 p_3 p_2 p_21) endface
face q22 (p_4 p_14 p_13) endface
face q23 (p_9 p_4 p_13) endface
face q24 (p_9 p_15 p_4) endface
face q25 (p_14 p_15 p_16) endface
face q26 (p_17 p_16 p_15 p_10 p_11) endface
face q27 (p_16 p_17 p_12) endface
face q28 (p_5 p_16 p_12) endface
face q29 (p_5 p_12 p_18) endface
face q30 (p_12 p_19 p_18) endface
face q31 (p_18 p_19 p_20 p_7 p_6) endface
face q32 (p_19 p_8 p_20) endface
face q33 (p_8 p_1 p_20) endface
face q34 (p_1 p_8 p_13) endface
face q35 (p_21 p_13 p_8) endface

object OddWindingCW (q21 q22 q23 q24 q25 q26 q27 q28 q29 q30 q31 q32 q33 q34 q35)
  solid SLF_HOLLOW
  shading SLF_FLAT
endobject
*)