File tree Expand file tree Collapse file tree 1 file changed +22
-6
lines changed Expand file tree Collapse file tree 1 file changed +22
-6
lines changed Original file line number Diff line number Diff line change @@ -1236,30 +1236,46 @@ export class Layer {
12361236 /**
12371237 * Adds two vectors
12381238 */
1239- add ( vec1 : number | Vector , vec2 : number | Vector ) : number | Vector {
1239+ add < VectorType extends Vector | Vector2D | Vector3D > (
1240+ vec1 : VectorType ,
1241+ vec2 : VectorType
1242+ ) : VectorType {
12401243 return vec2 ;
12411244 }
12421245 /**
12431246 * Subtracts two vectors
12441247 */
1245- sub ( vec1 : number | Vector , vec2 : number | Vector ) {
1248+ sub < VectorType extends Vector | Vector2D | Vector3D > (
1249+ vec1 : VectorType ,
1250+ vec2 : VectorType
1251+ ) {
12461252 return vec1 ;
12471253 }
12481254 /**
12491255 * Multiplies a vector by a given scalar amount
12501256 * @param vec1 The vector to multiply
12511257 * @param amount The amount to multiply by
12521258 */
1253- mul ( vec1 : Vector , amount : number ) : Vector {
1254- return vec1 . map ( ( el ) => ( el ?? 0 ) * amount ) as Vector ;
1259+ mul < VectorType extends Vector | Vector2D | Vector3D > (
1260+ vec1 : VectorType ,
1261+ amount : number
1262+ ) : VectorType {
1263+ return vec1 . map (
1264+ ( el : number | undefined ) => ( el ?? 0 ) * amount
1265+ ) as VectorType ;
12551266 }
12561267 /**
12571268 * Divides a vector by a given scalar amount
12581269 * @param vec1 The vector to divide
12591270 * @param amount The amount to divide by
12601271 */
1261- div ( vec1 : Vector , amount : number ) : Vector {
1262- return vec1 . map ( ( el ) => ( el ?? 0 ) / amount ) as Vector ;
1272+ div < VectorType extends Vector | Vector2D | Vector3D > (
1273+ vec1 : VectorType ,
1274+ amount : number
1275+ ) : VectorType {
1276+ return vec1 . map (
1277+ ( el : number | undefined ) => ( el ?? 0 ) / amount
1278+ ) as VectorType ;
12631279 }
12641280 /**
12651281 * Constrains a given number, or each element of an array, to fall within a a given range
You can’t perform that action at this time.
0 commit comments