Skip to content

CFrameTrack Module

A 3D line that describes the positions of your track in the workspace

Module

CFrameTrack {
    CFrameTrack : CFrameTrack,

    IsType : function,

    PointToPoint : PointToPointCFrameTrack,
    PointToPointBuilder : PointToPointCFrameTrackBuilder,

    PointToPoint2 : PointToPointCFrameTrack2,
    PointToPoint2Builder : PointToPointCFrameTrack2Builder,

    Create : function,
    CreateFromData : function,
    CreateFromInstance : function

    IsPoints: function,
    GetPointsFromInstance : function
}

Factory Pattern

The CFrameTrack module provides methods to use a factory pattern for the following functions.

Here's a list of the names used and their corresponding classes:

{
    PointToPoint = PointToPointCFrameTrack,
    PointToPoint2 = PointToPoint2CFrameTrack,
}

Create

CFrameTrack.Create(value: Instance or table) -> CFrameTrack

CreateFromData

CFrameTrack.CreateFromData(data: table) -> CFrameTrack

CreateFromInstance

CFrameTrack.CreateFromInstance(instance: Instance) -> CFrameTrack

CFrameTrack

Base class for all CFrameTrack

{
    Name: string,
    Length: number,
}

Constructors

fromData

CFrameTrack.fromData(data: table) -> CFrameTrack

fromInstance

CFrameTrack.fromInstance(instance: Instance) -> CFrameTrack

PointToPoint

Extends CFrameTrack

{
    IsCircuited: boolean,
    CircuitRemainder: number,
    LengthWithoutCircuitRemainder: number,

    DistanceBetweenPoints: number,

    Points: CFrame[]
}

Constructors

fromData

PointToPointCFrameTrack.fromData(data: table) -> PointToPointCFrameTrack
data
{
    IsCircuited: boolean,
    DistanceBetweenPoints: number,

    Points: CFrame[]
}

fromInstance

PointToPointCFrameTrack.fromInstance(instance: Instance) -> PointToPointCFrameTrack
instance
{
    TrackClass: StringValue,
        // Value = "PointToPoint"

    IsCircuited: BoolValue,
    DistanceBetweenPoints: NumberValue,

    Points: PointsInstance
}

PointToPointBuilder

Constructors

new

PointToPointBuilder.new() -> PointToPointBuilder

Methods

Build

PointToPointBuilder:Build() -> PointToPointCFrameTrack2

Finish

PointToPointBuilder:Build() -> PointToPointCFrameTrack2

WithPoints

PointToPointBuilder:WithPoints(points: CFrame[]) -> Self

WithPointsInstance

PointToPointBuilder:WithPointsInstance(pointsInstance: Instance) -> Self

WithIsCircuited

PointToPointBuilder:WithIsCircuited(value: boolean) -> Self

WithDistanceBetweenPoints

PointToPointBuilder:WithDistanceBetweenPoints(value: number) -> Self

PointToPoint2

Extends CFrameTrack

{
    IsCircuited: boolean,
    CircuitRemainder: number,
    LengthWithoutCircuitRemainder: number,

    Hasher: Hasher<CFrame>,
}

Constructors

fromData

PointToPointCFrameTrack2.fromData(data: table) -> PointToPointCFrameTrack
data
{
    IsCircuited: boolean,
    HashInterval: number,

    Points: CFrame[]
}

fromInstance

PointToPointCFrameTrack2.fromInstance(instance: Instance) -> PointToPointCFrameTrack2
instance
{
    TrackClass: StringValue,
        // Value = "PointToPoint2"

    IsCircuited: BoolValue,
    HashInterval: ?NumberValue,

    Points: PointsInstance,
}

PointToPoint2Builder

Constructors

new

PointToPoint2Builder.new() -> PointToPoint2Builder

Methods

Build

PointToPoint2Builder:Build() -> PointToPointCFrameTrack2

Finish

PointToPoint2Builder:Build() -> PointToPointCFrameTrack2

WithPoints

PointToPoint2Builder:WithPoints(points: CFrame[]) -> Self

WithPointsInstance

PointToPoint2Builder:WithPointsInstance(pointsInstance: Instance) -> Self

WithIsCircuited

PointToPoint2Builder:WithIsCircuited(value: boolean) -> Self

WithHashInterval

PointToPoint2Builder:WithHashInterval(interval: number) -> Self