@Override default <A, B, E extends Throwable> B matchTranslucent( final A context, final PartialBiFunctionType<A, R2TranslucentSingleType<M>, B, E> on_single, final PartialBiFunctionType<A, R2TranslucentBatchedType<M>, B, E> on_batched, final PartialBiFunctionType<A, R2TranslucentBillboardedType<M>, B, E> on_billboarded) throws E { return on_batched.call(context, this); }
@Override default <A, B, E extends Throwable> B matchTranslucent( final A context, final PartialBiFunctionType<A, R2TranslucentSingleType<M>, B, E> on_single, final PartialBiFunctionType<A, R2TranslucentBatchedType<M>, B, E> on_batched, final PartialBiFunctionType<A, R2TranslucentBillboardedType<M>, B, E> on_billboarded) throws E { return on_single.call(context, this); }
@Override default <A, B, E extends Throwable> B matchLightBuffer( final A context, final PartialBiFunctionType<A, R2LightBufferDiffuseOnlyUsableType, B, E> on_diffuse, final PartialBiFunctionType<A, R2LightBufferSpecularOnlyUsableType, B, E> on_specular, final PartialBiFunctionType<A, R2LightBufferDiffuseSpecularUsableType, B, E> on_diffuse_specular) throws E { return on_diffuse_specular.call(context, this); } }
@Override default <A, B, E extends Throwable> B matchTranslucent( final A context, final PartialBiFunctionType<A, R2TranslucentSingleType<M>, B, E> on_single, final PartialBiFunctionType<A, R2TranslucentBatchedType<M>, B, E> on_batched, final PartialBiFunctionType<A, R2TranslucentBillboardedType<M>, B, E> on_billboarded) throws E { return on_billboarded.call(context, this); }
@Override default <A, B, E extends Throwable> B matchProjectiveReadable( final A context, final PartialBiFunctionType<A, R2LightProjectiveWithoutShadowReadableType, B, E> on_shadowless, final PartialBiFunctionType<A, R2LightProjectiveWithShadowReadableType, B, E> on_shadowed) throws E { return on_shadowed.call(context, this); } }
@Override default <A, B, E extends Throwable> B matchLightSingle( final A context, final PartialBiFunctionType<A, R2LightVolumeSingleType, B, E> on_volume, final PartialBiFunctionType<A, R2LightScreenSingleType, B, E> on_screen) throws E { return on_volume.call(context, this); } }
@Override public <A, B, E extends Throwable> B matchLightWithShadow( final A context, final PartialBiFunctionType<A, R2LightProjectiveWithShadowType, B, E> on_project) throws E { return on_project.call(context, this); } }
@Override default <A, B, E extends Throwable> B matchLightSingle( final A context, final PartialBiFunctionType<A, R2LightVolumeSingleType, B, E> on_volume, final PartialBiFunctionType<A, R2LightScreenSingleType, B, E> on_screen) throws E { return on_screen.call(context, this); } }
@Override default <A, B, E extends Throwable> B matchProjectiveReadable( final A context, final PartialBiFunctionType<A, R2LightProjectiveWithoutShadowReadableType, B, E> on_shadowless, final PartialBiFunctionType<A, R2LightProjectiveWithShadowReadableType, B, E> on_shadowed) throws E { return on_shadowless.call(context, this); } }
@Override default <A, B, E extends Throwable> B matchLightVolumeSingleReadable( final A context, final PartialBiFunctionType<A, R2LightProjectiveReadableType, B, E> on_projective, final PartialBiFunctionType<A, R2LightSphericalSingleReadableType, B, E> on_spherical) throws E { return on_spherical.call(context, this); } }
@Override default <A, B, E extends Throwable> B matchLightBuffer( final A context, final PartialBiFunctionType<A, R2LightBufferDiffuseOnlyUsableType, B, E> on_diffuse, final PartialBiFunctionType<A, R2LightBufferSpecularOnlyUsableType, B, E> on_specular, final PartialBiFunctionType<A, R2LightBufferDiffuseSpecularUsableType, B, E> on_diffuse_specular) throws E { return on_diffuse.call(context, this); } }
@Override default <A, B, E extends Throwable> B matchLightBuffer( final A context, final PartialBiFunctionType<A, R2LightBufferDiffuseOnlyUsableType, B, E> on_diffuse, final PartialBiFunctionType<A, R2LightBufferSpecularOnlyUsableType, B, E> on_specular, final PartialBiFunctionType<A, R2LightBufferDiffuseSpecularUsableType, B, E> on_diffuse_specular) throws E { return on_specular.call(context, this); } }
@Override default <A, B, E extends Throwable> B matchShadow( final A context, final PartialBiFunctionType<A, R2ShadowDepthVarianceType, B, E> on_variance) throws E { return on_variance.call(context, this); } }
@Override default <A, B, E extends Throwable> B matchLightVolumeSingleReadable( final A context, final PartialBiFunctionType<A, R2LightProjectiveReadableType, B, E> on_projective, final PartialBiFunctionType<A, R2LightSphericalSingleReadableType, B, E> on_spherical) throws E { return on_projective.call(context, this); }
@Override default <A, B, E extends Exception> B matchArray( final A context, final PartialBiFunctionType<A, SMFAttributeArrayFloating4Type, B, E> on_f4, final PartialBiFunctionType<A, SMFAttributeArrayFloating3Type, B, E> on_f3, final PartialBiFunctionType<A, SMFAttributeArrayFloating2Type, B, E> on_f2, final PartialBiFunctionType<A, SMFAttributeArrayFloating1Type, B, E> on_f1, final PartialBiFunctionType<A, SMFAttributeArrayIntegerUnsigned4Type, B, E> on_u4, final PartialBiFunctionType<A, SMFAttributeArrayIntegerUnsigned3Type, B, E> on_u3, final PartialBiFunctionType<A, SMFAttributeArrayIntegerUnsigned2Type, B, E> on_u2, final PartialBiFunctionType<A, SMFAttributeArrayIntegerUnsigned1Type, B, E> on_u1, final PartialBiFunctionType<A, SMFAttributeArrayIntegerSigned4Type, B, E> on_i4, final PartialBiFunctionType<A, SMFAttributeArrayIntegerSigned3Type, B, E> on_i3, final PartialBiFunctionType<A, SMFAttributeArrayIntegerSigned2Type, B, E> on_i2, final PartialBiFunctionType<A, SMFAttributeArrayIntegerSigned1Type, B, E> on_i1) throws E { return on_f1.call(context, this); }
@Override default <A, B, E extends Exception> B matchArray( final A context, final PartialBiFunctionType<A, SMFAttributeArrayFloating4Type, B, E> on_f4, final PartialBiFunctionType<A, SMFAttributeArrayFloating3Type, B, E> on_f3, final PartialBiFunctionType<A, SMFAttributeArrayFloating2Type, B, E> on_f2, final PartialBiFunctionType<A, SMFAttributeArrayFloating1Type, B, E> on_f1, final PartialBiFunctionType<A, SMFAttributeArrayIntegerUnsigned4Type, B, E> on_u4, final PartialBiFunctionType<A, SMFAttributeArrayIntegerUnsigned3Type, B, E> on_u3, final PartialBiFunctionType<A, SMFAttributeArrayIntegerUnsigned2Type, B, E> on_u2, final PartialBiFunctionType<A, SMFAttributeArrayIntegerUnsigned1Type, B, E> on_u1, final PartialBiFunctionType<A, SMFAttributeArrayIntegerSigned4Type, B, E> on_i4, final PartialBiFunctionType<A, SMFAttributeArrayIntegerSigned3Type, B, E> on_i3, final PartialBiFunctionType<A, SMFAttributeArrayIntegerSigned2Type, B, E> on_i2, final PartialBiFunctionType<A, SMFAttributeArrayIntegerSigned1Type, B, E> on_i1) throws E { return on_i4.call(context, this); }
@Override default <A, B, E extends Exception> B matchArray( final A context, final PartialBiFunctionType<A, SMFAttributeArrayFloating4Type, B, E> on_f4, final PartialBiFunctionType<A, SMFAttributeArrayFloating3Type, B, E> on_f3, final PartialBiFunctionType<A, SMFAttributeArrayFloating2Type, B, E> on_f2, final PartialBiFunctionType<A, SMFAttributeArrayFloating1Type, B, E> on_f1, final PartialBiFunctionType<A, SMFAttributeArrayIntegerUnsigned4Type, B, E> on_u4, final PartialBiFunctionType<A, SMFAttributeArrayIntegerUnsigned3Type, B, E> on_u3, final PartialBiFunctionType<A, SMFAttributeArrayIntegerUnsigned2Type, B, E> on_u2, final PartialBiFunctionType<A, SMFAttributeArrayIntegerUnsigned1Type, B, E> on_u1, final PartialBiFunctionType<A, SMFAttributeArrayIntegerSigned4Type, B, E> on_i4, final PartialBiFunctionType<A, SMFAttributeArrayIntegerSigned3Type, B, E> on_i3, final PartialBiFunctionType<A, SMFAttributeArrayIntegerSigned2Type, B, E> on_i2, final PartialBiFunctionType<A, SMFAttributeArrayIntegerSigned1Type, B, E> on_i1) throws E { return on_f4.call(context, this); }
@Override default <A, B, E extends Exception> B matchArray( final A context, final PartialBiFunctionType<A, SMFAttributeArrayFloating4Type, B, E> on_f4, final PartialBiFunctionType<A, SMFAttributeArrayFloating3Type, B, E> on_f3, final PartialBiFunctionType<A, SMFAttributeArrayFloating2Type, B, E> on_f2, final PartialBiFunctionType<A, SMFAttributeArrayFloating1Type, B, E> on_f1, final PartialBiFunctionType<A, SMFAttributeArrayIntegerUnsigned4Type, B, E> on_u4, final PartialBiFunctionType<A, SMFAttributeArrayIntegerUnsigned3Type, B, E> on_u3, final PartialBiFunctionType<A, SMFAttributeArrayIntegerUnsigned2Type, B, E> on_u2, final PartialBiFunctionType<A, SMFAttributeArrayIntegerUnsigned1Type, B, E> on_u1, final PartialBiFunctionType<A, SMFAttributeArrayIntegerSigned4Type, B, E> on_i4, final PartialBiFunctionType<A, SMFAttributeArrayIntegerSigned3Type, B, E> on_i3, final PartialBiFunctionType<A, SMFAttributeArrayIntegerSigned2Type, B, E> on_i2, final PartialBiFunctionType<A, SMFAttributeArrayIntegerSigned1Type, B, E> on_i1) throws E { return on_i3.call(context, this); }
@Override default <A, B, E extends Exception> B matchArray( final A context, final PartialBiFunctionType<A, SMFAttributeArrayFloating4Type, B, E> on_f4, final PartialBiFunctionType<A, SMFAttributeArrayFloating3Type, B, E> on_f3, final PartialBiFunctionType<A, SMFAttributeArrayFloating2Type, B, E> on_f2, final PartialBiFunctionType<A, SMFAttributeArrayFloating1Type, B, E> on_f1, final PartialBiFunctionType<A, SMFAttributeArrayIntegerUnsigned4Type, B, E> on_u4, final PartialBiFunctionType<A, SMFAttributeArrayIntegerUnsigned3Type, B, E> on_u3, final PartialBiFunctionType<A, SMFAttributeArrayIntegerUnsigned2Type, B, E> on_u2, final PartialBiFunctionType<A, SMFAttributeArrayIntegerUnsigned1Type, B, E> on_u1, final PartialBiFunctionType<A, SMFAttributeArrayIntegerSigned4Type, B, E> on_i4, final PartialBiFunctionType<A, SMFAttributeArrayIntegerSigned3Type, B, E> on_i3, final PartialBiFunctionType<A, SMFAttributeArrayIntegerSigned2Type, B, E> on_i2, final PartialBiFunctionType<A, SMFAttributeArrayIntegerSigned1Type, B, E> on_i1) throws E { return on_i2.call(context, this); }
@Override default <A, B, E extends Exception> B matchArray( final A context, final PartialBiFunctionType<A, SMFAttributeArrayFloating4Type, B, E> on_f4, final PartialBiFunctionType<A, SMFAttributeArrayFloating3Type, B, E> on_f3, final PartialBiFunctionType<A, SMFAttributeArrayFloating2Type, B, E> on_f2, final PartialBiFunctionType<A, SMFAttributeArrayFloating1Type, B, E> on_f1, final PartialBiFunctionType<A, SMFAttributeArrayIntegerUnsigned4Type, B, E> on_u4, final PartialBiFunctionType<A, SMFAttributeArrayIntegerUnsigned3Type, B, E> on_u3, final PartialBiFunctionType<A, SMFAttributeArrayIntegerUnsigned2Type, B, E> on_u2, final PartialBiFunctionType<A, SMFAttributeArrayIntegerUnsigned1Type, B, E> on_u1, final PartialBiFunctionType<A, SMFAttributeArrayIntegerSigned4Type, B, E> on_i4, final PartialBiFunctionType<A, SMFAttributeArrayIntegerSigned3Type, B, E> on_i3, final PartialBiFunctionType<A, SMFAttributeArrayIntegerSigned2Type, B, E> on_i2, final PartialBiFunctionType<A, SMFAttributeArrayIntegerSigned1Type, B, E> on_i1) throws E { return on_f2.call(context, this); }