int CNodeSubtract::UpdateInputsValid() { int baseLevel = BaseClass::UpdateInputsValid(); int locallevel = ERRORLEVEL_NONE; int vartype_jack_0 = GetJack_In( 0 )->GetSmartType(); int vartype_jack_1 = GetJack_In( 1 )->GetSmartType(); int autoTest = TestJackFlags_In(); if ( autoTest == ERRORLEVEL_NONE ) { if ( vartype_jack_0 != vartype_jack_1 ) { bool bOneIsF1 = ( vartype_jack_0 == HLSLVAR_FLOAT1 ) || ( vartype_jack_1 == HLSLVAR_FLOAT1 ); if ( !bOneIsF1 ) locallevel = ERRORLEVEL_FAIL; } else if ( vartype_jack_0 >= HLSLVAR_MATRIX3X3 || vartype_jack_1 >= HLSLVAR_MATRIX3X3 ) locallevel = ERRORLEVEL_FAIL; } return max( locallevel, baseLevel ); }
int CNodeInvert::UpdateInputsValid() { int baseLevel = BaseClass::UpdateInputsValid(); int locallevel = TestJackFlags_In(); return max( locallevel, baseLevel ); }
int CNodeMultiply::UpdateInputsValid() { int baseLevel = BaseClass::UpdateInputsValid(); int locallevel = ERRORLEVEL_NONE; int vartype_jack_0 = GetJack_In( 0 )->GetSmartType(); int vartype_jack_1 = GetJack_In( 1 )->GetSmartType(); int autoTest = TestJackFlags_In(); if ( autoTest == ERRORLEVEL_NONE ) { if ( vartype_jack_0 != vartype_jack_1 ) { bool bOneIsF1 = ( vartype_jack_0 == HLSLVAR_FLOAT1 ) || ( vartype_jack_1 == HLSLVAR_FLOAT1 ); if ( !bOneIsF1 ) { // unequal types && none is float1 // 3 * 3x3 -> float3 // 3 * 4x3 - append 1 -> float3 // 4 * 4x3 -> float3 // 3 * 4x4 - append 1 -> float4 // 4 * 4x4 -> float4 if ( vartype_jack_0 != HLSLVAR_FLOAT3 && vartype_jack_0 != HLSLVAR_FLOAT4 && vartype_jack_0 != HLSLVAR_MATRIX3X3 && vartype_jack_0 != HLSLVAR_MATRIX4X3 ) locallevel = ERRORLEVEL_FAIL; else if ( vartype_jack_0 == HLSLVAR_FLOAT3 && vartype_jack_1 != HLSLVAR_MATRIX3X3 && vartype_jack_1 != HLSLVAR_MATRIX4X3 && vartype_jack_1 != HLSLVAR_MATRIX4X4 ) locallevel = ERRORLEVEL_FAIL; else if ( vartype_jack_0 == HLSLVAR_FLOAT4 && vartype_jack_1 != HLSLVAR_MATRIX4X3 && vartype_jack_1 != HLSLVAR_MATRIX4X4 ) locallevel = ERRORLEVEL_FAIL; else if ( vartype_jack_0 == HLSLVAR_MATRIX3X3 && vartype_jack_1 != HLSLVAR_FLOAT3 ) locallevel = ERRORLEVEL_FAIL; } } else { // equal types: // 1 * 1 // 2 * 2 // 3 * 3 // 4 * 4 // 3x3 * 3x3 // 4x4 * 4x4 if ( vartype_jack_0 == HLSLVAR_MATRIX4X3 ) locallevel = ERRORLEVEL_FAIL; } } return max( locallevel, baseLevel ); }
int CNodeUtility_Assign::UpdateInputsValid() { int vartype_jack_0 = GetJack_In( 0 )->GetSmartType(); int vartype_jack_1 = GetJack_In( 1 )->GetSmartType(); int autoTest = TestJackFlags_In(); if ( autoTest == ERRORLEVEL_NONE ) { if ( vartype_jack_0 != vartype_jack_1 ) return ERRORLEVEL_FAIL; } return max( autoTest, BaseClass::UpdateInputsValid() ); }