All pages
Powered by GitBook
1 of 1

Loading...

SVector

Index

Functions Index

Function

Properties Index

Property

Functions

Add

SVector Add (SVector other) SVector Add (float other)

Adds this Vector

Parameter
Type
Description

Scale

SVector Scale (SVector other) SVector Scale (float other)

Multiplies this Vector

Parameter
Type
Description

Divide

SVector Divide (SVector other) SVector Divide (float other)

Divides this Vector

Parameter
Type
Description

Distance

float Distance (SVector other)

Returns the distance between this vector and other in meters

Parameter
Type
Description

SquareDistance

float SquareDistance (SVector other)

Returns the square of the distance between this vector and other in meters, considerably faster than distance()

Parameter
Type
Description

InRange

bool InRange (SVector other, float range)

Returns if other is within range meters of this vector, inclusive

Parameter
Type
Description

Cross

SVector Cross (SVector other)

Returns the cross product of this vector and other

Parameter
Type
Description

Lerp

SVector Lerp (SVector other, float t)

Linear interpolates between this and other based on factor t (0-1)

Parameter
Type
Description

Slerp

SVector Slerp (SVector other, float t)

Spherically linear interpolates between this and other based on factor t (0-1)

Parameter
Type
Description

MoveTowards

SVector MoveTowards (SVector other, float maxDistance)

Moves this vector closer to other by a maximum of maxDistance units

Parameter
Type
Description

Dot

float Dot (SVector other)

