void CNodeStdVLight::UpdateNode() { CUtlVector< BridgeRestoreInfo* >m_hRestoreBridges; CreateBridgeRestoreData_In( CBaseNode::BY_NAME, m_hRestoreBridges ); GenerateJacks_Input( m_bStaticLighting ? 3 : 1 ); if ( m_bStaticLighting ) { LockJackInput_Flags( 0, HLSLVAR_FLOAT3, "World pos" ); LockJackInput_Flags( 1, HLSLVAR_FLOAT3, "World normal" ); LockJackInput_Flags( 2, HLSLVAR_FLOAT3, "Static light" ); } else { LockJackInput_Flags( 0, HLSLVAR_FLOAT3, "World pos" ); } RestoreBridgesFromList_In( m_hRestoreBridges ); CreateBridgeRestoreData_Out( CBaseNode::BY_NAME, m_hRestoreBridges ); GenerateJacks_Output( 1 ); if ( m_bStaticLighting ) LockJackOutput_Flags( 0, HLSLVAR_FLOAT3, "Lighting" ); else LockJackOutput_Flags( 0, HLSLVAR_FLOAT4, "VAttn" ); RestoreBridgesFromList_Out( m_hRestoreBridges ); }
void CNodeVCompression::UpdateNode() { bool bUseTangent = m_iCompressionMode == COMPRESSION_MODE_NORMAL_TANGENT; CUtlVector< BridgeRestoreInfo* >m_hRestoreBridges; CreateBridgeRestoreData_In( CBaseNode::BY_NAME, m_hRestoreBridges ); GenerateJacks_Input( bUseTangent ? 2 : 1 ); LockJackInput_Flags( 0, HLSLVAR_FLOAT4, "Normal" ); if ( bUseTangent ) LockJackInput_Flags( 1, HLSLVAR_FLOAT4, "Tangent" ); RestoreBridgesFromList_In( m_hRestoreBridges ); CreateBridgeRestoreData_Out( CBaseNode::BY_NAME, m_hRestoreBridges ); GenerateJacks_Output( bUseTangent ? 2 : 1 ); LockJackOutput_Flags( 0, HLSLVAR_FLOAT3, "Normal" ); if ( bUseTangent ) LockJackOutput_Flags( 1, HLSLVAR_FLOAT4, "Tangent" ); RestoreBridgesFromList_Out( m_hRestoreBridges ); OnUpdateHierachy( NULL, NULL ); }
void CNodeBreak::UpdateNode() { int iJacksRequired = 1; for ( int i = 0; i < max( GetNumJacks_In(), GetNumJacks_Out() ); i++ ) { const bool bJackInValid = i < GetNumJacks_In(); const bool bJackOutValid = i < GetNumJacks_Out(); if ( bJackInValid && GetJack_In( i )->GetNumBridgesConnected() ) iJacksRequired++; else if ( bJackOutValid && GetJack_Out( i )->GetNumBridgesConnected() ) iJacksRequired++; } //CUtlVector< int >hSmartTypes_Out; //for ( int i = 0; i < GetNumJacks_Out(); i++ ) // hSmartTypes_Out.AddToTail( GetJack_Out(i)->GetSmartType() ); CUtlVector< BridgeRestoreInfo* >m_hRestoreBridges_In; CUtlVector< BridgeRestoreInfo* >m_hRestoreBridges_Out; CreateBridgeRestoreData_In( CBaseNode::BY_COUNT, m_hRestoreBridges_In ); CreateBridgeRestoreData_Out( CBaseNode::BY_COUNT, m_hRestoreBridges_Out ); GenerateJacks_Input( iJacksRequired ); GenerateJacks_Output( iJacksRequired ); RestoreBridgesFromList_In( m_hRestoreBridges_In ); RestoreBridgesFromList_Out( m_hRestoreBridges_Out ); //for ( int i = 0; i < GetNumJacks_Out(); i++ ) // GetJack_Out( i )->SetSmartType( hSmartTypes_Out[i] ); //hSmartTypes_Out.Purge(); OnUpdateHierachy( NULL, NULL ); }
CNodeMCompose::CNodeMCompose( CNodeView *p ) : BaseClass( "MCompose", p ) { GenerateJacks_Output( 1 ); iTargetMatrix = HLSLVAR_MATRIX3X3; bColumns = false; UpdateNode(); }
void CNodeCallback::UpdateNode() { CUtlVector< BridgeRestoreInfo* >m_hRestoreBridges; CreateBridgeRestoreData_Out( CBaseNode::BY_INDEX, m_hRestoreBridges ); if ( !szCallbackName ) { GenerateJacks_Output( 0 ); SaveDeleteVector( m_hRestoreBridges ); return; } GenerateJacks_Output( 1 ); int flag = ::GetVarTypeFlag( iNumComponents - 1 ); LockJackOutput_Flags( 0, flag, szCallbackName ); RestoreBridgesFromList_Out( m_hRestoreBridges ); }
CNodeInvert::CNodeInvert( CNodeView *p ) : BaseClass( "Invert", p ) { GenerateJacks_Input( 1 ); GenerateJacks_Output( 1 ); SetJackFlags_Input( 0, HLSLJACKFLAGS_F1_TO_F4 ); SetJackFlags_Output( 0, HLSLJACKFLAGS_F1_TO_F4 ); GetJack_In( 0 )->SetName( "In" ); }
CNodeFinal::CNodeFinal( CNodeView *p ) : BaseClass( "Final output", p ) { GenerateJacks_Output( 1 ); LockJackOutput_Flags( 0, HLSLVAR_FLOAT4, "Color" ); i_tonemaptype = 1; b_writedepth = true; UpdateNode(); }
CNodeBumpBasis::CNodeBumpBasis( CNodeView *p ) : BaseClass( "Bump basis", p ) { m_flMinSizeX = NODEDEFSIZE_SMALL; m_flMinSizeY = NODEDEFSIZE_SMALL; m_flMinSizePREVIEW_X = NODEDEFSIZE_SMALL; GenerateJacks_Output( 3 ); LockJackOutput_Flags( 0, HLSLVAR_FLOAT3, "1" ); LockJackOutput_Flags( 1, HLSLVAR_FLOAT3, "2" ); LockJackOutput_Flags( 2, HLSLVAR_FLOAT3, "3" ); }
CNodeLightscale::CNodeLightscale( CNodeView *p ) : BaseClass( "Lightscale", p ) { m_flMinSizeX = NODEDEFSIZE_SMALL; m_flMinSizeY = NODEDEFSIZE_SMALL; m_flMinSizePREVIEW_X = NODEDEFSIZE_SMALL; GenerateJacks_Output( 1 ); LockJackOutput_Flags( 0, HLSLVAR_FLOAT1, "" ); m_iLightScale = LSCALE_LINEAR; UpdateNode(); }
CNodeSubtract::CNodeSubtract( CNodeView *p ) : BaseClass( "Subtract", p ) { GenerateJacks_Input( 2 ); GenerateJacks_Output( 1 ); SetJackFlags_Input( 0, HLSLJACKFLAGS_F1_TO_F4 ); SetJackFlags_Input( 1, HLSLJACKFLAGS_F1_TO_F4 ); SetJackFlags_Output( 0, HLSLJACKFLAGS_F1_TO_F4 ); GetJack_In( 0 )->SetName( "A" ); GetJack_In( 1 )->SetName( "B" ); }
CNodeClip::CNodeClip( CNodeView *p ) : BaseClass( "Clip", p ) { m_flMinSizeX = NODEDEFSIZE_SMALL; m_flMinSizeY = 0; m_flMinSizePREVIEW_X = NODEDEFSIZE_SMALL; GenerateJacks_Input( 1 ); GenerateJacks_Output( 1 ); SetJackFlags_Input( 0, HLSLJACKFLAGS_ALL ); SetJackFlags_Output( 0, HLSLJACKFLAGS_ALL ); }
CNodeUtility_Declare::CNodeUtility_Declare( CNodeView *p ) : BaseClass( "Declare", p ) { m_flMinSizeX = NODEDEFSIZE_SMALL; m_flMinSizeY = NODEDEFSIZE_SMALL; m_flMinSizePREVIEW_X = NODEDEFSIZE_SMALL; GenerateJacks_Input( 1 ); GenerateJacks_Output( 1 ); SetJackFlags_Input( 0, HLSLJACKFLAGS_ALL ); SetJackFlags_Output( 0, HLSLJACKFLAGS_ALL ); }
CNodeRandom::CNodeRandom( CNodeView *p ) : BaseClass( "Random", p ) { m_flMinSizeX = NODEDEFSIZE_SMALL; m_flMinSizeY = NODEDEFSIZE_SMALL; m_flMinSizePREVIEW_X = NODEDEFSIZE_SMALL; GenerateJacks_Output( 1 ); m_iNumComponents = 3; m_flValue_Min = 0; m_flValue_Max = 1; UpdateNode(); }
CNodeBreak::CNodeBreak( CNodeView *p ) : BaseClass( "Break", p ) { m_flMinSizeX = NODEDEFSIZE_SMALL; m_flMinSizeY = 0; m_flMinSizePREVIEW_X = NODEDEFSIZE_SMALL; m_bAllInputsRequired = false; GenerateJacks_Input( 1 ); GenerateJacks_Output( 1 ); SetJackFlags_Input( 0, HLSLJACKFLAGS_ALL ); SetJackFlags_Output( 0, HLSLJACKFLAGS_ALL ); }
CNodeDot::CNodeDot( CNodeView *p ) : BaseClass( "Dotproduct", p ) { GenerateJacks_Input( 2 ); GenerateJacks_Output( 1 ); SetJackFlags_Input( 0, HLSLJACKFLAGS_F1_TO_F4 ); SetJackFlags_Input( 1, HLSLJACKFLAGS_F1_TO_F4 ); //SetJackFlags_Output( 0, HLSLJACKFLAGS_F1_TO_F4 ); LockJackOutput_Flags( 0, HLSLVAR_FLOAT1 ); GetJack_In( 0 )->SetName( "A" ); GetJack_In( 1 )->SetName( "B" ); }
CNodeMultiply::CNodeMultiply( CNodeView *p ) : BaseClass( "Multiply", p ) { m_bMatrixRotation = false; GenerateJacks_Input( 2 ); GenerateJacks_Output( 1 ); SetJackFlags_Input( 0, HLSLJACKFLAGS_ALL ); SetJackFlags_Input( 1, HLSLJACKFLAGS_ALL ); SetJackFlags_Output( 0, HLSLJACKFLAGS_ALL ); GetJack_In( 0 )->SetName( "A" ); GetJack_In( 1 )->SetName( "B" ); }
CNodeLerp::CNodeLerp( CNodeView *p ) : BaseClass( "Lerp", p ) { GenerateJacks_Input( 3 ); GenerateJacks_Output( 1 ); SetJackFlags_Input( 0, HLSLJACKFLAGS_F1_TO_F4 ); SetJackFlags_Input( 1, HLSLJACKFLAGS_F1_TO_F4 ); SetJackFlags_Input( 2, HLSLJACKFLAGS_F1_TO_F4 ); //LockJackInput_Flags( 2, HLSLVAR_FLOAT1, "frac" ); SetJackFlags_Output( 0, HLSLJACKFLAGS_F1_TO_F4 ); GetJack_In( 0 )->SetName( "A" ); GetJack_In( 1 )->SetName( "B" ); GetJack_In( 2 )->SetName( "frac" ); }
void CNodeStdMorph::UpdateNode() { CUtlVector< BridgeRestoreInfo* >m_hRestoreBridges; CreateBridgeRestoreData_In( CBaseNode::BY_NAME, m_hRestoreBridges ); int numInputs = 2; if ( m_iSkinMode == STD_SKINNING_MODE_POS_NORMAL ) numInputs = 4; else if ( m_iSkinMode == STD_SKINNING_MODE_POS_NORMAL_TANGENT ) numInputs = 5; GenerateJacks_Input( numInputs ); LockJackInput_Flags( 0, HLSLVAR_FLOAT3, "Obj pos" ); LockJackInput_Flags( 1, HLSLVAR_FLOAT3, "Flex delta" ); //LockJackInput_Flags( 2, HLSLVAR_FLOAT2, "Morph coords" ); if ( m_iSkinMode >= STD_SKINNING_MODE_POS_NORMAL ) { LockJackInput_Flags( 2, HLSLVAR_FLOAT3, "Obj normal" ); LockJackInput_Flags( 3, HLSLVAR_FLOAT3, "Flex normal" ); } if ( m_iSkinMode >= STD_SKINNING_MODE_POS_NORMAL_TANGENT ) LockJackInput_Flags( 4, HLSLVAR_FLOAT3, "Tangent s" ); RestoreBridgesFromList_In( m_hRestoreBridges ); CreateBridgeRestoreData_Out( CBaseNode::BY_NAME, m_hRestoreBridges ); int numOutputs = 1; if ( m_iSkinMode == STD_SKINNING_MODE_POS_NORMAL ) numOutputs = 2; else if ( m_iSkinMode == STD_SKINNING_MODE_POS_NORMAL_TANGENT ) numOutputs = 3; GenerateJacks_Output( numOutputs ); LockJackOutput_Flags( 0, HLSLVAR_FLOAT3, "Obj pos" ); if ( m_iSkinMode >= STD_SKINNING_MODE_POS_NORMAL ) LockJackOutput_Flags( 1, HLSLVAR_FLOAT3, "Obj normal" ); if ( m_iSkinMode >= STD_SKINNING_MODE_POS_NORMAL_TANGENT ) LockJackOutput_Flags( 2, HLSLVAR_FLOAT3, "Obj tangent s" ); RestoreBridgesFromList_Out( m_hRestoreBridges ); }
void CNodeStdSkinning::UpdateNode() { CUtlVector< BridgeRestoreInfo* >m_hRestoreBridges; CreateBridgeRestoreData_In( CBaseNode::BY_NAME, m_hRestoreBridges ); int numInputs = 3; if ( m_iSkinMode == STD_SKINNING_MODE_POS_NORMAL ) numInputs = 4; else if ( m_iSkinMode == STD_SKINNING_MODE_POS_NORMAL_TANGENT ) numInputs = 5; GenerateJacks_Input( numInputs ); LockJackInput_Flags( 0, HLSLVAR_FLOAT4, "Bone indices" ); LockJackInput_Flags( 1, HLSLVAR_FLOAT4, "Bone weights" ); LockJackInput_Flags( 2, HLSLVAR_FLOAT3, "Obj pos" ); if ( m_iSkinMode >= STD_SKINNING_MODE_POS_NORMAL ) LockJackInput_Flags( 3, HLSLVAR_FLOAT3, "Obj normal" ); if ( m_iSkinMode >= STD_SKINNING_MODE_POS_NORMAL_TANGENT ) LockJackInput_Flags( 4, HLSLVAR_FLOAT4, "Obj tangent s" ); RestoreBridgesFromList_In( m_hRestoreBridges ); CreateBridgeRestoreData_Out( CBaseNode::BY_NAME, m_hRestoreBridges ); int numOutputs = 1; if ( m_iSkinMode == STD_SKINNING_MODE_POS_NORMAL ) numOutputs = 2; else if ( m_iSkinMode == STD_SKINNING_MODE_POS_NORMAL_TANGENT ) numOutputs = 4; GenerateJacks_Output( numOutputs ); LockJackOutput_Flags( 0, HLSLVAR_FLOAT3, "World pos" ); if ( m_iSkinMode >= STD_SKINNING_MODE_POS_NORMAL ) LockJackOutput_Flags( 1, HLSLVAR_FLOAT3, "World normal" ); if ( m_iSkinMode >= STD_SKINNING_MODE_POS_NORMAL_TANGENT ) { LockJackOutput_Flags( 2, HLSLVAR_FLOAT3, "World tangent s" ); LockJackOutput_Flags( 3, HLSLVAR_FLOAT3, "World tangent t" ); } RestoreBridgesFromList_Out( m_hRestoreBridges ); }
void CNodeCustom::UpdateNode() { CUtlVector< BridgeRestoreInfo* >m_hRestoreBridges_In; CreateBridgeRestoreData_In( CBaseNode::BY_INDEX, m_hRestoreBridges_In ); GenerateJacks_Input( m_hszVarNames_In.Count() ); //GenerateJacks_Input( numJacksIn ); CUtlVector< BridgeRestoreInfo* >m_hRestoreBridges_Out; CreateBridgeRestoreData_Out( CBaseNode::BY_INDEX, m_hRestoreBridges_Out ); GenerateJacks_Output( m_hszVarNames_Out.Count() ); for ( int i = 0; i < GetNumJacks_In(); i++ ) { char *name = NULL; if ( m_hszVarNames_In.Count() > i && m_hszVarNames_In[ i ]->pszName != NULL && Q_strlen( m_hszVarNames_In[ i ]->pszName ) > 0 ) name = m_hszVarNames_In[ i ]->pszName; else name = GenerateDefaultName( i ); LockJackInput_Flags( i, m_hszVarNames_In[ i ]->iFlag, name ); } for ( int i = 0; i < GetNumJacks_Out(); i++ ) { char *name = NULL; if ( m_hszVarNames_Out.Count() > i && m_hszVarNames_Out[ i ]->pszName != NULL && Q_strlen( m_hszVarNames_Out[ i ]->pszName ) > 0 ) name = m_hszVarNames_Out[ i ]->pszName; else name = GenerateDefaultName( i, true ); LockJackOutput_Flags( i, m_hszVarNames_Out[ i ]->iFlag, name ); } RestoreBridgesFromList_In( m_hRestoreBridges_In ); RestoreBridgesFromList_Out( m_hRestoreBridges_Out ); OnUpdateHierachy( NULL, NULL ); }
void CNodeConstant::UpdateNode() { CUtlVector< BridgeRestoreInfo* >m_hRestoreBridges; CreateBridgeRestoreData_Out( CBaseNode::BY_INDEX, m_hRestoreBridges ); GenerateJacks_Output( 1 ); if ( !m_iChannelInfo.IsActive() ) m_iChannelInfo.Tokenize( "0" ); Assert(m_iChannelInfo.IsActive()); SetJackFlags_Output( 0, HLSLJACKFLAGS_F1 ); LockJackOutput_Flags( 0, GetTypeFlagFromEnum(m_iChannelInfo.iActiveChannels) ); // HLSLVAR_FLOAT1 - HLSLVAR_FLOAT4 RestoreBridgesFromList_Out( m_hRestoreBridges ); }
void CNodeVSInput::Setup( SETUP_HLSL_VS_Input info ) { int numOutputs = 1; if ( info.bFlexDelta_enabled ) numOutputs += 2; if ( info.bBlendweights_enabled ) numOutputs += 2; if ( info.bNormal_enabled ) numOutputs += 1; if ( info.bTangentspace_enabled ) numOutputs += 2; numOutputs += info.iTexcoords_num; numOutputs += info.iVertexcolor_num; CUtlVector< BridgeRestoreInfo* >m_hRestoreBridges; CreateBridgeRestoreData_Out( CBaseNode::BY_NAME, m_hRestoreBridges ); GenerateJacks_Output( numOutputs ); int curOutput = 0; GetJack_Out( curOutput )->SetResourceType( RESOURCETYPE_POS_3 ); LockJackOutput_Flags( curOutput, HLSLVAR_FLOAT3, "Position" );curOutput++; if ( info.bFlexDelta_enabled ) { GetJack_Out( curOutput )->SetResourceType( RESOURCETYPE_FLEXDELTA ); LockJackOutput_Flags( curOutput, HLSLVAR_FLOAT3, "Flex offset" );curOutput++; GetJack_Out( curOutput )->SetResourceType( RESOURCETYPE_FLEXDELTA_NORMAL ); LockJackOutput_Flags( curOutput, HLSLVAR_FLOAT3, "Flex normal" );curOutput++; } if ( info.bBlendweights_enabled ) { GetJack_Out( curOutput )->SetResourceType( RESOURCETYPE_BONE_WEIGHTS ); LockJackOutput_Flags( curOutput, HLSLVAR_FLOAT4, "Bone weights" );curOutput++; GetJack_Out( curOutput )->SetResourceType( RESOURCETYPE_BONE_INDICES ); LockJackOutput_Flags( curOutput, HLSLVAR_FLOAT4, "Bone indices" );curOutput++; } if ( info.bNormal_enabled ) { int normalFlag = info.bNormal_enabled_compression ? HLSLVAR_FLOAT4 : HLSLVAR_FLOAT3; GetJack_Out( curOutput )->SetResourceType( info.bNormal_enabled_compression ? RESOURCETYPE_NORMAL_4 : RESOURCETYPE_NORMAL ); LockJackOutput_Flags( curOutput, normalFlag, "Normal" );curOutput++; } if ( info.bTangentspace_enabled ) { int tangentStype = info.bTangentspace_enabled_skinning ? HLSLVAR_FLOAT4 : HLSLVAR_FLOAT3; int tangentSRestype = info.bTangentspace_enabled_skinning ? RESOURCETYPE_TANGENTS_4 : RESOURCETYPE_TANGENTS_3; GetJack_Out( curOutput )->SetResourceType( tangentSRestype ); LockJackOutput_Flags( curOutput, tangentStype, "Tangent S" );curOutput++; GetJack_Out( curOutput )->SetResourceType( RESOURCETYPE_TANGENTT ); LockJackOutput_Flags( curOutput, HLSLVAR_FLOAT3, "Tangent T" );curOutput++; } for ( int i = 0; i < info.iTexcoords_num; i++ ) { Assert( i < 3 ); GetJack_Out( curOutput )->SetResourceType( RESOURCETYPE_TEXCOORD_0 + i ); LockJackOutput_Flags( curOutput, info.iDataTypeFlag_TexCoords[i], VarArgs("TexCoords %i",i) );curOutput++; } for ( int i = 0; i < info.iVertexcolor_num; i++ ) { Assert( i < 2 ); GetJack_Out( curOutput )->SetResourceType( RESOURCETYPE_COLOR_0 + i ); LockJackOutput_Flags( curOutput, info.iDataTypeFlag_Color[i], VarArgs("Color %i",i) );curOutput++; } curSetup = info; RestoreBridgesFromList_Out( m_hRestoreBridges ); }