removed useless _ folders

This commit is contained in:
Fred Beckhusen
2015-08-09 16:54:31 -05:00
parent fde850293c
commit 948a44dfba
5204 changed files with 2425579 additions and 0 deletions

View File

@@ -0,0 +1,3 @@
<Solution name="Geodesic_Dome_Builder">
<Project name="Geodesic_Dome_Builder" path="Geodesic_Dome_Builder\Geodesic_Dome_Builder.prj" active="true"/>
</Solution>

View File

@@ -0,0 +1,10 @@
<Project name="Geodesic_Dome_Builder" guid="D7E9560C-6C00-1014-B904-200204C60A89">
<Object name="Object" guid="D7E95702-6C00-1014-B904-200204C60A89">
<Script name="Geodesic_Dome_Builder_1.lsl" guid="D7E990B1-6C00-1014-B904-200204C60A89">
</Script>
<Script name="Geodesic_Dome_Builder_2.lsl" guid="D7E9AAE6-6C00-1014-B904-200204C60A89">
</Script>
<Script name="Geodesic_Dome_Builder_3.lsl" guid="D7E9C14C-6C00-1014-B904-200204C60A89">
</Script>
</Object>
</Project>

View File

@@ -0,0 +1,199 @@
// :CATEGORY:Building
// :NAME:Geodesic_Dome_Builder
// :AUTHOR:Shine Renoir
// :CREATED:2010-01-10 05:20:56.000
// :EDITED:2013-09-18 15:38:54
// :ID:345
// :NUM:465
// :REV:1.0
// :WORLD:Second Life
// :DESCRIPTION:
// This code makes Geodesic Domes and was given to the Open Source Scripting group by Shine Renoir.
<img src="http://www.sparticarroll.com/public/Upload/dome.jpg">
//
You can read about the math here, http://www.geometer.org/mathcircles/geodesic.pdf
//
// The Dome Builder uses 3 scripts. One in the builder object and two simple scale/scale and shear scripts in the component parts.
//
// You can pick up a complete Dome Builder tool for free in Chessport, near the telehub.
//
// First - this script goes in the builder object.
//
// BUILDER
// :CODE:
// Dome Builder
// 2007 Copyright by Shine Renoir (fb@frank-buss.de)
// Use it for whatever you want, but keep this copyright notice
// and credit my name in notecards etc., if you use it in
// closed source objects
integer subdivision = 2;
float length = 3.0;
vector base;
float r;
move(vector destination)
{
// llSetPos is limited to 10m distances,
// so it is called until the target is reached
vector p = ZERO_VECTOR;
while (p.z != destination.z) {
llSetPos(destination);
p = llGetPos();
}
}
drawLine(vector v1, vector v2)
{
vector line = v2 - v1;
vector pos = base + line / 2 + v1;
float len = llVecMag(line);
vector size = <0.1, 0.1, len>;
vector up = <0, 0, 1>;
rotation rot = llRotBetween(up, llVecNorm(line));
move(pos);
llRezObject("Line", pos, ZERO_VECTOR, rot, 0);
llSay(-42, (string) size);
}
drawTriangle(vector v1, vector v2, vector v3)
{
// assuming a normal triangle: no zero area
// make v1-v3 the longest side
integer i = 0;
for (i = 0; i < 2; i++) {
float a = llVecDist(v2, v3);
float b = llVecDist(v1, v3);
float c = llVecDist(v1, v2);
if (a > b || c > b) {
vector tmp = v1;
v1 = v2;
v2 = v3;
v3 = tmp;
}
}
// calculate side lengths
float a = llVecDist(v2, v3);
float b = llVecDist(v1, v3);
float c = llVecDist(v1, v2);
// b=b1+b2, a^2=h^2+b2^2, c^2=b1^2+h^2, solving:
float b2 = (a*a + b*b - c*c)/2.0/b;
float b1 = b - b2;
float h = llSqrt(a*a - b2*b2); // triangle height
// calculate triangle height vector and shear value
float hPosition = b1 / b;
vector vb1 = (v3 - v1) * hPosition;
vector vh = v2 - (v1 + vb1);
float shear = hPosition - 0.5;
// calculate position and rotation
vector pos = base + v1 + (v3 - v1) / 2 + vh / 2;
vector size = <b, 0.05, h>;
vector up = <0.0, 0.0, 1.0>;
rotation rot = llRotBetween(up, llVecNorm(vh));
vector fwd = llVecNorm(v3 - v1); // fwd is the base
vector left = llVecNorm(vh);
left = llVecNorm(left % fwd); // "left" is cross product (orthogonal to base and left)
rot = llAxes2Rot(fwd, left, fwd % left); // calculate the needed rotation
// create object
llRezObject("Triangle", pos, ZERO_VECTOR, rot, 0);
// set size and shear value
list send = [size, shear ] ;
llSay(-42, llList2CSV(send));
}

View File

@@ -0,0 +1,39 @@
// :CATEGORY:Building
// :NAME:Geodesic_Dome_Builder
// :AUTHOR:Shine Renoir
// :CREATED:2010-01-10 05:20:56.000
// :EDITED:2013-09-18 15:38:54
// :ID:345
// :NUM:466
// :REV:1.0
// :WORLD:Second Life
// :DESCRIPTION:
// LINE
//
//
// Put this scale script into a rod object called 'Line' and put that inside the builder, alongside the script above.
//
// The rod object is a Cylinder with size <0.1,0.1,1.0>.
// :CODE:
// One time scale script
// 2007 Copyright by Shine Renoir (fb@frank-buss.de)
// Use it for whatever you want, but keep this copyright notice
// and credit my name in notecards etc., if you use it in
// closed source objects
integer handle;
default

View File

@@ -0,0 +1,52 @@
// :CATEGORY:Building
// :NAME:Geodesic_Dome_Builder
// :AUTHOR:Shine Renoir
// :CREATED:2010-01-10 05:20:56.000
// :EDITED:2013-09-18 15:38:54
// :ID:345
// :NUM:467
// :REV:1.0
// :WORLD:Second Life
// :DESCRIPTION:
// TRIANGLE
// :CODE:
// One time scale and shear script
// 2007 Copyright by Shine Renoir (fb@frank-buss.de)
// Use it for whatever you want, but keep this copyright notice
// and credit my name in notecards etc., if you use it in
// closed source objects
integer handle;
default
{
state_entry()
{
handle = llListen(-42, "", NULL_KEY, "" );
}
listen(integer channel, string name, key id, string message)
{
list tokens = llCSV2List(message);
vector size = (vector) llList2String(tokens, 0);