Plane
This function transforms a plane from one space to another.
Syntax
- Plane Plane(Plane plane, Entity src, Entity dst)
- Plane Plane(Plane plane, Mat4 src, Mat4 dst)
- Plane Plane(number x, number y, number z, number w, Entity src, Entity dst)
- Plane Plane(number x,number y, number z,number w, Mat4 src, Mat4 dst)
Parameters
- plane: the plane to be transformed.
- x: the X component of the normal to be transformed.
- y: the Y component of the normal to be transformed.
- z: the Z component of the normal to be transformed.
- w: the W component of the normal to be transformed.
- src: the source entity or 4x4 matrix to transform the plane from.
- dst: the destination entity or 4x4 matrix to transform the plane to.
Returns
Returns the transformed plane.
Remarks
Due to the ambiguity of this command (the function and class of one member are both called "Plane") the function should always be called so that the individual components of the input plane are specific, when programming in Lua script. Use the third and fourth overloads of the function shown above in Lua.
Example
--Create a window
window = Window:Create()
context = Context:Create(window)
world = World:Create()
local camera = Camera:Create()
camera:Move(0,0,-3)
local light = DirectionalLight:Create()
light:SetRotation(35,35,0)
--Create a model
model = Model:Box()
model:SetColor(0.0,0.0,1.0)
model:SetPosition(3,0,0)
while true do
if window:Closed() or window:KeyHit(Key.Escape) then return false end
Time:Update()
world:Update()
world:Render()
--We're going to transform the plane (1,0,0,0) from global space to the model's local space
--Because the model is positioned at (3,0,0) the plane will be at (1,0,0,3) in local space (relative to the model).
local p = Transform:Plane(1,0,0,0,nil,model)
context:SetBlendMode(Blend.Alpha)
context:DrawText(p:ToString(),2,2)
context:SetBlendMode(Blend.Solid)
context:Sync()
end