Welcome to the Second Life Forums Archive

These forums are CLOSED. Please visit the new forums HERE

llSetTopSize and llSetTopShear

Catherine Omega
Geometry Ninja
Join date: 10 Jan 2003
Posts: 2,053
01-21-2004 22:54
Why can't we set top size and top sheer using LSL? The best benefit of this would be for autorezzing scripts to generate geometry on demand, as in Xylor's incredible structure-building scripts. Currently, you need two boxes to make what LOOKS like a single triangular face, which is really awkward. Personally, I could do incredible things with this.

Who's with me? :)
Xylor Baysklef
Scripting Addict
Join date: 4 May 2003
Posts: 109
01-21-2004 23:59
Yes! llSetTopShear(float x, float y); and llSetTopSize(float x, float y); *please*!

I'd rather not have to put 101 traingles in inventory with all the various Top Shear (x) possibilites to create single-prim triangles ^_~

Xylor
Christopher Omega
Oxymoron
Join date: 28 Mar 2003
Posts: 1,828
01-22-2004 05:10
I second this. Why dont we have LSL functions to modify *all* the properties of a prim? I mean, it shouldnt be too hard on the server, or to impliment, since we already use llSetPos(), llSetRot() and llSetScale() liberally with very little to no negative effects.

I want:

llSetCut(float x, float y);
llSetAdvCut(float x, float y);
llSetTopSize(float x, float y);
llSetTwist(float twistRadians);
llSetDimple(float x, float y); // Only for spheres.
llSetHoleSize(float size); // Only for torii and tubes.
llSetShear(float x, float y);

and finally:

llSetMagical(integer magicBool); // Auto-builds to the image in your head of what your trying to design :D

Hehe
Bosozoku Kato
insurrectionist midget
Join date: 16 Jun 2003
Posts: 452
01-22-2004 06:05
From: someone
llSetMagical(integer magicBool); // Auto-builds to the image in your head of what your trying to design


That function is a MUST!

Thanks,
Bos
Tiger Crossing
The Prim Maker
Join date: 18 Aug 2003
Posts: 1,560
01-22-2004 11:59
In a previous thread, I suggested making one function to edit all parameters of object creation at once with control over speed of transition. But instead of going to that old thread, I'll import and improve the idea here.

The format for this function is similar to the particle and vehicle functions:

llAlterObject( list params );

params is a list of parameter/value pairs where the parameter names are any of these:

ALTER_SHAPE (one of...)
-- ALTER_SHAPE_CUBE
-- ALTER_SHAPE_PYRAMID
-- ALTER_SHAPE_CYLINDER
-- ALTER_SHAPE_SPHERE
-- ALTER_SHAPE_TORUS
-- ALTER_SHAPE_PIPE


ALTER_POSITION (vector)
ALTER_ROTATION (rotation)
ALTER_SCALE (vector)
ALTER_TWIST (float)
ALTER_CUT_START (float)
ALTER_CUT_END (float)
ALTER_TOP_X (float)
ALTER_TOP_Y (float)
ALTER_DIMPLE_TOP (float)
ALTER_DIMPLE_BOTTOM (float)
ALTER_HOLLOW (float)
ALTER_SHEAR_X (float)
ALTER_SHEAR_Y (float)


ALTER_START_TAU (float) - how long to get up to speed
ALTER_END_TAU (float) - how long to slow to a stop

The start and end tau values control how fast the object transitions between the current settings and the new settings. So the START_TAU is how hard you step on the gas and END_TAU is how hard you hit the breaks. The current behavior is to hit the gas slow and the breaks as hard as possible. These two values will let you control that.

ALTER_USE_LOCAL_POSITION (true/false) - the vector will be treated as an offset if true, or an absolute position if false
ALTER_USE_LOCAL_ROTATION (true/false) - the vector will be treated as an offset if true, or an absolute rotation if false
ALTER_USE_LOCAL_SCALE (true/false) - the new scale will be treated as a percentage if true, or an absolute scale if false

And:
ALTER_CENTER_POSITON (flag, see below) - a flag to choose which center to use for positioning
ALTER_CENTER_ROTATION (flag, see below) - a flag to choose which center to use for rotation
ALTER_CENTER_SCALE (flag, see below) - a flag to choose which center to use for scaling

The flag is one of these:
-- ALTER_CENTER_HEAD, the center of a single prim or center of the head prim in a link
-- ALTER_CENTER_AVERAGE, the center of a single prim or average of the centers of a link
-- ALTER_CENTER_BOUNDING, the center of a single prim or link's bounding box
-- ALTER_CENTER_OF_MASS, the center of mass of the prim or link

And there should be an offset from the calculated points:
ALTER_CENTER_POSITON_OFFSET (vector)
ALTER_CENTER_ROTATION_OFFSET (vector)
ALTER_CENTER_SCALE_OFFSET (vector)


Another option would be a function that takes a string description of an object. Then if you select Edit->Copy on a selected object in the world (or inventory), the clipboard is loaded with the text string to recreate the object. This string could be edited off-line then handed off to a function that re-creates the object.

But I think the function pattern defined above would be best.

(And there should be a llAlterTexture( list params ) that will let you set each face's texture at once, even to different values.)
_____________________
~ Tiger Crossing
~ (Nonsanity)
Oz Spade
ReadsNoPostLongerThanHand
Join date: 23 Sep 2003
Posts: 2,708
01-22-2004 12:19
I wouldn't mind either method being implemented, either the llAlterObject or the individual LSL calls. I've been longing to have a LSL function that'll alter the hollow of an object as it would be great for a project I've been wanting to do for a few months now.

Definitly a need for this.
_____________________
"Don't anticipate outcome," the man said. "Await the unfolding of events. Remain in the moment." - Konrad
Catherine Omega
Geometry Ninja
Join date: 10 Jan 2003
Posts: 2,053
01-22-2004 21:04
Don't forget llSetObjectDescription! That. along with llGetObjectDescription would actually be pretty useful for storing data, if you needed to do stuff like that.