Difference between revisions of "Prims"
(8 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
{{Otheruses4|primitives|[[LSL]] related information|:Category:LSL Prim}} | |||
==Introduction== | ==Introduction== | ||
This page is mostly about how primitives are implemented in the server and viewer code. It might help users of the in-world build tool understand the use of the many options. An excellent detailed summary can be found here. [http://www.realityprime.com/articles/how-sl-primitives-really-work] | |||
Primitives in Second Life are constructed by starting with a basic two dimensional shape, modifying it, and extruding it in to the third dimension along a path while applying modifications to the extrusion. The most basic example is a cube which starts out as a 2D square and extrudes along a linear path with no modifications to make a cube. A cylinder starts out as as circle and extrudes along the same linear path. If the circle was extruded along a circular path you would create a | Primitives in Second Life are constructed by starting with a basic two dimensional shape, modifying it, and extruding it in to the third dimension along a path while applying modifications to the extrusion. The most basic example is a cube which starts out as a 2D square and extrudes along a linear path with no modifications to make a cube. A cylinder starts out as as circle and extrudes along the same linear path. If the circle was extruded along a circular path you would create a torus, and if a half-circle is extruded along another type of circular path you create a sphere. | ||
==2D Shape (Profile)== | ==2D Shape (Profile)== | ||
Line 12: | Line 16: | ||
Square = 0x01 | Square = 0x01 | ||
Isometric Triangle = 0x02 | Isometric Triangle = 0x02 | ||
Equilateral Triangle = 0x03 | |||
Right Triangle = 0x04 | Right Triangle = 0x04 | ||
Half Circle = 0x05 | Half Circle = 0x05 | ||
Line 37: | Line 41: | ||
* PathCurve | * PathCurve | ||
** | ** Enum for the extrusion path. For whatever reason only the upper bits are used in this field: | ||
<pre> | <pre> |
Latest revision as of 23:43, 1 October 2009
Introduction
This page is mostly about how primitives are implemented in the server and viewer code. It might help users of the in-world build tool understand the use of the many options. An excellent detailed summary can be found here. [1]
Primitives in Second Life are constructed by starting with a basic two dimensional shape, modifying it, and extruding it in to the third dimension along a path while applying modifications to the extrusion. The most basic example is a cube which starts out as a 2D square and extrudes along a linear path with no modifications to make a cube. A cylinder starts out as as circle and extrudes along the same linear path. If the circle was extruded along a circular path you would create a torus, and if a half-circle is extruded along another type of circular path you create a sphere.
2D Shape (Profile)
- ProfileCurve
- Two combined enums: the lower 4 bits define the outer profile shape, and the high 4 bits define the type of hole if ProfileHollow is non-zero
Profile Shape: Circle = 0x00 Square = 0x01 Isometric Triangle = 0x02 Equilateral Triangle = 0x03 Right Triangle = 0x04 Half Circle = 0x05
Hole Shape: Same = 0x00 Circle = 0x10 Square = 0x20 Triangle = 0x30
2D Shape (Profile) Modifications
- ProfileBegin
- Where the cut (if any) in the profile begins
- ProfileEnd
- Where the cut (if any) in the profile ends
- ProfileHollow
- How much of the profile is hollowed out, as a percent of the original bounding box. If non-zero this creates a hole using the shape defined in the higher bits of ProfileCurve
Extrusion (Path)
- PathCurve
- Enum for the extrusion path. For whatever reason only the upper bits are used in this field:
Line = 0x10 Circle = 0x20 Circle2 = 0x30 Test = 0x40 // ??? Flexible = 0x80
Extrusion (Path) Modifications
- PathBegin
- PathEnd
- PathScaleX
- PathScaleY
- PathShearX
- PathShearY
- PathTwistBegin
- PathTwist
- PathRadiusOffset
- PathTaperX
- PathTaperY
- PathRevolutions
- PathSkew