📄 bifs_node_tables.c
字号:
if (NodeType == 1) return 0; NodeType -= 2; switch (Context_NDT_Tag) { case NDT_SFWorldNode: if (NodeType >= SFWorldNode_V2_Count) return 0; return SFWorldNode_V2_TypeToTag[NodeType]; case NDT_SF3DNode: if (NodeType >= SF3DNode_V2_Count) return 0; return SF3DNode_V2_TypeToTag[NodeType]; case NDT_SF2DNode: if (NodeType >= SF2DNode_V2_Count) return 0; return SF2DNode_V2_TypeToTag[NodeType]; case NDT_SFGeometryNode: if (NodeType >= SFGeometryNode_V2_Count) return 0; return SFGeometryNode_V2_TypeToTag[NodeType]; case NDT_SFMaterialNode: if (NodeType >= SFMaterialNode_V2_Count) return 0; return SFMaterialNode_V2_TypeToTag[NodeType]; case NDT_SFBAPNode: if (NodeType >= SFBAPNode_V2_Count) return 0; return SFBAPNode_V2_TypeToTag[NodeType]; case NDT_SFBDPNode: if (NodeType >= SFBDPNode_V2_Count) return 0; return SFBDPNode_V2_TypeToTag[NodeType]; case NDT_SFBodyDefTableNode: if (NodeType >= SFBodyDefTableNode_V2_Count) return 0; return SFBodyDefTableNode_V2_TypeToTag[NodeType]; case NDT_SFBodySegmentConnectionHintNode: if (NodeType >= SFBodySegmentConnectionHintNode_V2_Count) return 0; return SFBodySegmentConnectionHintNode_V2_TypeToTag[NodeType]; case NDT_SFPerceptualParameterNode: if (NodeType >= SFPerceptualParameterNode_V2_Count) return 0; return SFPerceptualParameterNode_V2_TypeToTag[NodeType]; default: return 0; }}u32 NDT_V2_GetNumBits(u32 NDT_Tag){ switch (NDT_Tag) { case NDT_SFWorldNode: return SFWorldNode_V2_NUMBITS; case NDT_SF3DNode: return SF3DNode_V2_NUMBITS; case NDT_SF2DNode: return SF2DNode_V2_NUMBITS; case NDT_SFGeometryNode: return SFGeometryNode_V2_NUMBITS; case NDT_SFMaterialNode: return SFMaterialNode_V2_NUMBITS; case NDT_SFBAPNode: return SFBAPNode_V2_NUMBITS; case NDT_SFBDPNode: return SFBDPNode_V2_NUMBITS; case NDT_SFBodyDefTableNode: return SFBodyDefTableNode_V2_NUMBITS; case NDT_SFBodySegmentConnectionHintNode: return SFBodySegmentConnectionHintNode_V2_NUMBITS; case NDT_SFPerceptualParameterNode: return SFPerceptualParameterNode_V2_NUMBITS; default: return 1; }}u32 NDT_V2_GetNodeType(u32 NDT_Tag, u32 NodeTag){ if(!NDT_Tag || !NodeTag) return 0; switch(NDT_Tag) { case NDT_SFWorldNode: return ALL_GetNodeType(SFWorldNode_V2_TypeToTag, SFWorldNode_V2_Count, NodeTag, GF_BIFS_V2); case NDT_SF3DNode: return ALL_GetNodeType(SF3DNode_V2_TypeToTag, SF3DNode_V2_Count, NodeTag, GF_BIFS_V2); case NDT_SF2DNode: return ALL_GetNodeType(SF2DNode_V2_TypeToTag, SF2DNode_V2_Count, NodeTag, GF_BIFS_V2); case NDT_SFGeometryNode: return ALL_GetNodeType(SFGeometryNode_V2_TypeToTag, SFGeometryNode_V2_Count, NodeTag, GF_BIFS_V2); case NDT_SFMaterialNode: return ALL_GetNodeType(SFMaterialNode_V2_TypeToTag, SFMaterialNode_V2_Count, NodeTag, GF_BIFS_V2); case NDT_SFBAPNode: return ALL_GetNodeType(SFBAPNode_V2_TypeToTag, SFBAPNode_V2_Count, NodeTag, GF_BIFS_V2); case NDT_SFBDPNode: return ALL_GetNodeType(SFBDPNode_V2_TypeToTag, SFBDPNode_V2_Count, NodeTag, GF_BIFS_V2); case NDT_SFBodyDefTableNode: return ALL_GetNodeType(SFBodyDefTableNode_V2_TypeToTag, SFBodyDefTableNode_V2_Count, NodeTag, GF_BIFS_V2); case NDT_SFBodySegmentConnectionHintNode: return ALL_GetNodeType(SFBodySegmentConnectionHintNode_V2_TypeToTag, SFBodySegmentConnectionHintNode_V2_Count, NodeTag, GF_BIFS_V2); case NDT_SFPerceptualParameterNode: return ALL_GetNodeType(SFPerceptualParameterNode_V2_TypeToTag, SFPerceptualParameterNode_V2_Count, NodeTag, GF_BIFS_V2); default: return 0; }}u32 NDT_V3_GetNodeTag(u32 Context_NDT_Tag, u32 NodeType){ if (!NodeType) return 0; /* adjust according to the table version */ /* v3: 0 reserved for extensions */ NodeType -= 1; switch (Context_NDT_Tag) { case NDT_SFWorldNode: if (NodeType >= SFWorldNode_V3_Count) return 0; return SFWorldNode_V3_TypeToTag[NodeType]; case NDT_SF3DNode: if (NodeType >= SF3DNode_V3_Count) return 0; return SF3DNode_V3_TypeToTag[NodeType]; case NDT_SF2DNode: if (NodeType >= SF2DNode_V3_Count) return 0; return SF2DNode_V3_TypeToTag[NodeType]; case NDT_SFTemporalNode: if (NodeType >= SFTemporalNode_V3_Count) return 0; return SFTemporalNode_V3_TypeToTag[NodeType]; default: return 0; }}u32 NDT_V3_GetNumBits(u32 NDT_Tag){ switch (NDT_Tag) { case NDT_SFWorldNode: return SFWorldNode_V3_NUMBITS; case NDT_SF3DNode: return SF3DNode_V3_NUMBITS; case NDT_SF2DNode: return SF2DNode_V3_NUMBITS; case NDT_SFTemporalNode: return SFTemporalNode_V3_NUMBITS; default: return 0; }}u32 NDT_V3_GetNodeType(u32 NDT_Tag, u32 NodeTag){ if(!NDT_Tag || !NodeTag) return 0; switch(NDT_Tag) { case NDT_SFWorldNode: return ALL_GetNodeType(SFWorldNode_V3_TypeToTag, SFWorldNode_V3_Count, NodeTag, GF_BIFS_V3); case NDT_SF3DNode: return ALL_GetNodeType(SF3DNode_V3_TypeToTag, SF3DNode_V3_Count, NodeTag, GF_BIFS_V3); case NDT_SF2DNode: return ALL_GetNodeType(SF2DNode_V3_TypeToTag, SF2DNode_V3_Count, NodeTag, GF_BIFS_V3); case NDT_SFTemporalNode: return ALL_GetNodeType(SFTemporalNode_V3_TypeToTag, SFTemporalNode_V3_Count, NodeTag, GF_BIFS_V3); default: return 0; }}u32 NDT_V4_GetNodeTag(u32 Context_NDT_Tag, u32 NodeType){ if (!NodeType) return 0; /* adjust according to the table version */ /* v4: 0 reserved for extensions */ NodeType -= 1; switch (Context_NDT_Tag) { case NDT_SFWorldNode: if (NodeType >= SFWorldNode_V4_Count) return 0; return SFWorldNode_V4_TypeToTag[NodeType]; case NDT_SF3DNode: if (NodeType >= SF3DNode_V4_Count) return 0; return SF3DNode_V4_TypeToTag[NodeType]; case NDT_SF2DNode: if (NodeType >= SF2DNode_V4_Count) return 0; return SF2DNode_V4_TypeToTag[NodeType]; case NDT_SFTextureNode: if (NodeType >= SFTextureNode_V4_Count) return 0; return SFTextureNode_V4_TypeToTag[NodeType]; default: return 0; }}u32 NDT_V4_GetNumBits(u32 NDT_Tag){ switch (NDT_Tag) { case NDT_SFWorldNode: return SFWorldNode_V4_NUMBITS; case NDT_SF3DNode: return SF3DNode_V4_NUMBITS; case NDT_SF2DNode: return SF2DNode_V4_NUMBITS; case NDT_SFTextureNode: return SFTextureNode_V4_NUMBITS; default: return 0; }}u32 NDT_V4_GetNodeType(u32 NDT_Tag, u32 NodeTag){ if(!NDT_Tag || !NodeTag) return 0; switch(NDT_Tag) { case NDT_SFWorldNode: return ALL_GetNodeType(SFWorldNode_V4_TypeToTag, SFWorldNode_V4_Count, NodeTag, GF_BIFS_V4); case NDT_SF3DNode: return ALL_GetNodeType(SF3DNode_V4_TypeToTag, SF3DNode_V4_Count, NodeTag, GF_BIFS_V4); case NDT_SF2DNode: return ALL_GetNodeType(SF2DNode_V4_TypeToTag, SF2DNode_V4_Count, NodeTag, GF_BIFS_V4); case NDT_SFTextureNode: return ALL_GetNodeType(SFTextureNode_V4_TypeToTag, SFTextureNode_V4_Count, NodeTag, GF_BIFS_V4); default: return 0; }}u32 NDT_V5_GetNodeTag(u32 Context_NDT_Tag, u32 NodeType){ if (!NodeType) return 0; /* adjust according to the table version */ /* v5: 0 reserved for extensions */ NodeType -= 1; switch (Context_NDT_Tag) { case NDT_SFWorldNode: if (NodeType >= SFWorldNode_V5_Count) return 0; return SFWorldNode_V5_TypeToTag[NodeType]; case NDT_SF3DNode: if (NodeType >= SF3DNode_V5_Count) return 0; return SF3DNode_V5_TypeToTag[NodeType]; case NDT_SF2DNode: if (NodeType >= SF2DNode_V5_Count) return 0; return SF2DNode_V5_TypeToTag[NodeType]; case NDT_SFAppearanceNode: if (NodeType >= SFAppearanceNode_V5_Count) return 0; return SFAppearanceNode_V5_TypeToTag[NodeType]; case NDT_SFGeometryNode: if (NodeType >= SFGeometryNode_V5_Count) return 0; return SFGeometryNode_V5_TypeToTag[NodeType]; case NDT_SFTextureNode: if (NodeType >= SFTextureNode_V5_Count) return 0; return SFTextureNode_V5_TypeToTag[NodeType]; case NDT_SFDepthImageNode: if (NodeType >= SFDepthImageNode_V5_Count) return 0; return SFDepthImageNode_V5_TypeToTag[NodeType]; case NDT_SFBlendListNode: if (NodeType >= SFBlendListNode_V5_Count) return 0; return SFBlendListNode_V5_TypeToTag[NodeType]; case NDT_SFFrameListNode: if (NodeType >= SFFrameListNode_V5_Count) return 0; return SFFrameListNode_V5_TypeToTag[NodeType]; case NDT_SFLightMapNode: if (NodeType >= SFLightMapNode_V5_Count) return 0; return SFLightMapNode_V5_TypeToTag[NodeType]; case NDT_SFSurfaceMapNode: if (NodeType >= SFSurfaceMapNode_V5_Count) return 0; return SFSurfaceMapNode_V5_TypeToTag[NodeType]; case NDT_SFViewMapNode: if (NodeType >= SFViewMapNode_V5_Count) return 0; return SFViewMapNode_V5_TypeToTag[NodeType]; case NDT_SFParticleInitializerNode: if (NodeType >= SFParticleInitializerNode_V5_Count) return 0; return SFParticleInitializerNode_V5_TypeToTag[NodeType]; case NDT_SFInfluenceNode: if (NodeType >= SFInfluenceNode_V5_Count) return 0; return SFInfluenceNode_V5_TypeToTag[NodeType]; case NDT_SFDepthTextureNode: if (NodeType >= SFDepthTextureNode_V5_Count) return 0; return SFDepthTextureNode_V5_TypeToTag[NodeType]; case NDT_SFSBBoneNode: if (NodeType >= SFSBBoneNode_V5_Count) return 0; return SFSBBoneNode_V5_TypeToTag[NodeType]; case NDT_SFSBMuscleNode: if (NodeType >= SFSBMuscleNode_V5_Count) return 0; return SFSBMuscleNode_V5_TypeToTag[NodeType]; case NDT_SFSBSegmentNode: if (NodeType >= SFSBSegmentNode_V5_Count) return 0; return SFSBSegmentNode_V5_TypeToTag[NodeType]; case NDT_SFSBSiteNode: if (NodeType >= SFSBSiteNode_V5_Count) return 0; return SFSBSiteNode_V5_TypeToTag[NodeType]; case NDT_SFBaseMeshNode: if (NodeType >= SFBaseMeshNode_V5_Count) return 0; return SFBaseMeshNode_V5_TypeToTag[NodeType]; case NDT_SFSubdivSurfaceSectorNode: if (NodeType >= SFSubdivSurfaceSectorNode_V5_Count) return 0; return SFSubdivSurfaceSectorNode_V5_TypeToTag[NodeType]; default: return 0; }}u32 NDT_V5_GetNumBits(u32 NDT_Tag){ switch (NDT_Tag) { case NDT_SFWorldNode: return SFWorldNode_V5_NUMBITS; case NDT_SF3DNode: return SF3DNode_V5_NUMBITS; case NDT_SF2DNode: return SF2DNode_V5_NUMBITS; case NDT_SFAppearanceNode:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -