Skip to content

Commit 1ed95d2

Browse files
committed
move all functions and values onto thisLayer
1 parent 5552d79 commit 1ed95d2

File tree

2 files changed

+147
-203
lines changed

2 files changed

+147
-203
lines changed

README.md

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,18 +14,7 @@ This library mocks the After Effects expressions API in TypeScript, providing ty
1414

1515
Found in our [Expressions Library Template](https://github.com/motiondeveloper/expressions-library-template).
1616

17-
2. Import globals functions as needed
18-
19-
```js
20-
import {
21-
timeToFrames,
22-
add,
23-
length,
24-
random,
25-
} from "expression-globals-typescript";
26-
```
27-
28-
3. Import classes to create layer, comp, and property mocks
17+
2. Import classes to create layer, comp, and property mocks
2918

3019
```ts
3120
import { Property, Layer, Comp } from "expression-globals-typescript";
@@ -39,7 +28,7 @@ This library mocks the After Effects expressions API in TypeScript, providing ty
3928

4029
The `Property` constructor function takes a value and type (`<>`) for the `value` of the `Property`.
4130

42-
4. Import types
31+
3. Import types
4332

4433
This package makes available After Effects specific types, such as `Color`, `Vector` and more. See `src/index.ts` for the available types.
4534

src/index.ts

Lines changed: 145 additions & 190 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,6 @@ export class Comp {
6767
}
6868
}
6969

70-
const thisComp = new Comp();
71-
7270
export class PropertyGroup {
7371
readonly name: string = "property group base";
7472
constructor(groupName: string) {
@@ -392,9 +390,13 @@ export class Light {
392390

393391
export class Camera {}
394392

393+
const thisComp = new Comp();
394+
395395
export class Layer {
396+
readonly time: number = 0;
397+
readonly colorDepth: number = 8;
396398
readonly name: string = "Layer name";
397-
readonly source?: Comp | Footage = new Comp();
399+
readonly source?: Comp | Footage = thisComp;
398400
readonly width: number = 1920;
399401
readonly height: number = 1080;
400402
readonly index: number = 0;
@@ -464,18 +466,148 @@ export class Layer {
464466
radiansToDegrees(radians: number): number {
465467
return radians;
466468
}
469+
footage(name: string): Footage {
470+
return new Footage();
471+
}
472+
layer(indexOrOtherLayer: string | number, relIndex?: number) {
473+
return thisComp.layer(indexOrOtherLayer, relIndex);
474+
}
475+
comp(index: number | string) {
476+
return thisComp;
477+
}
478+
timeToFrames(
479+
t: number = this.time + thisComp.displayStartTime,
480+
fps: number = 1.0 / thisComp.frameDuration,
481+
isDuration: boolean = false
482+
): number {
483+
return this.time * thisComp.frameDuration;
484+
}
485+
framesToTime(
486+
frames: number,
487+
fps: number = 1.0 / thisComp.frameDuration
488+
): number {
489+
return frames * thisComp.frameDuration;
490+
}
491+
timeToTimecode(
492+
t: number = this.time + thisComp.displayStartTime,
493+
timecodeBase: number = 30,
494+
isDuration: boolean = false
495+
): string {
496+
return "00:00:00:00";
497+
}
498+
timeToNTSCTimecode(
499+
t: number = this.time + thisComp.displayStartTime,
500+
ntscDropFrame: boolean = false,
501+
isDuration: boolean = false
502+
) {
503+
return "00:00:00:00";
504+
}
505+
timeToFeetAndFrames(
506+
t: number = this.time + thisComp.displayStartTime,
507+
fps: number = 1.0 / thisComp.frameDuration,
508+
framesPerFoot: number = 16,
509+
isDuration: boolean = false
510+
): string {
511+
return "00:00:00:00";
512+
}
513+
timeToCurrentFormat(
514+
t: number = this.time + thisComp.displayStartTime,
515+
fps: number = 1.0 / thisComp.frameDuration,
516+
isDuration: boolean = false,
517+
ntscDropFrame: boolean = thisComp.ntscDropFrame
518+
): string {
519+
return "0000";
520+
}
521+
add(vec1: Vector, vec2: Vector): Vector {
522+
return vec1;
523+
}
524+
sub(vec1: Vector, vec2: Vector): Vector {
525+
return vec1;
526+
}
527+
mul(vec1: Vector, amount: number): Vector {
528+
return vec1;
529+
}
530+
div(vec1: Vector, amount: number): Vector {
531+
return vec1;
532+
}
533+
clamp(value: number | [], limit1: number, limit2: number): number | [] {
534+
return value;
535+
}
536+
dot(vec1: Vector, vec2: Vector): Vector {
537+
return vec1;
538+
}
539+
cross(vec1: Vector, vec2: Vector): Vector {
540+
return vec1;
541+
}
542+
normalize(vec1: Vector, vec2: Vector): Vector {
543+
return [1, 1];
544+
}
545+
length(point1: Vector, point2?: Vector): number {
546+
return 1;
547+
}
548+
lookAt(fromPoint: Vector, atPoint: Vector): Vector3D {
549+
return [0, 0, 0];
550+
}
551+
seedRandom(offset: number, timeless: boolean = false): void {}
552+
random(minValOrArray: number | [], maxValOrArray: number | []): number | [] {
553+
return minValOrArray;
554+
}
555+
gaussRandom(
556+
minValOrArray: number | [],
557+
maxValOrArray: number | []
558+
): number | [] {
559+
return minValOrArray;
560+
}
561+
noise(valOrArray: number | []): number {
562+
return 1;
563+
}
564+
linear(
565+
t: number,
566+
tMin: number,
567+
tMax: number,
568+
value1?: number | [],
569+
value2?: number | []
570+
): number | [] {
571+
return value1 || tMin;
572+
}
573+
ease(
574+
t: number,
575+
tMin: number,
576+
tMax: number,
577+
value1?: number | [],
578+
value2?: number | []
579+
): number | [] {
580+
return value1 || tMin;
581+
}
582+
easeIn(
583+
t: number,
584+
tMin: number,
585+
tMax: number,
586+
value1?: number | [],
587+
value2?: number | []
588+
): number | [] {
589+
return value1 || tMin;
590+
}
591+
easeOut(
592+
t: number,
593+
tMin: number,
594+
tMax: number,
595+
value1?: number | [],
596+
value2?: number | []
597+
): number | [] {
598+
return value1 || tMin;
599+
}
600+
rgbToHsl(rgbaArray: Color): Color {
601+
return [1, 1, 1, 1];
602+
}
603+
hslToRgb(hslaArray: Color): Color {
604+
return [1, 1, 1, 1];
605+
}
606+
hexToRgb(hex: string): Color {
607+
return [1, 1, 1, 1];
608+
}
467609
}
468610

469-
export function layer(indexOrOtherLayer: string | number, relIndex?: number) {
470-
return new Comp().layer(indexOrOtherLayer, relIndex);
471-
}
472-
export function comp(index: number | string) {
473-
return new Comp();
474-
}
475-
476-
export const time: number = 0;
477-
export const colorDepth: number = 8;
478-
479611
export class Footage {
480612
readonly name: string = "Layer Name";
481613
readonly width?: number = 500;
@@ -499,180 +631,3 @@ export class Footage {
499631
return [0, 0];
500632
}
501633
}
502-
503-
export function footage(name: string): Footage {
504-
return new Footage();
505-
}
506-
507-
// Time conversion methods
508-
509-
export function timeToFrames(
510-
t: number = time + thisComp.displayStartTime,
511-
fps: number = 1.0 / thisComp.frameDuration,
512-
isDuration: boolean = false
513-
): number {
514-
return time * thisComp.frameDuration;
515-
}
516-
517-
export function framesToTime(
518-
frames: number,
519-
fps: number = 1.0 / thisComp.frameDuration
520-
): number {
521-
return frames * thisComp.frameDuration;
522-
}
523-
524-
export function timeToTimecode(
525-
t: number = time + thisComp.displayStartTime,
526-
timecodeBase: number = 30,
527-
isDuration: boolean = false
528-
): string {
529-
return "00:00:00:00";
530-
}
531-
532-
export function timeToNTSCTimecode(
533-
t: number = time + thisComp.displayStartTime,
534-
ntscDropFrame: boolean = false,
535-
isDuration: boolean = false
536-
) {
537-
return "00:00:00:00";
538-
}
539-
540-
export function timeToFeetAndFrames(
541-
t: number = time + thisComp.displayStartTime,
542-
fps: number = 1.0 / thisComp.frameDuration,
543-
framesPerFoot: number = 16,
544-
isDuration: boolean = false
545-
): string {
546-
return "00:00:00:00";
547-
}
548-
549-
export function timeToCurrentFormat(
550-
t: number = time + thisComp.displayStartTime,
551-
fps: number = 1.0 / thisComp.frameDuration,
552-
isDuration: boolean = false,
553-
ntscDropFrame: boolean = thisComp.ntscDropFrame
554-
): string {
555-
return "0000";
556-
}
557-
558-
// Vector Math methods
559-
560-
export function add(vec1: Vector, vec2: Vector): Vector {
561-
return vec1;
562-
}
563-
export function sub(vec1: Vector, vec2: Vector): Vector {
564-
return vec1;
565-
}
566-
export function mul(vec1: Vector, amount: number): Vector {
567-
return vec1;
568-
}
569-
export function div(vec1: Vector, amount: number): Vector {
570-
return vec1;
571-
}
572-
export function clamp(
573-
value: number | [],
574-
limit1: number,
575-
limit2: number
576-
): number | [] {
577-
return value;
578-
}
579-
export function dot(vec1: Vector, vec2: Vector): Vector {
580-
return vec1;
581-
}
582-
export function cross(vec1: Vector, vec2: Vector): Vector {
583-
return vec1;
584-
}
585-
export function normalize(vec1: Vector, vec2: Vector): Vector {
586-
return [1, 1];
587-
}
588-
export function length(point1: Vector, point2?: Vector): number {
589-
return 1;
590-
}
591-
export function lookAt(fromPoint: Vector, atPoint: Vector): Vector3D {
592-
return [0, 0, 0];
593-
}
594-
595-
// Random number methods
596-
597-
export function seedRandom(offset: number, timeless: boolean = false): void {}
598-
export function random(
599-
minValOrArray: number | [],
600-
maxValOrArray: number | []
601-
): number | [] {
602-
return minValOrArray;
603-
}
604-
export function gaussRandom(
605-
minValOrArray: number | [],
606-
maxValOrArray: number | []
607-
): number | [] {
608-
return minValOrArray;
609-
}
610-
export function noise(valOrArray: number | []): number {
611-
return 1;
612-
}
613-
614-
// Interpolation methods
615-
616-
export function linear(
617-
t: number,
618-
tMin: number,
619-
tMax: number,
620-
value1?: number | [],
621-
value2?: number | []
622-
): number | [] {
623-
return value1 || tMin;
624-
}
625-
626-
export function ease(
627-
t: number,
628-
tMin: number,
629-
tMax: number,
630-
value1?: number | [],
631-
value2?: number | []
632-
): number | [] {
633-
return value1 || tMin;
634-
}
635-
636-
export function easeIn(
637-
t: number,
638-
tMin: number,
639-
tMax: number,
640-
value1?: number | [],
641-
value2?: number | []
642-
): number | [] {
643-
return value1 || tMin;
644-
}
645-
646-
export function easeOut(
647-
t: number,
648-
tMin: number,
649-
tMax: number,
650-
value1?: number | [],
651-
value2?: number | []
652-
): number | [] {
653-
return value1 || tMin;
654-
}
655-
656-
// Color Conversion methods
657-
658-
export function rgbToHsl(rgbaArray: Color): Color {
659-
return [1, 1, 1, 1];
660-
}
661-
662-
export function hslToRgb(hslaArray: Color): Color {
663-
return [1, 1, 1, 1];
664-
}
665-
666-
export function hexToRgb(hex: string): Color {
667-
return [1, 1, 1, 1];
668-
}
669-
670-
// Other Math methods
671-
672-
export function degreesToRadians(degrees: number): number {
673-
return 1;
674-
}
675-
676-
export function radiansToDegrees(radians: number): number {
677-
return 1;
678-
}

0 commit comments

Comments
 (0)