From Second Life Wiki
Template:Needs Translation/LSL/es
Template:Needs Translation/LSL/el
Template:Needs Translation/LSL/he
Template:Needs Translation/LSL/it
Template:Needs Translation/LSL/ko
Template:Needs Translation/LSL/nl
Template:Needs Translation/LSL/hu
Template:Needs Translation/LSL/no
Template:Needs Translation/LSL/da
Template:Needs Translation/LSL/sv
Template:Needs Translation/LSL/tr
Template:Needs Translation/LSL/pl
Template:Needs Translation/LSL/pt
Template:Needs Translation/LSL/ru
Template:Needs Translation/LSL/uk
Template:Needs Translation/LSL/zh-Hans
Template:Needs Translation/LSL/zh-Hant
/LSL
PRIM_TYPE_BOX
Description
Constant: integer PRIM_TYPE_BOX = 0;
The integer constant PRIM_TYPE_BOX has the value 0
PRIM_TYPE_BOX is a parameter of PRIM_TYPE used to make prim into a box and to change specific properties that define the shape of that box.
PRIM_TYPE
[ PRIM_TYPE, PRIM_TYPE_BOX, integer hole_shape, vector cut, float hollow, vector twist, vector top_size, vector top_shear ]
| • integer
| hole_shape
| –
| PRIM_HOLE_* flag
|
|
| • vector
| cut
| –
| x and y range from 0.0 to 1.0, x must be at least 0.05 smaller than y (z is ignored)
|
|
| • float
| hollow
| –
| ranges from 0.0 (solid) to 0.95 (maximum hollowed)
|
|
| • vector
| twist
| –
| ranges from -0.5 (-180 degree in the edit window) to 0.5 (+180 degree in the edit window) for both x and y (z is ignored)
|
|
| • vector
| top_size
| –
| ranges from 0.0 to 2.0 for both x and y (z is ignored)!
|
|
| • vector
| top_shear
| –
| ranges from -0.5 to 0.5 for both x and y (z is ignored)
|
|
PRIM_TYPE_LEGACY
[ 1, PRIM_TYPE_BOX, vector cut, float hollow, float twist, vector top_size, vector top_shear ]
| • vector
| cut
| –
| x and y range from 0.0 to 1.0, x must be at least 0.05 smaller than y (z is ignored)
|
|
| • float
| hollow
| –
| ranges from 0.0 (solid) to 0.95 (maximum hollowed)
|
|
| • float
| twist
| –
| ranges from -0.5 (-180 degree in the edit window) to 0.5 (+180 degree in the edit window)
|
|
| • vector
| top_size
| –
| ranges from 0.0 to 1.0 for both x and y (z is ignored)!
|
|
| • vector
| top_shear
| –
| ranges from -0.5 to 0.5 for both x and y (z is ignored)
|
|
This is the old PRIM_TYPE format for boxes (PRIM_TYPE used to be 1 instead of 9). Use the new format unless you are maintaining old code.
Caveats
- top_size and client values are different, the ranges do not line up, conversion is required. This simple equation can be used: answer = 1.0 - value. See top_size Explained for more information.
Related Articles
Constants
Functions
Events
Examples
llSetPrimitiveParams([PRIM_TYPE,
PRIM_TYPE_BOX,
PRIM_HOLE_DEFAULT, // hole_shape
<0.00, 1.0, 0.0>, // cut
0.0, // hollow
<0.0, 0.0, 0.0>, // twist
<1.0, 1.0, 0.0>, // top_size
<0.0, 0.0, 0.0> // top_Shear
]);
Deep Notes
PRIM_TYPE top_size and client taper conversion
|
| Range
| Top Tapered
| No Tapering
| Bottom Tapered
|
| Client
| [-1, 1]
| 1.0
| 0.0
| -1.0
|
| PRIM_TYPE
| [0, 2]
| 0.0
| 1.0
| 2.0
|
| LEGACY
| [0, 1]
| 0.0
| 1.0
| NA
|
| Client < 1.11
| [0, 1]
| 0.0
| 1.0
| NA
|
top_size Explained
When the original PRIM_TYPE interface was retired (PRIM_TYPE_LEGACY, SL 1.5), the new PRIM_TYPE interface did not yet support tapering of the bottom of the prim, this feature wasn't added until SL 1.11 (two years later). Instead of retiring the new PRIM_TYPE when it was added, the range of top_size was enlarged; meanwhile in the client they redefined the parameter and it's values. This redefinition and range enlargement resulted in two interfaces that did the same thing but achieved it through different values. Meanwhile PRIM_TYPE_LEGACY's interface was not updated to support tapering of the bottom of the prim. Consequently all three interfaces have different ranges, making for a rather nasty caveat.