Difference between revisions of "Category:Physics Engine/Shapes"
(Created page with "Shapes contain the surface properties of an object such as how much friction or elasticity it has. All collision shapes implement the following accessor routines. [[Category:Phy...") |
|||
Line 1: | Line 1: | ||
− | Shapes contain the surface properties of an object such as how much friction or elasticity | + | Shapes contain the surface properties of an object such as how much friction or elasticity it has. All collision shapes implement the following accessor routines. |
− | it has. All collision shapes implement the following accessor routines. | + | |
+ | ---- | ||
+ | ===== BB ===== | ||
+ | |||
+ | |||
+ | <!-- code start--> | ||
+ | <pre style="margin-left:20px; font-size:1.4em; background-color:#fdfdfd"> | ||
+ | bb = physics.Shape:BB() | ||
+ | </pre><!-- code end--> | ||
+ | |||
+ | |||
+ | <!-- table start --> | ||
+ | {| border=1 width="100%" cellspacing="0" cellpadding="4" style="border-color:#eee" class="wikitable" | ||
+ | <!-- header row start --> | ||
+ | ! Parameter !! Type !! Description | ||
+ | <!-- header row end --> | ||
+ | |- | ||
+ | | self | ||
+ | | '''in''' physics.Shape | ||
+ | | The input Shape | ||
+ | |- | ||
+ | | bb | ||
+ | | '''in''' physics.BB | ||
+ | | Bounding box of the Shape | ||
+ | |}<!-- table end --> | ||
+ | |||
+ | <br/> | ||
+ | Returns the [[#BB|bounding box]] of the shape. | ||
+ | |||
+ | Introduced in platform.apiLevel = '2.0' | ||
+ | |||
+ | ---- | ||
+ | ===== body ===== | ||
+ | |||
+ | |||
+ | <!-- code start--> | ||
+ | <pre style="margin-left:20px; font-size:1.4em; background-color:#fdfdfd"> | ||
+ | body = physics.Shape:body() | ||
+ | </pre><!-- code end--> | ||
+ | |||
+ | |||
+ | <!-- table start --> | ||
+ | {| border=1 width="100%" cellspacing="0" cellpadding="4" style="border-color:#eee" class="wikitable" | ||
+ | <!-- header row start --> | ||
+ | ! Parameter !! Type !! Description | ||
+ | <!-- header row end --> | ||
+ | |- | ||
+ | | self | ||
+ | | '''in''' physics.Shape | ||
+ | | The input Shape | ||
+ | |- | ||
+ | | body | ||
+ | | '''out''' physics.Body | ||
+ | | The Body associated with the Shape | ||
+ | |}<!-- table end --> | ||
+ | |||
+ | <br/> | ||
+ | Returns the [[#Body|body]] attached to the shape. If the shape is static, then it will return nil. | ||
+ | |||
+ | Introduced in platform.apiLevel = '2.0' | ||
+ | |||
+ | ---- | ||
+ | |||
+ | |||
+ | ===== collisionType ===== | ||
+ | |||
+ | |||
+ | <!-- code start--> | ||
+ | <pre style="margin-left:20px; font-size:1.4em; background-color:#fdfdfd"> | ||
+ | coll = physics.Shape:collisionType() | ||
+ | </pre><!-- code end--> | ||
+ | |||
+ | |||
+ | <!-- table start --> | ||
+ | {| border=1 width="100%" cellspacing="0" cellpadding="4" style="border-color:#eee" class="wikitable" | ||
+ | <!-- header row start --> | ||
+ | ! Parameter !! Type !! Description | ||
+ | <!-- header row end --> | ||
+ | |- | ||
+ | | self | ||
+ | | '''in''' physics.Shape | ||
+ | | The input Shape | ||
+ | |- | ||
+ | | coll | ||
+ | | '''out''' number | ||
+ | | The programmer-assigned integer collision type | ||
+ | |}<!-- table end --> | ||
+ | |||
+ | <br/> | ||
+ | Returns the integer collision type of the Shape. | ||
+ | |||
+ | Introduced in platform.apiLevel = '2.0' | ||
+ | |||
+ | ---- | ||
+ | ===== data ===== | ||
+ | |||
+ | |||
+ | <!-- code start--> | ||
+ | <pre style="margin-left:20px; font-size:1.4em; background-color:#fdfdfd"> | ||
+ | obj = physics.Shape:data() | ||
+ | </pre><!-- code end--> | ||
+ | |||
+ | |||
+ | <!-- table start --> | ||
+ | {| border=1 width="100%" cellspacing="0" cellpadding="4" style="border-color:#eee" class="wikitable" | ||
+ | <!-- header row start --> | ||
+ | ! Parameter !! Type !! Description | ||
+ | <!-- header row end --> | ||
+ | |- | ||
+ | | self | ||
+ | | '''in''' physics.Shape | ||
+ | | The input Shape | ||
+ | |- | ||
+ | | obj | ||
+ | | '''out''' Lua object | ||
+ | | The programmer-assigned data object assigned to this Shape | ||
+ | |}<!-- table end --> | ||
+ | |||
+ | <br/> | ||
+ | Returns the contents of the programmer data field of the Shape. | ||
+ | |||
+ | Introducted in platform.apiLevel = '2.0' | ||
+ | |||
+ | ---- | ||
+ | ===== friction ===== | ||
+ | |||
+ | |||
+ | <!-- code start--> | ||
+ | <pre style="margin-left:20px; font-size:1.4em; background-color:#fdfdfd"> | ||
+ | f = physics.Shape:friction() | ||
+ | </pre><!-- code end--> | ||
+ | |||
+ | |||
+ | <!-- table start --> | ||
+ | {| border=1 width="100%" cellspacing="0" cellpadding="4" style="border-color:#eee" class="wikitable" | ||
+ | <!-- header row start --> | ||
+ | ! Parameter !! Type !! Description | ||
+ | <!-- header row end --> | ||
+ | |- | ||
+ | | self | ||
+ | | '''in''' physics.Shape | ||
+ | | The input Shape | ||
+ | |- | ||
+ | | f | ||
+ | | '''out''' number | ||
+ | | The coefficient of friction for this Shape | ||
+ | |}<!-- table end --> | ||
+ | |||
+ | <br/> | ||
+ | Returns the friction coefficient of the shape. | ||
+ | |||
+ | Introduced in platform.apiLevel = '2.0' | ||
+ | |||
+ | ---- | ||
+ | ===== group ===== | ||
+ | |||
+ | |||
+ | <!-- code start--> | ||
+ | <pre style="margin-left:20px; font-size:1.4em; background-color:#fdfdfd"> | ||
+ | g = physics.Shape:group() | ||
+ | </pre><!-- code end--> | ||
+ | |||
+ | |||
+ | <!-- table start --> | ||
+ | {| border=1 width="100%" cellspacing="0" cellpadding="4" style="border-color:#eee" class="wikitable" | ||
+ | <!-- header row start --> | ||
+ | ! Parameter !! Type !! Description | ||
+ | <!-- header row end --> | ||
+ | |- | ||
+ | | self | ||
+ | | '''in''' physics.Shape | ||
+ | | The input Shape | ||
+ | |- | ||
+ | | g | ||
+ | | '''out''' number | ||
+ | | The assigned group number | ||
+ | |}<!-- table end --> | ||
+ | |||
+ | <br/> | ||
+ | Returns the group number of the shape. | ||
+ | {| width="100%" style="padding: 20px; margin-left:20px; border:solid; border-color:#aaa; border-width:0px; text-align:left; background-color:#FFFFCE;" | ||
+ | |- | ||
+ | | <span style="color:#AAAA00">'''NOTE'''</span><hr> | ||
+ | |- | ||
+ | |||
+ | <div style="white-space: pre"> | ||
+ | |||
+ | The group number is converted to a positive whole number when stored. | ||
+ | |||
+ | </div> | ||
+ | |} | ||
+ | <br/> | ||
+ | |||
+ | Introduced in platform.apiLevel = '2.0' | ||
+ | |||
+ | ---- | ||
+ | ===== layers ===== | ||
+ | |||
+ | |||
+ | <!-- code start--> | ||
+ | <pre style="margin-left:20px; font-size:1.4em; background-color:#fdfdfd"> | ||
+ | layers = physics.Shape:layers() | ||
+ | </pre><!-- code end--> | ||
+ | |||
+ | |||
+ | <!-- table start --> | ||
+ | {| border=1 width="100%" cellspacing="0" cellpadding="4" style="border-color:#eee" class="wikitable" | ||
+ | <!-- header row start --> | ||
+ | ! Parameter !! Type !! Description | ||
+ | <!-- header row end --> | ||
+ | |- | ||
+ | | self | ||
+ | | '''in''' physics.Shape | ||
+ | | The input Shape | ||
+ | |- | ||
+ | | layers | ||
+ | | '''out''' number | ||
+ | | A bitmap of the layers this shape occupies | ||
+ | |}<!-- table end --> | ||
+ | |||
+ | <br/> | ||
+ | Returns the bitmap of layers the shape occupies. | ||
+ | |||
+ | Introduced in platform.apiLevel = '2.0' | ||
+ | |||
+ | ---- | ||
+ | ===== rawBB ===== | ||
+ | |||
+ | |||
+ | <!-- code start--> | ||
+ | <pre style="margin-left:20px; font-size:1.4em; background-color:#fdfdfd"> | ||
+ | bb = physics.Shape:rawBB() | ||
+ | </pre><!-- code end--> | ||
+ | |||
+ | |||
+ | <!-- table start --> | ||
+ | {| border=1 width="100%" cellspacing="0" cellpadding="4" style="border-color:#eee" class="wikitable" | ||
+ | <!-- header row start --> | ||
+ | ! Parameter !! Type !! Description | ||
+ | <!-- header row end --> | ||
+ | |- | ||
+ | | self | ||
+ | | '''in''' physics.Shape | ||
+ | | The input Shape | ||
+ | |- | ||
+ | | bb | ||
+ | | '''out''' physics.BB | ||
+ | | The bounding box of the Shape | ||
+ | |}<!-- table end --> | ||
+ | |||
+ | <br/> | ||
+ | Returns the [[#BB|bounding box]] of the shape. Only valid after a call to [[#BB|physics.Shape:BB()]] or [[#step|physics.Space:step()]]. | ||
+ | |||
+ | Introduced in platform.apiLevel = '2.0' | ||
+ | |||
+ | ---- | ||
+ | ===== restitution ===== | ||
+ | |||
+ | |||
+ | <!-- code start--> | ||
+ | <pre style="margin-left:20px; font-size:1.4em; background-color:#fdfdfd"> | ||
+ | r = physics.Shape:restitution() | ||
+ | </pre><!-- code end--> | ||
+ | |||
+ | |||
+ | <!-- table start --> | ||
+ | {| border=1 width="100%" cellspacing="0" cellpadding="4" style="border-color:#eee" class="wikitable" | ||
+ | <!-- header row start --> | ||
+ | ! Parameter !! Type !! Description | ||
+ | <!-- header row end --> | ||
+ | |- | ||
+ | | self | ||
+ | | '''in''' physics.Shape | ||
+ | | The input Shape | ||
+ | |- | ||
+ | | r | ||
+ | | '''out''' number | ||
+ | | The restitution of the Shape | ||
+ | |}<!-- table end --> | ||
+ | |||
+ | <br/> | ||
+ | Returns the restitution (or elasticity) of the shape. | ||
+ | |||
+ | Introduced in platform.apiLevel = '2.0' | ||
+ | |||
+ | ---- | ||
+ | ===== sensor ===== | ||
+ | |||
+ | |||
+ | <!-- code start--> | ||
+ | <pre style="margin-left:20px; font-size:1.4em; background-color:#fdfdfd"> | ||
+ | s = physics.Shape:sensor() | ||
+ | </pre><!-- code end--> | ||
+ | |||
+ | |||
+ | <!-- table start --> | ||
+ | {| border=1 width="100%" cellspacing="0" cellpadding="4" style="border-color:#eee" class="wikitable" | ||
+ | <!-- header row start --> | ||
+ | ! Parameter !! Type !! Description | ||
+ | <!-- header row end --> | ||
+ | |- | ||
+ | | self | ||
+ | | '''in''' physics.Shape | ||
+ | | The input Shape | ||
+ | |- | ||
+ | | s | ||
+ | | '''out''' boolean | ||
+ | | True if the Shape is a sensor | ||
+ | |}<!-- table end --> | ||
+ | |||
+ | <br/> | ||
+ | Returns true if the shape is a sensor. | ||
+ | |||
+ | Introduced in platform.apiLevel = '2.0' | ||
+ | |||
+ | ---- | ||
+ | ===== setCollisionType ===== | ||
+ | |||
+ | |||
+ | <!-- code start--> | ||
+ | <pre style="margin-left:20px; font-size:1.4em; background-color:#fdfdfd"> | ||
+ | self = physics.Shape:setCollisionType(collisionType) | ||
+ | </pre><!-- code end--> | ||
+ | |||
+ | |||
+ | <!-- table start --> | ||
+ | {| border=1 width="100%" cellspacing="0" cellpadding="4" style="border-color:#eee" class="wikitable" | ||
+ | <!-- header row start --> | ||
+ | ! Parameter !! Type !! Description | ||
+ | <!-- header row end --> | ||
+ | |- | ||
+ | | self | ||
+ | | '''in''' physics.Shape | ||
+ | | The input Shape | ||
+ | |- | ||
+ | | collisionType | ||
+ | | '''in''' number | ||
+ | | Programmer-defined type of collision | ||
+ | |- | ||
+ | | self | ||
+ | | '''out''' physics.Shape | ||
+ | | The input Shape is returned as the output | ||
+ | |}<!-- table end --> | ||
+ | |||
+ | <br/> | ||
+ | Assigns a collision type (an integer value of your choosing) to the shape. It is used to determine which handler to call when a collision occurs. Returns ''self''. | ||
+ | |||
+ | Introduced in platform.apiLevel = '2.0' | ||
+ | |||
+ | ---- | ||
+ | ===== setData ===== | ||
+ | |||
+ | |||
+ | <!-- code start--> | ||
+ | <pre style="margin-left:20px; font-size:1.4em; background-color:#fdfdfd"> | ||
+ | self = physics.Shape:setData(obj) | ||
+ | </pre><!-- code end--> | ||
+ | |||
+ | |||
+ | <!-- table start --> | ||
+ | {| border=1 width="100%" cellspacing="0" cellpadding="4" style="border-color:#eee" class="wikitable" | ||
+ | <!-- header row start --> | ||
+ | ! Parameter !! Type !! Description | ||
+ | <!-- header row end --> | ||
+ | |- | ||
+ | | self | ||
+ | | '''in''' physics.Shape | ||
+ | | The input Shape | ||
+ | |- | ||
+ | | obj | ||
+ | | '''in''' Lua object | ||
+ | | An object defined by the programmer | ||
+ | |- | ||
+ | | self | ||
+ | | '''out''' physics.Shape | ||
+ | | The input Shape is returned as the output | ||
+ | |}<!-- table end --> | ||
+ | |||
+ | <br/> | ||
+ | Sets the programmer data field of the Shape. The programmer can store any Lua object in this field. Returns ''self''. | ||
+ | |||
+ | Introduced in platform.apiLevel = '2.0' | ||
+ | |||
+ | ---- | ||
+ | ===== setFriction ===== | ||
+ | |||
+ | |||
+ | <!-- code start--> | ||
+ | <pre style="margin-left:20px; font-size:1.4em; background-color:#fdfdfd"> | ||
+ | self = physics.Shape:setFriction(f) | ||
+ | </pre><!-- code end--> | ||
+ | |||
+ | |||
+ | <!-- table start --> | ||
+ | {| border=1 width="100%" cellspacing="0" cellpadding="4" style="border-color:#eee" class="wikitable" | ||
+ | <!-- header row start --> | ||
+ | ! Parameter !! Type !! Description | ||
+ | <!-- header row end --> | ||
+ | |- | ||
+ | | self | ||
+ | | '''in''' physics.Shape | ||
+ | | The input Shape | ||
+ | |- | ||
+ | | f | ||
+ | | '''in''' number | ||
+ | | Coefficient of friction for the surface of the Shape | ||
+ | |- | ||
+ | | self | ||
+ | | '''out''' physics.Shape | ||
+ | | The input Shape is returned as the output | ||
+ | |}<!-- table end --> | ||
+ | |||
+ | <br/> | ||
+ | Sets the friction coefficient for the shape. Returns ''self''. | ||
+ | {| width="100%" style="padding: 20px; margin-left:20px; border:solid; border-color:#aaa; border-width:0px; text-align:left; background-color:#FFFFCE;" | ||
+ | |- | ||
+ | | <span style="color:#AAAA00">'''NOTE'''</span><hr> | ||
+ | |- | ||
+ | |||
+ | <div style="white-space: pre"> | ||
+ | |||
+ | May not behave as expected for f larger than 1.0 or less than 0. | ||
+ | |||
+ | </div> | ||
+ | |} | ||
+ | <br/> | ||
+ | |||
+ | |||
+ | |||
+ | Introduced in platform.apiLevel = '2.0' | ||
+ | |||
+ | ---- | ||
+ | ===== setGroup ===== | ||
+ | |||
+ | |||
+ | <!-- code start--> | ||
+ | <pre style="margin-left:20px; font-size:1.4em; background-color:#fdfdfd"> | ||
+ | self = physics.Shape:setGroup(group) | ||
+ | </pre><!-- code end--> | ||
+ | |||
+ | |||
+ | <!-- table start --> | ||
+ | {| border=1 width="100%" cellspacing="0" cellpadding="4" style="border-color:#eee" class="wikitable" | ||
+ | <!-- header row start --> | ||
+ | ! Parameter !! Type !! Description | ||
+ | <!-- header row end --> | ||
+ | |- | ||
+ | | self | ||
+ | | '''in''' physics.Shape | ||
+ | | The input Shape | ||
+ | |- | ||
+ | | group | ||
+ | | '''in''' number | ||
+ | | Group number | ||
+ | |- | ||
+ | | self | ||
+ | | '''out''' physics.Shape | ||
+ | | The input Shape is returned as the output | ||
+ | |}<!-- table end --> | ||
+ | |||
+ | <br/> | ||
+ | Sets the group (a number defined by the programmer) of the shape. Shapes in the same group do not generate collisions. Returns ''self''. | ||
+ | {| width="100%" style="padding: 20px; margin-left:20px; border:solid; border-color:#aaa; border-width:0px; text-align:left; background-color:#FFFFCE;" | ||
+ | |- | ||
+ | | <span style="color:#AAAA00">'''NOTE'''</span><hr> | ||
+ | |- | ||
+ | |||
+ | <div style="white-space: pre"> | ||
+ | |||
+ | The group number is converted to a positive whole number when stored. | ||
+ | |||
+ | </div> | ||
+ | |} | ||
+ | <br/> | ||
+ | |||
+ | Introduced in platform.apiLevel = '2.0' | ||
+ | |||
+ | ---- | ||
+ | ===== setLayers ===== | ||
+ | |||
+ | |||
+ | <!-- code start--> | ||
+ | <pre style="margin-left:20px; font-size:1.4em; background-color:#fdfdfd"> | ||
+ | self = physics.Shape:setLayers(layers) | ||
+ | </pre><!-- code end--> | ||
+ | |||
+ | |||
+ | <!-- table start --> | ||
+ | {| border=1 width="100%" cellspacing="0" cellpadding="4" style="border-color:#eee" class="wikitable" | ||
+ | <!-- header row start --> | ||
+ | ! Parameter !! Type !! Description | ||
+ | <!-- header row end --> | ||
+ | |- | ||
+ | | self | ||
+ | | '''in''' physics.Shape | ||
+ | | The input Shape | ||
+ | |- | ||
+ | | layers | ||
+ | | '''in''' number | ||
+ | | A bitmap of integer layer numbers. This implementation permits 32 layers | ||
+ | |- | ||
+ | | self | ||
+ | | '''out''' physics.Shape | ||
+ | | The input Shape is returned as the output | ||
+ | |}<!-- table end --> | ||
+ | |||
+ | <br/> | ||
+ | Sets the layers that the shape inhabits. Shapes only collide if they are in the same layer. ''layers'' is an integer bitmap of all the layers that the shape occupies. Returns ''self''. | ||
+ | |||
+ | Introduced in platform.apiLevel = '2.0' | ||
+ | |||
+ | ---- | ||
+ | ===== setRestitution ===== | ||
+ | |||
+ | |||
+ | <!-- code start--> | ||
+ | <pre style="margin-left:20px; font-size:1.4em; background-color:#fdfdfd"> | ||
+ | self = physics.Shape:setRestitution(r) | ||
+ | </pre><!-- code end--> | ||
+ | |||
+ | |||
+ | <!-- table start --> | ||
+ | {| border=1 width="100%" cellspacing="0" cellpadding="4" style="border-color:#eee" class="wikitable" | ||
+ | <!-- header row start --> | ||
+ | ! Parameter !! Type !! Description | ||
+ | <!-- header row end --> | ||
+ | |- | ||
+ | | self | ||
+ | | '''in''' physics.Shape | ||
+ | | The input Shape | ||
+ | |- | ||
+ | | r | ||
+ | | '''in''' number | ||
+ | | The new value for the shape's restitution | ||
+ | |- | ||
+ | | self | ||
+ | | '''out''' physics.Shape | ||
+ | | The input Shape is returned as the output | ||
+ | |}<!-- table end --> | ||
+ | |||
+ | <br/> | ||
+ | Sets the restitution (or elasticity) of the shape. A value of 0.0 gives no bounce and a value of 1.0 gives a perfect bounce. Returns ''self''. | ||
+ | {| width="100%" style="padding: 20px; margin-left:20px; border:solid; border-color:#aaa; border-width:0px; text-align:left; background-color:#FFFFCE;" | ||
+ | |- | ||
+ | | <span style="color:#AAAA00">'''NOTE'''</span><hr> | ||
+ | |- | ||
+ | |||
+ | <div style="white-space: pre"> | ||
+ | |||
+ | May not behave as expected for r larger than 1.0 or less than 0. | ||
+ | |||
+ | </div> | ||
+ | |} | ||
+ | <br/> | ||
+ | |||
+ | ---- | ||
+ | ===== setSensor ===== | ||
+ | |||
+ | |||
+ | <!-- code start--> | ||
+ | <pre style="margin-left:20px; font-size:1.4em; background-color:#fdfdfd"> | ||
+ | self = physics.Shape:setSensor(bool) | ||
+ | </pre><!-- code end--> | ||
+ | |||
+ | |||
+ | <!-- table start --> | ||
+ | {| border=1 width="100%" cellspacing="0" cellpadding="4" style="border-color:#eee" class="wikitable" | ||
+ | <!-- header row start --> | ||
+ | ! Parameter !! Type !! Description | ||
+ | <!-- header row end --> | ||
+ | |- | ||
+ | | self | ||
+ | | '''in''' physics.Shape | ||
+ | | The input Shape | ||
+ | |- | ||
+ | | bool | ||
+ | | '''in''' boolean | ||
+ | | True if the shape is a sensor | ||
+ | |- | ||
+ | | self | ||
+ | | '''out''' physics.Shape | ||
+ | | The input Shape is returned as the output | ||
+ | |}<!-- table end --> | ||
+ | |||
+ | <br/> | ||
+ | Determines if the shape is a sensor (true) or not (false). Sensors call [[#CollisionHandler|collision handlers]] but do not generate collisions. Returns ''self''. | ||
+ | |||
+ | Introduced in platform.apiLevel = '2.0' | ||
+ | |||
+ | ---- | ||
+ | ===== setSurfaceV ===== | ||
+ | |||
+ | |||
+ | <!-- code start--> | ||
+ | <pre style="margin-left:20px; font-size:1.4em; background-color:#fdfdfd"> | ||
+ | self = physics.Shape:setSurfaceV(vel) | ||
+ | </pre><!-- code end--> | ||
+ | |||
+ | |||
+ | <!-- table start --> | ||
+ | {| border=1 width="100%" cellspacing="0" cellpadding="4" style="border-color:#eee" class="wikitable" | ||
+ | <!-- header row start --> | ||
+ | ! Parameter !! Type !! Description | ||
+ | <!-- header row end --> | ||
+ | |- | ||
+ | | self | ||
+ | | '''in''' physics.Shape | ||
+ | | The input Shape | ||
+ | |- | ||
+ | | vel | ||
+ | | '''in''' physics.Vect | ||
+ | | The new vector for the surface velocity | ||
+ | |- | ||
+ | | self | ||
+ | | '''out''' physics.Shape | ||
+ | | The input Shape is returned as the output | ||
+ | |}<!-- table end --> | ||
+ | |||
+ | <br/> | ||
+ | Sets the surface velocity of the shape. Returns ''self''. | ||
+ | |||
+ | Introduced in platform.apiLevel = '2.0' | ||
+ | |||
+ | ---- | ||
+ | ===== surfaceV ===== | ||
+ | |||
+ | |||
+ | <!-- code start--> | ||
+ | <pre style="margin-left:20px; font-size:1.4em; background-color:#fdfdfd"> | ||
+ | sv = physics.Shape:surfaceV() | ||
+ | </pre><!-- code end--> | ||
+ | |||
+ | |||
+ | <!-- table start --> | ||
+ | {| border=1 width="100%" cellspacing="0" cellpadding="4" style="border-color:#eee" class="wikitable" | ||
+ | <!-- header row start --> | ||
+ | ! Parameter !! Type !! Description | ||
+ | <!-- header row end --> | ||
+ | |- | ||
+ | | self | ||
+ | | '''in''' physics.Shape | ||
+ | | The input Shape | ||
+ | |- | ||
+ | | sv | ||
+ | | '''out''' physics.Vect | ||
+ | | The surface velocity of the Shape | ||
+ | |}<!-- table end --> | ||
+ | |||
+ | <br/> | ||
+ | Returns the surface velocity [[#vector|vector]] of the shape. | ||
+ | |||
+ | Introduced in platform.apiLevel = '2.0' | ||
[[Category:Physics_Engine]] | [[Category:Physics_Engine]] |
Latest revision as of 09:46, 18 July 2012
Shapes contain the surface properties of an object such as how much friction or elasticity it has. All collision shapes implement the following accessor routines.
Contents
BB
bb = physics.Shape:BB()
Parameter | Type | Description |
---|---|---|
self | in physics.Shape | The input Shape |
bb | in physics.BB | Bounding box of the Shape |
Returns the bounding box of the shape.
Introduced in platform.apiLevel = '2.0'
body
body = physics.Shape:body()
Parameter | Type | Description |
---|---|---|
self | in physics.Shape | The input Shape |
body | out physics.Body | The Body associated with the Shape |
Returns the body attached to the shape. If the shape is static, then it will return nil.
Introduced in platform.apiLevel = '2.0'
collisionType
coll = physics.Shape:collisionType()
Parameter | Type | Description |
---|---|---|
self | in physics.Shape | The input Shape |
coll | out number | The programmer-assigned integer collision type |
Returns the integer collision type of the Shape.
Introduced in platform.apiLevel = '2.0'
data
obj = physics.Shape:data()
Parameter | Type | Description |
---|---|---|
self | in physics.Shape | The input Shape |
obj | out Lua object | The programmer-assigned data object assigned to this Shape |
Returns the contents of the programmer data field of the Shape.
Introducted in platform.apiLevel = '2.0'
friction
f = physics.Shape:friction()
Parameter | Type | Description |
---|---|---|
self | in physics.Shape | The input Shape |
f | out number | The coefficient of friction for this Shape |
Returns the friction coefficient of the shape.
Introduced in platform.apiLevel = '2.0'
group
g = physics.Shape:group()
Parameter | Type | Description |
---|---|---|
self | in physics.Shape | The input Shape |
g | out number | The assigned group number |
Returns the group number of the shape.
The group number is converted to a positive whole number when stored.
NOTE |
Introduced in platform.apiLevel = '2.0'
layers
layers = physics.Shape:layers()
Parameter | Type | Description |
---|---|---|
self | in physics.Shape | The input Shape |
layers | out number | A bitmap of the layers this shape occupies |
Returns the bitmap of layers the shape occupies.
Introduced in platform.apiLevel = '2.0'
rawBB
bb = physics.Shape:rawBB()
Parameter | Type | Description |
---|---|---|
self | in physics.Shape | The input Shape |
bb | out physics.BB | The bounding box of the Shape |
Returns the bounding box of the shape. Only valid after a call to physics.Shape:BB() or physics.Space:step().
Introduced in platform.apiLevel = '2.0'
restitution
r = physics.Shape:restitution()
Parameter | Type | Description |
---|---|---|
self | in physics.Shape | The input Shape |
r | out number | The restitution of the Shape |
Returns the restitution (or elasticity) of the shape.
Introduced in platform.apiLevel = '2.0'
sensor
s = physics.Shape:sensor()
Parameter | Type | Description |
---|---|---|
self | in physics.Shape | The input Shape |
s | out boolean | True if the Shape is a sensor |
Returns true if the shape is a sensor.
Introduced in platform.apiLevel = '2.0'
setCollisionType
self = physics.Shape:setCollisionType(collisionType)
Parameter | Type | Description |
---|---|---|
self | in physics.Shape | The input Shape |
collisionType | in number | Programmer-defined type of collision |
self | out physics.Shape | The input Shape is returned as the output |
Assigns a collision type (an integer value of your choosing) to the shape. It is used to determine which handler to call when a collision occurs. Returns self.
Introduced in platform.apiLevel = '2.0'
setData
self = physics.Shape:setData(obj)
Parameter | Type | Description |
---|---|---|
self | in physics.Shape | The input Shape |
obj | in Lua object | An object defined by the programmer |
self | out physics.Shape | The input Shape is returned as the output |
Sets the programmer data field of the Shape. The programmer can store any Lua object in this field. Returns self.
Introduced in platform.apiLevel = '2.0'
setFriction
self = physics.Shape:setFriction(f)
Parameter | Type | Description |
---|---|---|
self | in physics.Shape | The input Shape |
f | in number | Coefficient of friction for the surface of the Shape |
self | out physics.Shape | The input Shape is returned as the output |
Sets the friction coefficient for the shape. Returns self.
May not behave as expected for f larger than 1.0 or less than 0.
NOTE |
Introduced in platform.apiLevel = '2.0'
setGroup
self = physics.Shape:setGroup(group)
Parameter | Type | Description |
---|---|---|
self | in physics.Shape | The input Shape |
group | in number | Group number |
self | out physics.Shape | The input Shape is returned as the output |
Sets the group (a number defined by the programmer) of the shape. Shapes in the same group do not generate collisions. Returns self.
The group number is converted to a positive whole number when stored.
NOTE |
Introduced in platform.apiLevel = '2.0'
setLayers
self = physics.Shape:setLayers(layers)
Parameter | Type | Description |
---|---|---|
self | in physics.Shape | The input Shape |
layers | in number | A bitmap of integer layer numbers. This implementation permits 32 layers |
self | out physics.Shape | The input Shape is returned as the output |
Sets the layers that the shape inhabits. Shapes only collide if they are in the same layer. layers is an integer bitmap of all the layers that the shape occupies. Returns self.
Introduced in platform.apiLevel = '2.0'
setRestitution
self = physics.Shape:setRestitution(r)
Parameter | Type | Description |
---|---|---|
self | in physics.Shape | The input Shape |
r | in number | The new value for the shape's restitution |
self | out physics.Shape | The input Shape is returned as the output |
Sets the restitution (or elasticity) of the shape. A value of 0.0 gives no bounce and a value of 1.0 gives a perfect bounce. Returns self.
May not behave as expected for r larger than 1.0 or less than 0.
NOTE |
setSensor
self = physics.Shape:setSensor(bool)
Parameter | Type | Description |
---|---|---|
self | in physics.Shape | The input Shape |
bool | in boolean | True if the shape is a sensor |
self | out physics.Shape | The input Shape is returned as the output |
Determines if the shape is a sensor (true) or not (false). Sensors call collision handlers but do not generate collisions. Returns self.
Introduced in platform.apiLevel = '2.0'
setSurfaceV
self = physics.Shape:setSurfaceV(vel)
Parameter | Type | Description |
---|---|---|
self | in physics.Shape | The input Shape |
vel | in physics.Vect | The new vector for the surface velocity |
self | out physics.Shape | The input Shape is returned as the output |
Sets the surface velocity of the shape. Returns self.
Introduced in platform.apiLevel = '2.0'
surfaceV
sv = physics.Shape:surfaceV()
Parameter | Type | Description |
---|---|---|
self | in physics.Shape | The input Shape |
sv | out physics.Vect | The surface velocity of the Shape |
Returns the surface velocity vector of the shape.
Introduced in platform.apiLevel = '2.0'
Subcategories
This category has the following 3 subcategories, out of 3 total.