Difference between revisions of "R3d.Body:createFixture"
From GiderosMobile
| Line 5: | Line 5: | ||
Creates a new fixture. | Creates a new fixture. | ||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
| − | (fixture) = r3d.Body:createFixture(shape,transform,mass) | + | (fixture) = r3d.Body:createFixture(shape[,transform,mass]) |
</syntaxhighlight> | </syntaxhighlight> | ||
=== Parameters === | === Parameters === | ||
'''shape''': (r3d.Shape) the r3d shape of the fixture (one of '''[[R3d.Shape]]''')<br/> | '''shape''': (r3d.Shape) the r3d shape of the fixture (one of '''[[R3d.Shape]]''')<br/> | ||
| − | '''transform''': (matrix) the initial position and orientation of the fixture relative to the body<br/> | + | '''transform''': (matrix) the initial position and orientation of the fixture relative to the body, '''optional default = 0,0,0'''<br/> |
| − | '''mass''': (number) the mass of the fixture<br/> | + | '''mass''': (number) the mass of the fixture, '''optional default = 1 kg'''<br/> |
=== Example === | === Example === | ||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
| − | local | + | -- mesh |
| − | + | local mesh = D3.Cube.new(params.sizex, params.sizey, params.sizez, Sprite.CULL_NONE) | |
| − | local | + | mesh:setCullMode(params.cullmode) |
| − | + | mesh:mapTexture(params.tex, params.texw, params.texh) | |
| − | + | mesh:updateMode( D3.Mesh.MODE_LIGHTING | D3.Mesh.MODE_SHADOW ) | |
| − | + | -- put it in a viewport so we can matrix it | |
| − | local | + | local viewport = Viewport.new() |
| − | + | viewport:setContent(mesh) | |
| − | local fixture = | + | -- transform |
| + | local matrix = viewport:getMatrix() | ||
| + | matrix:setPosition(params.posx, params.posy, params.posz) | ||
| + | matrix:setRotationX(params.rotx) | ||
| + | matrix:setRotationY(params.roty) | ||
| + | matrix:setRotationZ(params.rotz) | ||
| + | viewport:setMatrix(matrix) | ||
| + | -- r3d body | ||
| + | viewport.body = world:createBody(matrix) | ||
| + | viewport.body:setType(params.type) | ||
| + | viewport.body.id = "cube" | ||
| + | local shape = r3d.BoxShape.new(params.sizex, params.sizey, params.sizez) | ||
| + | local transform = Matrix.new() | ||
| + | transform:setY(-params.sizey/2) | ||
| + | transform:setRotation(params.rotx) | ||
| + | transform:setRotationY(params.roty) | ||
| + | transform:setRotationZ(params.rotz) | ||
| + | local fixture = viewport.body:createFixture(shape, transform, 1) -- shape, transform, mass | ||
</syntaxhighlight> | </syntaxhighlight> | ||
{{R3d.Body}} | {{R3d.Body}} | ||
Latest revision as of 08:51, 18 December 2025
Available since: Gideros 2019.10
Class: R3d.Body
Description
Creates a new fixture.
(fixture) = r3d.Body:createFixture(shape[,transform,mass])
Parameters
shape: (r3d.Shape) the r3d shape of the fixture (one of R3d.Shape)
transform: (matrix) the initial position and orientation of the fixture relative to the body, optional default = 0,0,0
mass: (number) the mass of the fixture, optional default = 1 kg
Example
-- mesh
local mesh = D3.Cube.new(params.sizex, params.sizey, params.sizez, Sprite.CULL_NONE)
mesh:setCullMode(params.cullmode)
mesh:mapTexture(params.tex, params.texw, params.texh)
mesh:updateMode( D3.Mesh.MODE_LIGHTING | D3.Mesh.MODE_SHADOW )
-- put it in a viewport so we can matrix it
local viewport = Viewport.new()
viewport:setContent(mesh)
-- transform
local matrix = viewport:getMatrix()
matrix:setPosition(params.posx, params.posy, params.posz)
matrix:setRotationX(params.rotx)
matrix:setRotationY(params.roty)
matrix:setRotationZ(params.rotz)
viewport:setMatrix(matrix)
-- r3d body
viewport.body = world:createBody(matrix)
viewport.body:setType(params.type)
viewport.body.id = "cube"
local shape = r3d.BoxShape.new(params.sizex, params.sizey, params.sizez)
local transform = Matrix.new()
transform:setY(-params.sizey/2)
transform:setRotation(params.rotx)
transform:setRotationY(params.roty)
transform:setRotationZ(params.rotz)
local fixture = viewport.body:createFixture(shape, transform, 1) -- shape, transform, mass
- R3d.Body
- R3d.Body.DYNAMIC BODY
- R3d.Body.KINEMATIC BODY
- R3d.Body.STATIC BODY
- R3d.Body:applyLocalForceAtCenterOfMass
- R3d.Body:applyLocalForceAtLocalPosition
- R3d.Body:applyLocalForceAtWorldPosition
- R3d.Body:applyLocalTorque
- R3d.Body:applyWorldForceAtCenterOfMass
- R3d.Body:applyWorldForceAtLocalPosition
- R3d.Body:applyWorldForceAtWorldPosition
- R3d.Body:applyWorldTorque
- R3d.Body:createFixture
- R3d.Body:destroyFixture
- R3d.Body:enableGravity
- R3d.Body:getAngularDamping
- R3d.Body:getAngularVelocity
- R3d.Body:getForce
- R3d.Body:getLinearDamping
- R3d.Body:getLinearVelocity
- R3d.Body:getMass
- R3d.Body:getTorque
- R3d.Body:getTransform
- R3d.Body:raycast
- R3d.Body:resetForce
- R3d.Body:resetTorque
- R3d.Body:setAngularDamping
- R3d.Body:setAngularLockAxisFactor
- R3d.Body:setAngularVelocity
- R3d.Body:setIsActive
- R3d.Body:setIsAllowedToSleep
- R3d.Body:setIsSleeping
- R3d.Body:setLinearDamping
- R3d.Body:setLinearLockAxisFactor
- R3d.Body:setLinearVelocity
- R3d.Body:setMass
- R3d.Body:setTransform
- R3d.Body:setType
- R3d.Body:testPointInside