Returns the dot product between this and other (note - normalise your vectors first!

Parameter
Type
Description

Equals

bool Equals (SVector other)

Function Description

Parameter
Type
Description

ToString

string ToString ()

Function Description

New

static SVector New (float x, float y, float z)

Initialises vector from three floats

Parameter
Type
Description

operator+

static SVector operator+ (SVector a, SVector b) static SVector operator+ (SVector a, float b)

Function Description

Parameter
Type
Description

operator-

static SVector operator- (SVector a, SVector b) static SVector operator- (SVector a, float b)

Function Description

Parameter
Type
Description

operator*

static SVector operator* (SVector a, SVector b) static SVector operator* (SVector a, float b)

Function Description

Parameter
Type
Description

operator/

static SVector operator/ (SVector a, SVector b) static SVector operator/ (SVector a, float b)

Function Description

Parameter
Type
Description

Properties

X

float X get set

X axis (red axis)

Y

float Y get set

Y axis (green axis)

Z

float Z get set

Z axis (blue axis)

Magnitude

float Magnitude get

Returns the magnitude of this vector

Normalised

SVector Normalised get

Returns the normalised version of this vector

Up

static SVector Up get

Equivalent of new SVector(0,1,0)

Down

static SVector Down get

Equivalent of new SVector(0,-1,0)

Left

static SVector Left get

Equivalent of new SVector(-1,0,0)

Right

static SVector Right get

Equivalent of new SVector(1,0,0)

Forward

static SVector Forward get

Equivalent of new SVector(0,0,1)

Back

static SVector Back get

Equivalent of new SVector(0,0,-1)

Zero

static SVector Zero get

Equivalent of new SVector(0,0,0)

One

static SVector One get

Equivalent of new SVector(1,1,1)

MaxValue

static SVector MaxValue get

Contains the largest possible vector [3.402823E+38, 3.402823E+38, 3.402823E+38]

MinValue

static SVector MinValue get

Contains the largest possible negative vector

string ()

Static Functions

static SVector (float x, float y, float z)

static SVector + (SVector a, SVector b) static SVector + (SVector a, float b)

static SVector - (SVector a, SVector b) static SVector - (SVector a, float b)

static SVector * (SVector a, SVector b) static SVector * (SVector a, float b)

static SVector / (SVector a, SVector b) static SVector / (SVector a, float b)

static SVector get

static SVector get

static SVector get

static SVector get

static SVector get

static SVector get

static SVector get

SVector Add (SVector other) SVector Add (float other)

SVector Scale (SVector other) SVector Scale (float other)

SVector Divide (SVector other) SVector Divide (float other)

float Distance (SVector other)

float SquareDistance (SVector other)

bool InRange (SVector other, float range)

SVector Cross (SVector other)

SVector Lerp (SVector other, float t)

SVector Slerp (SVector other, float t)

SVector MoveTowards (SVector other, float maxDistance)

float Dot (SVector other)

float X get set

float Y get set

float Z get set

float Magnitude get

SVector Normalised get

Static Properties

static SVector Up get

static SVector Down get

bool (SVector other)

static SVector get

local vector = Vector.New(0, 10, 0);
local vectorOther = Vector.New(40, 50, 6);
Space.Log(vector.Add(vectorOther));
-- prints [40, 60, 6]

Space.Log(vector + vectorOther);
-- prints [40, 60, 6]
local vectorB = Vector.New(0, 10, 0);
Space.Log(vectorB.Add(5));
-- prints [5, 15, 5]
local vector = Vector.New(0, 10, 0);
local vectorOther = Vector.New(2, 5, 4);
Space.Log(vector.Scale(vectorOther));
-- prints [0, 50, 0]

Space.Log(vector * vectorOther);
-- prints [0, 50, 0]
local vector = Vector.New(0, 10, 0);
Space.Log(vector.Scale(5));
-- prints [0, 50, 0]

Space.Log(vector * 5);
-- prints [0, 50, 0]
local vector = Vector.New(10, 10, 10);
local vectorOther = Vector.New(2, 2, 2);
Space.Log(vector.Divide(vectorOther));
-- prints [5, 5, 5]

Space.Log(vector / vectorOther);
-- prints [5, 5, 5]
local vector = Vector.New(10, 10, 10);
Space.Log(vector.Divide(2));
-- prints [5, 5, 5]

Space.Log(vector / 2);
-- prints [5, 5, 5]
local vector = Vector.New(3, 3, 3.5);
local vectorOther = Vector.New(2, 2, 2);
Space.Log(vector.Distance(vectorOther));
-- prints 2.06155276298523
--the below script will change the objects color to green if you are near the object 
--and change color to red if you are far from the object 

thisGameObject = Space.Host.ExecutingObject

function OnUpdate()
  positionAvatar = Space.Scene.PlayerAvatar.GameObject.WorldPosition
  positionObject = thisGameObject.WorldPosition
  
     if positionAvatar.Distance(positionObject) < 5 then
         thisGameObject.Renderer.Material.SetColor("_Color",0,1,0,1)
      else
         thisGameObject.Renderer.Material.SetColor("_Color",1,0,0,1)
      end
  
end  

thisGameObject.OnUpdate(OnUpdate)
local vector = Vector.New(3, 3, 3.5);
local vectorOther = Vector.New(2, 2, 2);
Space.Log(vector.SquareDistance(vectorOther));
-- prints 4.25
--the below script will change the objects color to green if you are near the object 
--and change color to red if you are far from the object 

thisGameObject = Space.Host.ExecutingObject

function OnUpdate()
  positionAvatar = Space.Scene.PlayerAvatar.GameObject.WorldPosition
  positionObject = thisGameObject.WorldPosition
  
     if positionAvatar.SquareDistance(positionObject) < 25 then
         thisGameObject.Renderer.Material.SetColor("_Color",0,1,0,1)
      else
         thisGameObject.Renderer.Material.SetColor("_Color",1,0,0,1)
      end
  
end  

thisGameObject.OnUpdate(OnUpdate)
local vector = Vector.New(370, 30, 0);
local vectorOther = Vector.New(372, 30, 0);
Space.Log(vector.InRange(vectorOther, 2.0));
-- prints True

local vector2 = Vector.New(80, 30, 20);
local vectorOther2 = Vector.New(1, 15, 25);
Space.Log(vector2.InRange(vectorOther2, 1.0));
-- prints False
--the below script will change the objects color to green if you are near the object 
--and change color to red if you are far from the object 
--(example: motion sensor lights)

thisGameObject = Space.Host.ExecutingObject

function OnUpdate()
  positionAvatar = Space.Scene.PlayerAvatar.GameObject.WorldPosition
  positionObject = thisGameObject.WorldPosition
  
     if positionAvatar.InRange(positionObject, 5.0) then
         thisGameObject.Renderer.Material.SetColor("_Color",0,1,0,1)
      else
         thisGameObject.Renderer.Material.SetColor("_Color",1,0,0,1)
      end
  
end  

thisGameObject.SubscribeToEvents()
thisGameObject.OnUpdate(OnUpdate)
local vector = Vector.New(0, 1, 0);
local vectorOther = Vector.New(1, 0, 0);
Space.Log(vector.Cross(vectorOther));
-- prints [0, 0, -1]
lerpVector = currentVector.Lerp(targetVector, 0.5)
-- Lua Translation of Unity C# Documentation

--[["StartMarker" and "EndMaker" are game objects set up as endpoints.
These objects are attached to the script in the Object Reference section.
The name fields in that section should match these names for the example. --]]
local startMarker = Space.Host.GetReference("StartMarker");
local endMarker = Space.Host.GetReference("EndMarker");
local ball = Space.Host.ExecutingObject;
local speed = 1.0;
local startTime;
local journeyLength;
ball.SubscribeToEvents();

local onStartMethod = function()
  startTime = Space.Time;
  journeyLength = startMarker.LocalPosition.Distance(endMarker.LocalPosition);
end

-- This ball object will move from the start endpoint object to the end endpoint.
local moveBall = function()
  local distCovered = (Space.Time - startTime) * speed;
  local fracJourney = distCovered / journeyLength;
  ball.LocalPosition = startMarker.LocalPosition.Lerp(endMarker.LocalPosition, fracJourney);
end

ball.OnStart(onStartMethod);
ball.OnUpdate(moveBall);
slerpVector = currentVector.Slerp(targetVector, 0.5)
-- Lua Translation of Unity C# Documentation

--[["Sunrise" and "Sunset" are game objects set up as endpoints.
These objects are attached to the script in the Object Reference section.
The name fields in that section should match these names for the example. --]]
local sunrise = Space.Host.GetReference("Sunrise");
local sunset = Space.Host.GetReference("Sunset");

local ball = Space.Host.ExecutingObject;
local startTime;
local journeyTime = 1.0;
ball.SubscribeToEvents();

local onStartMethod = function()
  startTime = Space.Time;
end

-- This ball object will move from the start endpoint object to the end endpoint.
local moveBall = function()
  local center = (sunrise.LocalPosition + sunset.LocalPosition) * 0.5;
  center = center - Vector.Up;
  local riseRelCenter = sunrise.LocalPosition - center;
  local setRelCenter = sunset.LocalPosition - center;
  local fracComplete = (Space.Time - startTime) / journeyTime;

  ball.LocalPosition = riseRelCenter.Slerp(setRelCenter, fracComplete);
  ball.LocalPosition = ball.LocalPosition + center;
end

ball.OnStart(onStartMethod);
ball.OnUpdate(moveBall);
newVector = currentVector.MoveTowards(targetVector)
-- Lua Translation of Unity C# Documentation

--[["Target" is a game object set up as a target position.
This object is attached to the script in the Object Reference section.
The name field in that section should match this name for the example. --]]
local target = Space.Host.GetReference("Target");

local ball = Space.Host.ExecutingObject;
local speed = 1.0;Vecto

local onStartMethod = function()
  startTime = Space.Time;
end

-- This ball object will move towards the target. Negative values for
-- the maxDistance parameter will push the ball away from the target.
local moveBall = function()
  local step = speed * Space.DeltaTime;
  ball.LocalPosition = ball.LocalPosition.MoveTowards(target.LocalPosition, step);
end

ball.OnStart(onStartMethod);
ball.OnUpdate(moveBall);

-- NOTE: If you use MoveTowards, the movement will not overshoot the target.
local vectorA = Vector.New(0, 1, 0);
local vectorOtherA = Vector.New(1, 0, 0);
Space.Log(vectorA.Dot(vectorOtherA));
-- prints 0

local vectorB = Vector.New(0, 1, 0);
local vectorOtherB = Vector.New(0, 1, 0);
Space.Log(vectorB.Dot(vectorOtherB));
-- prints 1

local vectorC = Vector.New(0, 1, 0);
local vectorOtherC = Vector.New(0, -1, 0);
Space.Log(vectorC.Dot(vectorOtherC));
-- prints -1
isEqual = Vector.Up.Equals( Vector.New(0,1,0) )
stringVector = Vector.New(0,0,0).ToString()
newVector = Vector.New(0, 1, 0)
example 1
example 1
example 1
example 1
newVect = Vector.New(0,0,0)
newVect.X = 5.0
local obj = Space.Host.ExecutingObject;
local originalPos = obj.LocalPosition;
obj.SubscribeToEvents();

local onStartMethod = function()
  Space.Log(originalPos.x);
  -- prints the X axis position of this object as a float

  originalPos.x = 100.0;
  -- assigns 100.0 value to the X axis position of this object

  obj.LocalPosition = originalPos;
  -- sets the the new position
end

obj.OnStart(onStartMethod);
newVect = Vector.New(0,0,0)
newVect.Y = 5.0
local obj = Space.Host.ExecutingObject;
local originalPos = obj.LocalPosition;
obj.SubscribeToEvents();

local onStartMethod = function()
  Space.Log(originalPos.y);
  -- prints the Y axis position of this object as a float

  originalPos.y = 100.0;
  -- assigns 100.0 value to the Y axis position of this object

  obj.LocalPosition = originalPos;
  -- sets the the new position
end

obj.OnStart(onStartMethod);
newVect = Vector.New(0,0,0)
newVect.Z = 5.0
local obj = Space.Host.ExecutingObject
local originalPos = obj.LocalPosition

local onStartMethod = function()
  Space.Log(originalPos.z)
  -- prints the Z axis position of this object as a float

  originalPos.z = 100.0
  -- assigns 100.0 value to the Z axis position of this object

  obj.LocalPosition = originalPos
  -- sets the the new position
end

obj.OnStart(onStartMethod)
vector = Vector.New(1.0, 5.0, 0.0)
vectorMagnitude = vector.Magnitude
vector = Vector.New(0.0, 10.0, 0.0)
vectorNormalised = vector.Normalised
up = Vector.Up
--this script will make clicking this object move 2 units up on the world Y axis
thisObject = Space.Host.ExecutingObject

OnClick = function()
  
  thisObject.WorldPosition = thisObject.WorldPosition + (Vector.Up * 2)
  
end


thisObject.AddClickable()
thisObject.Clickable.OnClick(OnClick)
down = Vector.Down
--this script will make clicking this object move 2 units down on the world Y axis
thisObject = Space.Host.ExecutingObject

OnClick = function()
  
  thisObject.WorldPosition = thisObject.WorldPosition + (Vector.Down * 2)
  
end


thisObject.AddClickable()
thisObject.Clickable.OnClick(OnClick)
left = Vector.Left
--this script will make clicking this object move 2 units left on the world X axis
thisObject = Space.Host.ExecutingObject

OnClick = function()
  
  thisObject.WorldPosition = thisObject.WorldPosition + (Vector.Left * 2)
  
end


thisObject.AddClickable()
thisObject.Clickable.OnClick(OnClick)
right = Vector.Right
--this script will make clicking this object move 2 units right on the world X axis
thisObject = Space.Host.ExecutingObject

OnClick = function()
  
  thisObject.WorldPosition = thisObject.WorldPosition + (Vector.Right * 2)
  
end


thisObject.AddClickable()
thisObject.Clickable.OnClick(OnClick)
forward = Vector.Forward
--this script will make clicking this object move 2 units Forward on the world Z axis
thisObject = Space.Host.ExecutingObject

OnClick = function()
  
  thisObject.WorldPosition = thisObject.WorldPosition + (Vector.Forward * 2)
  
end


thisObject.AddClickable()
thisObject.Clickable.OnClick(OnClick)
back = Vector.Back
--this script will make clicking this object move 2 units Back on the world Z axis
thisObject = Space.Host.ExecutingObject

OnClick = function()
  
  thisObject.WorldPosition = thisObject.WorldPosition + (Vector.Back * 2)
  
end


thisObject.AddClickable()
thisObject.Clickable.OnClick(OnClick)
vectorZero  = Vector.Zero
--clicking this object move it to the center of the region <0,0,0>
thisObject = Space.Host.ExecutingObject

OnClick = function()

  thisObject.WorldPosition = Vector.Zero

end


thisObject.AddClickable()
thisObject.Clickable.OnClick(OnClick)
vectorOne = Vector.One
--clicking this object move it to the <1,1,1> coordinates of the region.
thisObject = Space.Host.ExecutingObject

OnClick = function()

  thisObject.WorldPosition = Vector.One

end


thisObject.AddClickable()
thisObject.Clickable.OnClick(OnClick)
vectorMaxValue = Vector.MaxValue
vectorMinValue = Vector.MinValue
Equals
ToString
New
operator
operator
operator
operator
operator
operator
operator
operator
Left
Right
Forward
Back
Zero
One
MaxValue
MinValue