/******************************************************************** BuckySpline (c) Jürgen Meier (J.Meier@Dialup.Nacamar.de) Version : 1.00 08.12.2000 *********************************************************************/ Function (doc) { // Spline Punkt deklarieren var spunkt=new(SplinePoint); // Punkte des Buckyballs definieren var P0 = vector(-20.150 , -29.442 , 92.197); var P1 = vector( 20.278 , -29.442 , 92.197); var P2 = vector( 32.771 , 9.008 , 92.197); var P3 = vector( 0.063 , 32.770 , 92.197); var P4 = vector(-32.633 , 9.008 , 92.197); var P5 = vector(-63.466 , 19.058 , 72.057); var P6 = vector(-39.261 , -55.758 , 72.092); var P7 = vector( 39.397 , -55.758 , 72.092); var P8 = vector( 63.708 , 19.040 , 72.116); var P9 = vector( 0.063 , 65.299 , 72.092); var P10 = vector( 72.073 , -45.131 , 50.901); var P11 = vector( 83.923 , -8.744 , 50.831); var P12 = vector( 63.708 , 53.449 , 50.855); var P13 = vector( 32.771 , 75.926 , 50.855); var P14 = vector(-32.633 , 75.926 , 50.855); var P15 = vector(-63.540 , 53.449 , 50.820); var P16 = vector(-83.778 , -8.763 , 50.855); var P17 = vector(-71.959 , -45.131 , 50.855); var P18 = vector(-19.056 , -83.581 , 50.855); var P19 = vector( 19.154 , -83.581 , 50.809); var P20 = vector(-39.261 , -90.149 , 16.473); var P21 = vector(-71.959 , -66.385 , 16.473); var P22 = vector( 39.427 , -90.149 , 16.462); var P23 = vector( 72.136 , -66.385 , 16.519); var P24 = vector( 96.414 , 8.431 , 16.462); var P25 = vector( 83.923 , 46.882 , 16.483); var P26 = vector( 20.278 , 93.120 , 16.473); var P27 = vector(-20.150 , 93.120 , 16.473); var P28 = vector(-83.875 , 46.882 , 16.508); var P29 = vector(-96.261 , 8.431 , 16.473); var P30 = vector(-20.150 , -96.362 , -16.060); var P31 = vector( 20.278 , -96.362 , -16.060); var P32 = vector( 83.923 , -50.121 , -16.060); var P33 = vector( 96.414 , -11.671 , -16.060); var P34 = vector( 72.103 , 63.145 , -16.060); var P35 = vector( 39.397 , 86.909 , -16.060); var P36 = vector(-71.959 , 63.145 , -16.060); var P37 = vector(-39.261 , 86.909 , -16.060); var P38 = vector(-83.778 , -50.121 , -16.060); var P39 = vector(-96.212 , -11.671 , -16.031); var P40 = vector( 32.771 , -79.165 , -50.489); var P41 = vector( 63.708 , -56.688 , -50.450); var P42 = vector(-63.563 , -56.688 , -50.470); var P43 = vector(-32.633 , -79.166 , -50.470); var P44 = vector(-83.790 , 5.523 , -50.463); var P45 = vector(-71.959 , 41.891 , -50.470); var P46 = vector(-19.056 , 80.342 , -50.470); var P47 = vector( 19.184 , 80.342 , -50.470); var P48 = vector( 83.923 , 5.523 , -50.470); var P49 = vector( 72.103 , 41.891 , -50.470); var P50 = vector( 0.065 , -68.539 , -71.707); var P51 = vector(-63.612 , -22.300 , -71.735); var P52 = vector(-39.261 , 52.518 , -71.707); var P53 = vector( 39.397 , 52.518 , -71.707); var P54 = vector( 63.708 , -22.298 , -71.707); var P55 = vector(-20.150 , 26.202 , -91.787); var P56 = vector( 20.278 , 26.202 , -91.858); var P57 = vector( 32.771 , -12.248 , -91.812); var P58 = vector( 0.065 , -36.009 , -91.812); var P59 = vector(-32.633 , -12.248 , -91.766); // Leeres Objekt für den Buckyball erzeugen var bucky=doc->NewPolygonObject("Buckyball",NULL,NULL,0,0,0,0); // Leeres Objekt für die Fünfecke erzeugen var fuenf=doc->NewPolygonObject("Fünfecke",NULL,NULL,0,0,0,0); // Objekt fuenf in Objekt bucky verschieben doc->MoveObject(fuenf,bucky,NULL); // Neues Splineobjekt für das Fünfeck 1 erzeugen var f1 = doc->NewSplineObject("Fünfeck 1",NULL,NULL,5); // Spline Info für die Fünfecke definieren var spinfo=new(SplineInfo); // Spline schließen spinfo->closed=TRUE; // Spline Typ definieren spinfo->type=SPL_LINEAR; // Spline Info setzen f1->SetSplineInfo(spinfo); // Punkte setzen spunkt->p = P34; f1->SetPoint(0,spunkt); spunkt->p = P49; f1->SetPoint(1,spunkt); spunkt->p = P53; f1->SetPoint(2,spunkt); spunkt->p = P47; f1->SetPoint(3,spunkt); spunkt->p = P35; f1->SetPoint(4,spunkt); // Update f1->UpdateObject(); // Objekt f1 in Objekt fuenf verschieben doc->MoveObject(f1,fuenf,NULL); // Neues Splineobjekt für das Fünfeck 2 erzeugen var f2 = doc->NewSplineObject("Fünfeck 2",NULL,NULL,5); f2->SetSplineInfo(spinfo); spunkt->p = P55; f2->SetPoint(0,spunkt); spunkt->p = P56; f2->SetPoint(1,spunkt); spunkt->p = P57; f2->SetPoint(2,spunkt); spunkt->p = P58; f2->SetPoint(3,spunkt); spunkt->p = P59; f2->SetPoint(4,spunkt); f2->UpdateObject(); doc->MoveObject(f2,fuenf,NULL); // Neues Splineobjekt für das Fünfeck 3 erzeugen var f3 = doc->NewSplineObject("Fünfeck 3",NULL,NULL,5); f3->SetSplineInfo(spinfo); spunkt->p = P36; f3->SetPoint(0,spunkt); spunkt->p = P37; f3->SetPoint(1,spunkt); spunkt->p = P46; f3->SetPoint(2,spunkt); spunkt->p = P52; f3->SetPoint(3,spunkt); spunkt->p = P45; f3->SetPoint(4,spunkt); f3->UpdateObject(); doc->MoveObject(f3,fuenf,NULL); // Neues Splineobjekt für das Fünfeck 4 erzeugen var f4 = doc->NewSplineObject("Fünfeck 4",NULL,NULL,5); f4->SetSplineInfo(spinfo); spunkt->p = P5; f4->SetPoint(0,spunkt); spunkt->p = P15; f4->SetPoint(1,spunkt); spunkt->p = P28; f4->SetPoint(2,spunkt); spunkt->p = P29; f4->SetPoint(3,spunkt); spunkt->p = P16; f4->SetPoint(4,spunkt); f4->UpdateObject(); doc->MoveObject(f4,fuenf,NULL); // Neues Splineobjekt für das Fünfeck 5 erzeugen var f5 = doc->NewSplineObject("Fünfeck 5",NULL,NULL,5); f5->SetSplineInfo(spinfo); spunkt->p = P6; f5->SetPoint(0,spunkt); spunkt->p = P17; f5->SetPoint(1,spunkt); spunkt->p = P21; f5->SetPoint(2,spunkt); spunkt->p = P20; f5->SetPoint(3,spunkt); spunkt->p = P18; f5->SetPoint(4,spunkt); f5->UpdateObject(); doc->MoveObject(f5,fuenf,NULL); // Neues Splineobjekt für das Fünfeck 6 erzeugen var f6 = doc->NewSplineObject("Fünfeck 6",NULL,NULL,5); f6->SetSplineInfo(spinfo); spunkt->p = P7; f6->SetPoint(0,spunkt); spunkt->p = P19; f6->SetPoint(1,spunkt); spunkt->p = P22; f6->SetPoint(2,spunkt); spunkt->p = P23; f6->SetPoint(3,spunkt); spunkt->p = P10; f6->SetPoint(4,spunkt); f6->UpdateObject(); doc->MoveObject(f6,fuenf,NULL); // Neues Splineobjekt für das Fünfeck 7 erzeugen var f7 = doc->NewSplineObject("Fünfeck 7",NULL,NULL,5); f7->SetSplineInfo(spinfo); spunkt->p = P33; f7->SetPoint(0,spunkt); spunkt->p = P32; f7->SetPoint(1,spunkt); spunkt->p = P41; f7->SetPoint(2,spunkt); spunkt->p = P54; f7->SetPoint(3,spunkt); spunkt->p = P48; f7->SetPoint(4,spunkt); f7->UpdateObject(); doc->MoveObject(f7,fuenf,NULL); // Neues Splineobjekt für das Fünfeck 8 erzeugen var f8 = doc->NewSplineObject("Fünfeck 8",NULL,NULL,5); f8->SetSplineInfo(spinfo); spunkt->p = P38; f8->SetPoint(0,spunkt); spunkt->p = P39; f8->SetPoint(1,spunkt); spunkt->p = P44; f8->SetPoint(2,spunkt); spunkt->p = P51; f8->SetPoint(3,spunkt); spunkt->p = P42; f8->SetPoint(4,spunkt); f8->UpdateObject(); doc->MoveObject(f8,fuenf,NULL); // Neues Splineobjekt für das Fünfeck 9 erzeugen var f9 = doc->NewSplineObject("Fünfeck 9",NULL,NULL,5); f9->SetSplineInfo(spinfo); spunkt->p = P0; f9->SetPoint(0,spunkt); spunkt->p = P1; f9->SetPoint(1,spunkt); spunkt->p = P2; f9->SetPoint(2,spunkt); spunkt->p = P3; f9->SetPoint(3,spunkt); spunkt->p = P4; f9->SetPoint(4,spunkt); f9->UpdateObject(); doc->MoveObject(f9,fuenf,NULL); // Neues Splineobjekt für das Fünfeck 10 erzeugen var f10 = doc->NewSplineObject("Fünfeck 10",NULL,NULL,5); f10->SetSplineInfo(spinfo); spunkt->p = P8; f10->SetPoint(0,spunkt); spunkt->p = P11; f10->SetPoint(1,spunkt); spunkt->p = P24; f10->SetPoint(2,spunkt); spunkt->p = P25; f10->SetPoint(3,spunkt); spunkt->p = P12; f10->SetPoint(4,spunkt); f10->UpdateObject(); doc->MoveObject(f10,fuenf,NULL); // Neues Splineobjekt für das Fünfeck 11 erzeugen var f11 = doc->NewSplineObject("Fünfeck 11",NULL,NULL,5); f11->SetSplineInfo(spinfo); spunkt->p = P9; f11->SetPoint(0,spunkt); spunkt->p = P13; f11->SetPoint(1,spunkt); spunkt->p = P26; f11->SetPoint(2,spunkt); spunkt->p = P27; f11->SetPoint(3,spunkt); spunkt->p = P14; f11->SetPoint(4,spunkt); f11->UpdateObject(); doc->MoveObject(f11,fuenf,NULL); // Neues Splineobjekt für das Fünfeck 12 erzeugen var f12 = doc->NewSplineObject("Fünfeck 12",NULL,NULL,5); f12->SetSplineInfo(spinfo); spunkt->p = P31; f12->SetPoint(0,spunkt); spunkt->p = P30; f12->SetPoint(1,spunkt); spunkt->p = P43; f12->SetPoint(2,spunkt); spunkt->p = P50; f12->SetPoint(3,spunkt); spunkt->p = P40; f12->SetPoint(4,spunkt); f12->UpdateObject(); doc->MoveObject(f12,fuenf,NULL); // Leeres Objekt für die Sechsecke erzeugen var sechs=doc->NewPolygonObject("Sechsecke",NULL,NULL,0,0,0,0); // Objekt sechs in Objekt bucky verschieben doc->MoveObject(sechs,bucky,NULL); // Neues Splineobjekt für die Verbindung 1 erzeugen var v1 = doc->NewSplineObject("Verbindung 1",NULL,NULL,2); // Spline Info für die Fünfecke definieren var spinfo=new(SplineInfo); // Spline schließen spinfo->closed=FALSE; // Spline Typ definieren spinfo->type=SPL_LINEAR; v1->SetSplineInfo(spinfo); spunkt->p = P0; v1->SetPoint(0,spunkt); spunkt->p = P6; v1->SetPoint(1,spunkt); v1->UpdateObject(); doc->MoveObject(v1,sechs,NULL); // Neues Splineobjekt für die Verbindung 2 erzeugen var v2 = doc->NewSplineObject("Verbindung 2",NULL,NULL,2); v2->SetSplineInfo(spinfo); spunkt->p = P1; v2->SetPoint(0,spunkt); spunkt->p = P7; v2->SetPoint(1,spunkt); v2->UpdateObject(); doc->MoveObject(v2,sechs,NULL); // Neues Splineobjekt für die Verbindung 3 erzeugen var v3 = doc->NewSplineObject("Verbindung 3",NULL,NULL,2); v3->SetSplineInfo(spinfo); spunkt->p = P2; v3->SetPoint(0,spunkt); spunkt->p = P8; v3->SetPoint(1,spunkt); v3->UpdateObject(); doc->MoveObject(v3,sechs,NULL); // Neues Splineobjekt für die Verbindung 4 erzeugen var v4 = doc->NewSplineObject("Verbindung 4",NULL,NULL,2); v4->SetSplineInfo(spinfo); spunkt->p = P3; v4->SetPoint(0,spunkt); spunkt->p = P9; v4->SetPoint(1,spunkt); v4->UpdateObject(); doc->MoveObject(v4,sechs,NULL); // Neues Splineobjekt für die Verbindung 5 erzeugen var v5 = doc->NewSplineObject("Verbindung 5",NULL,NULL,2); v5->SetSplineInfo(spinfo); spunkt->p = P4; v5->SetPoint(0,spunkt); spunkt->p = P5; v5->SetPoint(1,spunkt); v5->UpdateObject(); doc->MoveObject(v5,sechs,NULL); // Neues Splineobjekt für die Verbindung 6 erzeugen var v6 = doc->NewSplineObject("Verbindung 6",NULL,NULL,2); v6->SetSplineInfo(spinfo); spunkt->p = P10; v6->SetPoint(0,spunkt); spunkt->p = P11; v6->SetPoint(1,spunkt); v6->UpdateObject(); doc->MoveObject(v6,sechs,NULL); // Neues Splineobjekt für die Verbindung 7 erzeugen var v7 = doc->NewSplineObject("Verbindung 7",NULL,NULL,2); v7->SetSplineInfo(spinfo); spunkt->p = P12; v7->SetPoint(0,spunkt); spunkt->p = P13; v7->SetPoint(1,spunkt); v7->UpdateObject(); doc->MoveObject(v7,sechs,NULL); // Neues Splineobjekt für die Verbindung 8 erzeugen var v8 = doc->NewSplineObject("Verbindung 8",NULL,NULL,2); v8->SetSplineInfo(spinfo); spunkt->p = P14; v8->SetPoint(0,spunkt); spunkt->p = P15; v8->SetPoint(1,spunkt); v8->UpdateObject(); doc->MoveObject(v8,sechs,NULL); // Neues Splineobjekt für die Verbindung 9 erzeugen var v9 = doc->NewSplineObject("Verbindung 9",NULL,NULL,2); v9->SetSplineInfo(spinfo); spunkt->p = P16; v9->SetPoint(0,spunkt); spunkt->p = P17; v9->SetPoint(1,spunkt); v9->UpdateObject(); doc->MoveObject(v9,sechs,NULL); // Neues Splineobjekt für die Verbindung 10 erzeugen var v10 = doc->NewSplineObject("Verbindung 10",NULL,NULL,2); v10->SetSplineInfo(spinfo); spunkt->p = P18; v10->SetPoint(0,spunkt); spunkt->p = P19; v10->SetPoint(1,spunkt); v10->UpdateObject(); doc->MoveObject(v10,sechs,NULL); // Neues Splineobjekt für die Verbindung 11 erzeugen var v11 = doc->NewSplineObject("Verbindung 11",NULL,NULL,2); v11->SetSplineInfo(spinfo); spunkt->p = P20; v11->SetPoint(0,spunkt); spunkt->p = P30; v11->SetPoint(1,spunkt); v11->UpdateObject(); doc->MoveObject(v11,sechs,NULL); // Neues Splineobjekt für die Verbindung 12 erzeugen var v12 = doc->NewSplineObject("Verbindung 12",NULL,NULL,2); v12->SetSplineInfo(spinfo); spunkt->p = P21; v12->SetPoint(0,spunkt); spunkt->p = P38; v12->SetPoint(1,spunkt); v12->UpdateObject(); doc->MoveObject(v12,sechs,NULL); // Neues Splineobjekt für die Verbindung 13 erzeugen var v13 = doc->NewSplineObject("Verbindung 13",NULL,NULL,2); v13->SetSplineInfo(spinfo); spunkt->p = P22; v13->SetPoint(0,spunkt); spunkt->p = P31; v13->SetPoint(1,spunkt); v13->UpdateObject(); doc->MoveObject(v13,sechs,NULL); // Neues Splineobjekt für die Verbindung 14 erzeugen var v14 = doc->NewSplineObject("Verbindung 14",NULL,NULL,2); v14->SetSplineInfo(spinfo); spunkt->p = P23; v14->SetPoint(0,spunkt); spunkt->p = P32; v14->SetPoint(1,spunkt); v14->UpdateObject(); doc->MoveObject(v14,sechs,NULL); // Neues Splineobjekt für die Verbindung 15 erzeugen var v15 = doc->NewSplineObject("Verbindung 15",NULL,NULL,2); v15->SetSplineInfo(spinfo); spunkt->p = P24; v15->SetPoint(0,spunkt); spunkt->p = P33; v15->SetPoint(1,spunkt); v15->UpdateObject(); doc->MoveObject(v15,sechs,NULL); // Neues Splineobjekt für die Verbindung 16 erzeugen var v16 = doc->NewSplineObject("Verbindung 16",NULL,NULL,2); v16->SetSplineInfo(spinfo); spunkt->p = P25; v16->SetPoint(0,spunkt); spunkt->p = P34; v16->SetPoint(1,spunkt); v16->UpdateObject(); doc->MoveObject(v16,sechs,NULL); // Neues Splineobjekt für die Verbindung 17 erzeugen var v17 = doc->NewSplineObject("Verbindung 17",NULL,NULL,2); v17->SetSplineInfo(spinfo); spunkt->p = P26; v17->SetPoint(0,spunkt); spunkt->p = P35; v17->SetPoint(1,spunkt); v17->UpdateObject(); doc->MoveObject(v17,sechs,NULL); // Neues Splineobjekt für die Verbindung 18 erzeugen var v18 = doc->NewSplineObject("Verbindung 18",NULL,NULL,2); v18->SetSplineInfo(spinfo); spunkt->p = P27; v18->SetPoint(0,spunkt); spunkt->p = P37; v18->SetPoint(1,spunkt); v18->UpdateObject(); doc->MoveObject(v18,sechs,NULL); // Neues Splineobjekt für die Verbindung 19 erzeugen var v19 = doc->NewSplineObject("Verbindung 19",NULL,NULL,2); v19->SetSplineInfo(spinfo); spunkt->p = P28; v19->SetPoint(0,spunkt); spunkt->p = P36; v19->SetPoint(1,spunkt); v19->UpdateObject(); doc->MoveObject(v19,sechs,NULL); // Neues Splineobjekt für die Verbindung 20 erzeugen var v20 = doc->NewSplineObject("Verbindung 20",NULL,NULL,2); v20->SetSplineInfo(spinfo); spunkt->p = P29; v20->SetPoint(0,spunkt); spunkt->p = P39; v20->SetPoint(1,spunkt); v20->UpdateObject(); doc->MoveObject(v20,sechs,NULL); // Neues Splineobjekt für die Verbindung 21 erzeugen var v21 = doc->NewSplineObject("Verbindung 21",NULL,NULL,2); v21->SetSplineInfo(spinfo); spunkt->p = P40; v21->SetPoint(0,spunkt); spunkt->p = P41; v21->SetPoint(1,spunkt); v21->UpdateObject(); doc->MoveObject(v21,sechs,NULL); // Neues Splineobjekt für die Verbindung 22 erzeugen var v22 = doc->NewSplineObject("Verbindung 22",NULL,NULL,2); v22->SetSplineInfo(spinfo); spunkt->p = P42; v22->SetPoint(0,spunkt); spunkt->p = P43; v22->SetPoint(1,spunkt); v22->UpdateObject(); doc->MoveObject(v22,sechs,NULL); // Neues Splineobjekt für die Verbindung 23 erzeugen var v23 = doc->NewSplineObject("Verbindung 23",NULL,NULL,2); v23->SetSplineInfo(spinfo); spunkt->p = P44; v23->SetPoint(0,spunkt); spunkt->p = P45; v23->SetPoint(1,spunkt); v23->UpdateObject(); doc->MoveObject(v23,sechs,NULL); // Neues Splineobjekt für die Verbindung 24 erzeugen var v24 = doc->NewSplineObject("Verbindung 24",NULL,NULL,2); v24->SetSplineInfo(spinfo); spunkt->p = P46; v24->SetPoint(0,spunkt); spunkt->p = P47; v24->SetPoint(1,spunkt); v24->UpdateObject(); doc->MoveObject(v24,sechs,NULL); // Neues Splineobjekt für die Verbindung 25 erzeugen var v25 = doc->NewSplineObject("Verbindung 25",NULL,NULL,2); v25->SetSplineInfo(spinfo); spunkt->p = P48; v25->SetPoint(0,spunkt); spunkt->p = P49; v25->SetPoint(1,spunkt); v25->UpdateObject(); doc->MoveObject(v25,sechs,NULL); // Neues Splineobjekt für die Verbindung 26 erzeugen var v26 = doc->NewSplineObject("Verbindung 26",NULL,NULL,2); v26->SetSplineInfo(spinfo); spunkt->p = P51; v26->SetPoint(0,spunkt); spunkt->p = P59; v26->SetPoint(1,spunkt); v26->UpdateObject(); doc->MoveObject(v26,sechs,NULL); // Neues Splineobjekt für die Verbindung 27 erzeugen var v27 = doc->NewSplineObject("Verbindung 27",NULL,NULL,2); v27->SetSplineInfo(spinfo); spunkt->p = P52; v27->SetPoint(0,spunkt); spunkt->p = P55; v27->SetPoint(1,spunkt); v27->UpdateObject(); doc->MoveObject(v27,sechs,NULL); // Neues Splineobjekt für die Verbindung 28 erzeugen var v28 = doc->NewSplineObject("Verbindung 28",NULL,NULL,2); v28->SetSplineInfo(spinfo); spunkt->p = P53; v28->SetPoint(0,spunkt); spunkt->p = P56; v28->SetPoint(1,spunkt); v28->UpdateObject(); doc->MoveObject(v28,sechs,NULL); // Neues Splineobjekt für die Verbindung 29 erzeugen var v29 = doc->NewSplineObject("Verbindung 29",NULL,NULL,2); v29->SetSplineInfo(spinfo); spunkt->p = P54; v29->SetPoint(0,spunkt); spunkt->p = P57; v29->SetPoint(1,spunkt); v29->UpdateObject(); doc->MoveObject(v29,sechs,NULL); // Neues Splineobjekt für die Verbindung 30 erzeugen var v30 = doc->NewSplineObject("Verbindung 30",NULL,NULL,2); v30->SetSplineInfo(spinfo); spunkt->p = P50; v30->SetPoint(0,spunkt); spunkt->p = P58; v30->SetPoint(1,spunkt); v30->UpdateObject(); doc->MoveObject(v30,sechs,NULL); // Objekt aktivieren doc->ActivateObject(bucky); // Refresh doc->SendMessage(DOCUMENT_CHANGED); } main() { RegisterMenuHook("BuckySpline","Function"); }