@@ -220,7 +220,7 @@ export const label = ( node, name ) => {
220220
221221export const temp = ( node ) => nodeObject ( new VarNode ( nodeObject ( node ) ) ) ;
222222
223- const ConvertType = function ( nodeClass , type , valueClass = null , valueComponents = 1 ) {
223+ const ConvertType = function ( nodeClass , type , valueClass = null , valueComponents = 1 , convertAfter = false ) {
224224
225225 return ( ...params ) => {
226226
@@ -244,7 +244,9 @@ const ConvertType = function ( nodeClass, type, valueClass = null, valueComponen
244244
245245 const val = ( ( valueClass === null ) || ( params [ 0 ] instanceof valueClass ) ) ? params [ 0 ] : new valueClass ( ) . set ( ...params ) ;
246246
247- return nodeObject ( new nodeClass ( val ) . setConst ( true ) ) ;
247+ const node = nodeObject ( new nodeClass ( val ) . setConst ( true ) ) ;
248+
249+ return convertAfter === true ? nodeObject ( new ConvertNode ( node , type ) ) : node ;
248250
249251 } ;
250252
@@ -257,11 +259,29 @@ export const bool = new ConvertType( BoolNode, 'bool' );
257259export const color = new ConvertType ( ColorNode , 'color' , Color ) ;
258260
259261export const vec2 = new ConvertType ( Vector2Node , 'vec2' , Vector2 , 2 ) ;
262+ export const ivec2 = new ConvertType ( Vector2Node , 'ivec2' , Vector2 , 2 , true ) ;
263+ export const uvec2 = new ConvertType ( Vector2Node , 'uvec2' , Vector2 , 2 , true ) ;
264+ export const bvec2 = new ConvertType ( Vector2Node , 'bvec2' , Vector2 , 2 , true ) ;
265+
260266export const vec3 = new ConvertType ( Vector3Node , 'vec3' , Vector3 , 3 ) ;
267+ export const ivec3 = new ConvertType ( Vector3Node , 'ivec3' , Vector3 , 3 , true ) ;
268+ export const uvec3 = new ConvertType ( Vector3Node , 'uvec3' , Vector3 , 3 , true ) ;
269+ export const bvec3 = new ConvertType ( Vector3Node , 'bvec3' , Vector3 , 3 , true ) ;
270+
261271export const vec4 = new ConvertType ( Vector4Node , 'vec4' , Vector4 , 4 ) ;
272+ export const ivec4 = new ConvertType ( Vector4Node , 'ivec4' , Vector4 , 4 , true ) ;
273+ export const uvec4 = new ConvertType ( Vector4Node , 'uvec4' , Vector4 , 4 , true ) ;
274+ export const bvec4 = new ConvertType ( Vector4Node , 'bvec4' , Vector4 , 4 , true ) ;
262275
263276export const mat3 = new ConvertType ( Matrix3Node , 'mat3' , Matrix3 ) ;
277+ export const imat3 = new ConvertType ( Matrix3Node , 'imat3' , Matrix3 , 1 , true ) ;
278+ export const umat3 = new ConvertType ( Matrix3Node , 'umat3' , Matrix3 , 1 , true ) ;
279+ export const bmat3 = new ConvertType ( Matrix3Node , 'bmat3' , Matrix3 , 1 , true ) ;
280+
264281export const mat4 = new ConvertType ( Matrix4Node , 'mat4' , Matrix4 ) ;
282+ export const imat4 = new ConvertType ( Matrix4Node , 'imat4' , Matrix4 , 1 , true ) ;
283+ export const umat4 = new ConvertType ( Matrix4Node , 'umat4' , Matrix4 , 1 , true ) ;
284+ export const bmat4 = new ConvertType ( Matrix4Node , 'bmat4' , Matrix4 , 1 , true ) ;
265285
266286export const join = ( ...params ) => {
267287
0 commit comments