// // time: Mon Jan 10 11:43:28 1994 // // version: 2.0.1 // // Begin MDF // MODULE CubicSpline // CATEGORY Splines // DESCRIPTION Generic Cubic Spline Worker // INPUT t; value list or field; (none); // INPUT M; value list or field; (none); basis matrix // INPUT G; value list or field; (none); geometry vector // OUTPUT out; value or value list or field; spline points // End MDF // workspace: width = 1416, height = 1180 // layout: snap = 0, width = 50, height = 50, align = CC // macro CubicSpline( t ,M ,G ) -> ( out ) { // // node Input[1]: x = 152, y = 314, inputs = 0, label = Input // // parameter: position = 1, name = 't', value = ' ', descriptive = 0, description = ' ', required = 1 CubicSpline_Input_1_out_1 = t; // // node Input[2]: x = 245, y = 22, inputs = 0, label = Input // // parameter: position = 2, name = 'M', value = ' ', descriptive = 0, description = 'basis matrix', required = 1 CubicSpline_Input_2_out_1 = M; // // node Input[3]: x = 439, y = 255, inputs = 0, label = Input // // parameter: position = 3, name = 'G', value = ' ', descriptive = 0, description = 'geometry vector', required = 1 CubicSpline_Input_3_out_1 = G; // // node Compute[1]: x = 97, y = 145, inputs = 2, label = Compute // input[1]: defaulting = 0, visible = 0, type = 32, value = "$0.0" // // expression: value = a.0 // name[2]: value = a CubicSpline_Compute_1_out_1 = Compute( CubicSpline_Compute_1_in_1, CubicSpline_Input_2_out_1 ) [instance: 1, cache: 1]; // // node Compute[2]: x = 191, y = 149, inputs = 2, label = Compute // input[1]: defaulting = 0, visible = 0, type = 32, value = "$0.1" // // expression: value = a.1 // name[2]: value = a CubicSpline_Compute_2_out_1 = Compute( CubicSpline_Compute_2_in_1, CubicSpline_Input_2_out_1 ) [instance: 2, cache: 1]; // // node Compute[3]: x = 291, y = 145, inputs = 2, label = a.2Compute // input[1]: defaulting = 0, visible = 0, type = 32, value = "$0.2" // // expression: value = a.2 // name[2]: value = a CubicSpline_Compute_3_out_1 = Compute( CubicSpline_Compute_3_in_1, CubicSpline_Input_2_out_1 ) [instance: 3, cache: 1]; // // node Compute[4]: x = 382, y = 142, inputs = 2, label = Compute // input[1]: defaulting = 0, visible = 0, type = 32, value = "$0.3" // // expression: value = a.3 // name[2]: value = a CubicSpline_Compute_4_out_1 = Compute( CubicSpline_Compute_4_in_1, CubicSpline_Input_2_out_1 ) [instance: 4, cache: 1]; // // node Compute[5]: x = 231, y = 272, inputs = 6, label = Compute // input[1]: defaulting = 0, visible = 0, type = 32, value = "[$0.0*$4.0 + $0.1*$4.1 + $0.2*$4.2 + $0.3*$4.3, $1.0*$4.0 + $1.1*$4.1 + $1.2*$4.2 + $1.3*$4.3, $2.0*$4.0 + $2.1*$4.1 + $2.2*$4.2 + $2.3*$4.3, $3.0*$4.0 + $3.1*$4.1 + $3.2*$4.2 + $3.3*$4.3]" // // expression: value = [M0.0*G.0 + M0.1*G.1 + M0.2*G.2 + M0.3*G.3, M1.0*G.0 + M1.1*G.1 + M1.2*G.2 + M1.3*G.3, M2.0*G.0 + M2.1*G.1 + M2.2*G.2 + M2.3*G.3, M3.0*G.0 + M3.1*G.1 + M3.2*G.2 + M3.3*G.3] // name[2]: value = M0 // name[3]: value = M1 // name[4]: value = M2 // name[5]: value = M3 // name[6]: value = G CubicSpline_Compute_5_out_1 = Compute( CubicSpline_Compute_5_in_1, CubicSpline_Compute_1_out_1, CubicSpline_Compute_2_out_1, CubicSpline_Compute_3_out_1, CubicSpline_Compute_4_out_1, CubicSpline_Input_3_out_1 ) [instance: 5, cache: 1]; // // node Compute[6]: x = 250, y = 365, inputs = 3, label = Compute // input[1]: defaulting = 0, visible = 0, type = 32, value = "$0*$0*$0*$1.0 + $0*$0*$1.1 + $0*$1.2 + $1.3" // // expression: value = t*t*t*MG.0 + t*t*MG.1 + t*MG.2 + MG.3 // name[2]: value = t // name[3]: value = MG CubicSpline_Compute_6_out_1 = Compute( CubicSpline_Compute_6_in_1, CubicSpline_Input_1_out_1, CubicSpline_Compute_5_out_1 ) [instance: 6, cache: 1]; // // node Output[1]: x = 258, y = 460, inputs = 1, label = Output // // parameter: position = 1, name = 'out', value = ' ', descriptive = 0, description = 'spline points', required = 0 out = CubicSpline_Compute_6_out_1; // network: end of macro body } CubicSpline_Input_1_out_1 = NULL; CubicSpline_Input_2_out_1 = NULL; CubicSpline_Input_3_out_1 = NULL; CubicSpline_Compute_1_in_1 = "$0.0"; CubicSpline_Compute_1_out_1 = NULL; CubicSpline_Compute_2_in_1 = "$0.1"; CubicSpline_Compute_2_out_1 = NULL; CubicSpline_Compute_3_in_1 = "$0.2"; CubicSpline_Compute_3_out_1 = NULL; CubicSpline_Compute_4_in_1 = "$0.3"; CubicSpline_Compute_4_out_1 = NULL; CubicSpline_Compute_5_in_1 = "[$0.0*$4.0 + $0.1*$4.1 + $0.2*$4.2 + $0.3*$4.3, $1.0*$4.0 + $1.1*$4.1 + $1.2*$4.2 + $1.3*$4.3, $2.0*$4.0 + $2.1*$4.1 + $2.2*$4.2 + $2.3*$4.3, $3.0*$4.0 + $3.1*$4.1 + $3.2*$4.2 + $3.3*$4.3]"; CubicSpline_Compute_5_out_1 = NULL; CubicSpline_Compute_6_in_1 = "$0*$0*$0*$1.0 + $0*$0*$1.1 + $0*$1.2 + $1.3"; CubicSpline_Compute_6_out_1 = NULL;