########################################################################################## ## ## ## Tie Fighter Model ## ## Copyright 1996 Brandon Checketts ## ## ## ## created using University of Utah's Alpha_1 software ## ########################################################################################## { rightPoleAddition = TruncRightCone(pt(7, 0, 0), Vec(12,0), 6, 3); leftPoleAddition = TruncRightCone(pt(-7, 0, 0), Vec(-12,0), 6, 3); rightPoleAddition2 = TruncRightCone(pt(25, 0, 0), Vec(4, 0), 3, 7); leftPoleAddition2 = TruncRightCone(pt(-25, 0, 0), Vec(-4,0), 3, 7); leftWing = ExtrudeDir(RoundPolyline(Polyline(Array(Pt(-30, 30, -15), Pt(-30, 30, 15), Pt(-30, 0, 30), Pt(-30, -30, 15), Pt(-30, -30, -15), Pt(-30, 0, -30), Pt(-30, 30, -15))), 0), Vec(-1, 0, 0), true); rightWing = ExtrudeDir(RoundPolyline(Polyline(Array(Pt(30, 30, -15), Pt(30, 30, 15), Pt(30, 0, 30), Pt(30, -30, 15), Pt(30, -30, -15), Pt(30, 0, -30), Pt(30, 30, -15))), 0), Vec(1, 0, 0), true); middleSphere = Sphere(Pt(0, 0, 0), 9.1); tube = RightCirCylinder(Pt(-30, 0, 0), Vec(60, 0), 3); extrusionRing = ExtrudeDir(ObjTransform(CircleCtrRad(Pt(0, 0, 0), 6), Rx(90)), Vec(0, 7.6, 0), true); rightgun = ExtrudeDir(CircleCtrRad(Pt(5, -5, 4), 1), Vec(0, 0, 5), true); leftgun = ExtrudeDir(CircleCtrRad(Pt(-5, -5, 4), 1), Vec(0, 0, 5), true); rightEndCap = TruncRightCone(Pt(32, 0, 0), Vec(2, 0, 0), 7, 3); leftEndCap = TruncRightCone(Pt(-32, 0, 0), Vec(-2, 0, 0), 7, 3); rightEndCap2 = TruncRightCone(Pt(34, 0, 0), Vec(0.5, 0, 0), 1, 1); leftEndCap2 = TruncRightCone(Pt(-34, 0, 0), Vec(-0.5, 0, 0), 1, 1); rightThing1 = Extrudedir(RoundPolyline(Polyline(Array(Pt(17, 5, 2), Pt(17, -5, 2), Pt(5, -5, 2), Pt(5, 5, 2), Pt(17, 5, 2))), 0), Vec(0, 0, -4), true); leftThing1 = ExtrudeDir(Roundpolyline(Polyline(Array(Pt(-17, 5, 2), Pt(-17, -5, 2), Pt(-5, -5, 2), Pt(-5, 5, 2), Pt(-17, 5, 2))), 0), Vec(0, 0, -4), true); window = GeneralSweep(RaiseCrvOrder(Profile(pt(0, 0, -0.5), pt(0, 0, 0.1)), linear), {CircleCtrRad(pt(0, 0, 10.5), 5.3), RoundPolyline(Polyline(Array( Pt(1.5, -0.75, 10), Pt(1.5, 0.75, 10), Pt(0.75, 1.5, 10), Pt(-0.75, 1.5, 10), Pt(-1.5, 0.75, 10), Pt(-1.5, -0.75, 10), Pt(-0.75, -1.5, 10), Pt(0.75, -1.5, 10), Pt(1.5, -0.75, 10))), 0)}, 0, "arc_length_blend", UniOpCrv(linear, {Pt(0.45, 0.85), Pt(0, 1)}), true); ##################################################################################### ## These poles hide parts of the solar panels to look like they are real ##################################################################################### rightPole1 = ExtrudeDir(RoundPolyline(Polyline(Array(Pt(29, 30.5, -15), Pt(29, 30.5, 15), Pt(29, 28.5, 15), Pt(29, 28.5, -15), Pt(29, 30.5, -15))), 0), Vec(3, 0, 0), true); rightPole2 = ExtrudeDir(RoundPolyline(Polyline(Array(Pt(29, 30.5, 15), Pt(29, 0, 30.5), Pt(29, 0, 28.5), Pt(29, 28.5, 15), Pt(29, 30.5, 15))), 0), Vec(3, 0, 0), true); rightPole3 = ExtrudeDir(RoundPolyline(Polyline(Array(Pt(29, -30.5, 15), Pt(29, 0, 30.5), Pt(29, 0, 28.5), Pt(29, -28.5, 15), Pt(29, -30.5, 15))), 0), Vec(3, 0, 0), true); rightPole4 = ExtrudeDir(RoundPolyline(Polyline(Array(Pt(29, -30.5, -15), Pt(29, -30.5, 15), Pt(29, -28.5, 15), Pt(29, -28.5, -15), Pt(29, -30.5, -15))), 0), Vec(3, 0, 0), true); rightPole5 = ExtrudeDir(RoundPolyline(Polyline(Array(Pt(29, -30.5, -15), Pt(29, 0, -30.5), Pt(29, 0, -28.5), Pt(29, -28.5, -15), Pt(29, -30.5, -15))), 0), Vec(3, 0, 0), true); rightPole6 = ExtrudeDir(RoundPolyline(Polyline(Array(Pt(29, 30.5, -15), Pt(29, 0, -30.5), Pt(29, 0, -28.5), Pt(29, 28.5, -15), Pt(29, 30.5, -15))), 0), Vec(3, 0, 0), true); rightPole7 = ExtrudeDir(RoundPolyline(Polyline(Array(Pt(29, 29, 13.5), Pt(29, 28, 15), Pt(29, 0, 1), Pt(29, 1, 0), Pt(29, 29, 13.5))), 0), Vec(3, 0, 0), true); rightPole8 = ExtrudeDir(roundPolyline(Polyline(Array(Pt(29, -1, 1), Pt(29, 1, -1), Pt(29, 1, 29), Pt(29, -1, 29), Pt(29, -1, 1))), 0), vec(3, 0, 0), true); rightPole9 = ExtrudeDir(RoundPolyline(Polyline(Array(Pt(29, -29, 13.5), Pt(29, -28, 15), Pt(29, 0, 1), Pt(29, -1, 0), Pt(29, -29, 13.5))), 0), Vec(3, 0, 0), true); rightPole10 = ExtrudeDir(RoundPolyline(Polyline(Array(Pt(29, -29, -13.5), Pt(29, -28, -15), Pt(29, 0, -1), Pt(29, -1, 0), Pt(29, -29, -13.5))), 0), Vec(3, 0, 0), true); rightPole11 = ExtrudeDir(RoundPolyline(Polyline(Array(Pt(29, -1, -1), Pt(29, 1, 1), Pt(29, 1, -29), Pt(29, -1, -29), Pt(29, -1, -1))), 0), Vec(3, 0, 0), true); rightPole12 = ExtrudeDir(RoundPolyline(Polyline(Array(Pt(29, 29, -13.5), Pt(29, 28, -15), Pt(29, 0, -1), Pt(29, 1, 0), Pt(29, 29, -13.5))), 0), Vec(3, 0, 0), true); leftPole1 = ExtrudeDir(RoundPolyline(Polyline(Array(Pt(-29, 30.5, -15), Pt(-29, 30.5, 15), Pt(-29, 28.5, 15), Pt(-29, 28.5, -15), Pt(-29, 30.5, -15))), 0), Vec(-3, 0, 0), true); leftPole2 = ExtrudeDir(RoundPolyline(Polyline(Array(Pt(-29, 30.5, 15), Pt(-29, 0, 30.5), Pt(-29, 0, 28.5), Pt(-29, 28.5, 15), Pt(-29, 30.5, 15))), 0), Vec(-3, 0, 0), true); leftPole3 = ExtrudeDir(RoundPolyline(Polyline(Array(Pt(-29, -30.5, 15), Pt(-29, 0, 30.5), Pt(-29, 0, 28.5), Pt(-29, -28.5, 15), Pt(-29, -30.5, 15))), 0), Vec(-3, 0, 0), true); leftPole4 = ExtrudeDir(RoundPolyline(Polyline(Array(Pt(-29, -30.5, -15), Pt(-29, -30.5, 15), Pt(-29, -28.5, 15), Pt(-29, -28.5, -15), Pt(-29, -30.5, -15))), 0), Vec(-3, 0, 0), true); leftPole5 = ExtrudeDir(RoundPolyline(Polyline(Array(Pt(-29, -30.5, -15), Pt(-29, 0, -30.5), Pt(-29, 0, -28.5), Pt(-29, -28.5, -15), Pt(-29, -30.5, -15))), 0), Vec(-3, 0, 0), true); leftPole6 = ExtrudeDir(RoundPolyline(Polyline(Array(Pt(-29, 30.5, -15), Pt(-29, 0, -30.5), Pt(-29, 0, -28.5), Pt(-29, 28.5, -15), Pt(-29, 30.5, -15))), 0), Vec(-3, 0, 0), true); leftPole7 = ExtrudeDir(RoundPolyline(Polyline(Array(Pt(-29, 29, 13.5), Pt(-29, 28, 15), Pt(-29, 0, 1), Pt(-29, 1, 0), Pt(-29, 29, 13.5))), 0), Vec(-3, 0, 0), true); leftPole8 = ExtrudeDir(RoundPolyline(Polyline(Array(Pt(-29, -1, 1), Pt(-29, 1, -1), Pt(-29, 1, 29), Pt(-29, -1, 29), Pt(-29, -1, 1))), 0), Vec(-3, 0, 0), true); leftPole9 = ExtrudeDir(RoundPolyline(Polyline(Array(Pt(-29, -29, 13.5), Pt(-29, -28, 15), Pt(-29, 0, 1), Pt(-29, -1, 0), Pt(-29, -29, 13.5))), 0), Vec(-3, 0, 0), true); leftPole10 = ExtrudeDir(RoundPolyline(Polyline(Array(Pt(-29, -29, -13.5), Pt(-29, -28, -15), Pt(-29, 0, -1), Pt(-29, -1, 0), Pt(-29, -29, -13.5))), 0), Vec(-3, 0, 0), true); leftPole11 = ExtrudeDir(RoundPolyline(Polyline(Array(Pt(-29, -1, -1), Pt(-29, 1, 1), Pt(-29, 1, -29), Pt(-29, -1, -29), Pt(-29, -1, -1))), 0), Vec(-3, 0, 0), true); leftPole12 = ExtrudeDir(RoundPolyline(Polyline(Array(Pt(-29, 29, -13.5), Pt(-29, 28, -15), Pt(-29, 0, -1), Pt(-29, 1, 0), Pt(-29, 29, -13.5))), 0), Vec(-3, 0, 0), true); } { #################################################################################### ## ## Colors, and other Stuff................. ##################################################################################### SetColor(middleSphere, "Aluminum"); SetColor(tube, "Aluminum"); SetColor(rightPoleAddition, "Aluminum"); SetColor(leftPoleAddition, "Aluminum"); SetColor(rightPoleAddition2, "Aluminum"); SetColor(leftPoleAddition2, "Aluminum"); SetColor(window, "Black"); SetColor(rightEndCap, "Aluminum"); SetColor(leftEndCap, "Aluminum"); SetColor(rightEndCap2, "Aluminum"); SetColor(leftEndCap2, "Aluminum"); SetColor(leftWing, color(50, 50, 50)); SetColor(rightWing, color(50, 50, 50)); SetColor(rightGun, "Aluminum"); SetColor(leftGun, "Aluminum"); SetColor(rightThing1, "Aluminum"); SetColor(leftThing1, "Aluminum"); SetSQ(rightThing1, "Aluminum"); SetSQ(leftThing1, "Aluminum"); SetSQ(rightGun, "Dull"); SetSQ(leftGun, "Dull"); SetSQ(tube, "Dull"); SetSQ(leftWing, "BrassSurface"); SetSQ(rightWing, "BrassSurface"); SetTexture(rightWing, "herringbone.rle"); SetTexture(leftWing, "herringbone.rle"); SetSQ(rightPoleAddition, "Dull"); SetSQ(leftPoleAddition, "Dull"); SetSQ(rightPoleAddition2, "Dull"); SetSQ(leftPoleAddition2, "Dull"); SetSQ(rightEndCap, "Dull"); SetSQ(leftEndCap, "Dull"); SetSQ(rightEndCap2, "Dull"); SetSQ(leftEndCap2, "Dull"); SetSQ(window, "Shiny"); SetColor(rightPole1, "Aluminum"); SetColor(rightPole2, "Aluminum"); SetColor(rightPole3, "Aluminum"); SetColor(rightPole4, "Aluminum"); SetColor(rightPole5, "Aluminum"); SetColor(rightPole6, "Aluminum"); SetColor(rightPole7, "Aluminum"); SetColor(rightPole8, "Aluminum"); SetColor(rightPole9, "Aluminum"); SetColor(rightPole10, "Aluminum"); SetColor(rightPole11, "Aluminum"); SetColor(rightPole12, "Aluminum"); SetColor(leftPole1, "Aluminum"); SetColor(leftPole2, "Aluminum"); SetColor(leftPole3, "Aluminum"); SetColor(leftPole4, "Aluminum"); SetColor(leftPole5, "Aluminum"); SetColor(leftPole6, "Aluminum"); SetColor(leftPole7, "Aluminum"); SetColor(leftPole8, "Aluminum"); SetColor(leftPole9, "Aluminum"); SetColor(leftPole10, "Aluminum"); SetColor(leftPole11, "Aluminum"); SetColor(leftPole12, "Aluminum"); SetColor(extrusionRing, "Aluminum"); SetSQ(extrusionRing, "Dull"); SetSQ(rightPole1, "Dull"); SetSQ(rightPole2, "Dull"); SetSQ(rightPole3, "Dull"); SetSQ(rightPole4, "Dull"); SetSQ(rightPole5, "Dull"); SetSQ(rightPole6, "Dull"); SetSQ(rightPole7, "Dull"); SetSQ(rightPole8, "Dull"); SetSQ(rightPole9, "Dull"); SetSQ(rightPole10, "Dull"); SetSQ(rightPole11, "Dull"); SetSQ(rightPole12, "Dull"); SetSQ(leftPole1, "Dull"); SetSQ(leftPole2, "Dull"); SetSQ(leftPole3, "Dull"); SetSQ(leftPole4, "Dull"); SetSQ(leftPole5, "Dull"); SetSQ(leftPole6, "Dull"); SetSQ(leftPole7, "Dull"); SetSQ(leftPole8, "Dull"); SetSQ(leftPole9, "Dull"); SetSQ(leftPole10, "Dull"); SetSQ(leftPole11, "Dull"); SetSQ(leftPole12, "Dull"); } { #### Hopefully this will group things together to make it a bit easier.... body = {middleSphere, tube, rightPoleAddition, leftPoleaddition, rightPoleAddition2, leftPoleAddition2, rightWing, leftWing, rightEndCap, leftEndCap, rightEndCap2, leftEndCap2, extrusionRing, window, rightThing1, leftThing1}; poles = {rightPole1, rightPole2, rightPole3, rightPole4, rightPole5, rightPole6, rightPole7, rightPole8, rightPole9, rightPole10, rightPole11, rightPole12, leftPole1, leftPole2, leftPole3, leftPole4, leftPole5, leftPole6, leftPole7, leftPole8, leftPole9, leftPole10, leftPole11, leftPole12}; Show(body); Show(poles); } {##################################################################################### ## ## For Rendering (or Raying) this thing.... ###################################################################################### light1 = LightSource(pt(-50, 0, 30), 1, 1, 1); light2 = LightSource(pt(0, 0, 50), 1, 1, 1); DumpGeomFile({light1, light2}, "~/Alpha_1/tie/final/tf.hdr.a1"); DumpGeomFile({rightPole1, rightPole2, rightPole3, rightPole4, rightPole5, rightPole6, rightPole7, rightPole8, rightPole9, rightPole10, rightPole11, rightPole12, leftPole1, leftPole2, leftPole3, leftPole4, leftPole5, leftPole6, leftPole7, leftPole8, leftPole9, leftPole10, leftPole11, leftPole12}, "~/Alpha_1/tie/final/tf.poles.a1"); DumpGeomFile({middleSphere, tube, rightPoleAddition, leftPoleAddition, rightPoleAddition2, leftPoleAddition2, rightEndCap, leftEndCap, rightEndCap2, leftEndCap2, window, leftWing, rightWing, extrusionRing, rightGun, leftGun}, "~/Alpha_1/tie/final/tf.hull.a1"); }