PolyMesh

This function creates s new polymesh shape.

Syntax

Parameters

Returns

Returns a new shape.

Remarks

A polymesh shape will collide with other objects, but does not move, i.e. it will react as if the mass is zero. If you want to create a shape from a surface that is physically reactive, use the Shape::ConvexHull() or Shape::ConvexDecomposition() functions.

Example

window=Window:Create()
context=Context:Create(window)
world=World:Create()
camera = Camera:Create()
camera:SetRotation(35,0,0)
camera:Move(0,0,-10)
light = DirectionalLight:Create()
light:SetRotation(35,35,0)

--Create the ground
local ground = Model:Box(10,1,10)
ground:SetPosition(0,-.05,0)
ground:SetColor(0,1,0)

--Create a shape
local shape = Shape:Box(0,0,0, 0,0,0, 10,1,10)
ground:SetShape(shape)
shape:Release()

--Load a model
local model = Model:Load("Models/Grass/grass01.mdl")
model:SetPosition(0,0,0)
model:SetColor(0,0,1)
model:SetScale(4,4,4)


--Create a shape
shape = Shape:PolyMesh((model:GetSurface(0)))
model:SetShape(shape)
model:SetPosition(0,0,0)
shape:Release()

--Create some objects to fall
model = Model:Sphere()
shape = Shape:Sphere()
model:SetShape(shape)
shape:Release()
model:SetMass(1)
model:SetColor(Math:Random(0,1),Math:Random(0,1),Math:Random(0,1))
model:SetPosition(Math:Random(-1,1),Math:Random(3,6),Math:Random(-1,1),true)

for i=0, 9 do
model = tolua.cast(model:Instance(),"Model")
model:SetCollisionType(Collision.Prop)
model:SetColor(Math:Random(0,1),Math:Random(0,1),Math:Random(0,1))
model:SetPosition(Math:Random(-1,1),5+i*2,Math:Random(-1,1),true)
end
while true do
if window:Closed() or window:KeyHit(Key.Escape) then return false end

Time:Update()
world:Update()
world:Render()
context:Sync()

end