📄 bifs_node_tables.c
字号:
return SFAppearanceNode_V5_NUMBITS; case NDT_SFGeometryNode: return SFGeometryNode_V5_NUMBITS; case NDT_SFTextureNode: return SFTextureNode_V5_NUMBITS; case NDT_SFDepthImageNode: return SFDepthImageNode_V5_NUMBITS; case NDT_SFBlendListNode: return SFBlendListNode_V5_NUMBITS; case NDT_SFFrameListNode: return SFFrameListNode_V5_NUMBITS; case NDT_SFLightMapNode: return SFLightMapNode_V5_NUMBITS; case NDT_SFSurfaceMapNode: return SFSurfaceMapNode_V5_NUMBITS; case NDT_SFViewMapNode: return SFViewMapNode_V5_NUMBITS; case NDT_SFParticleInitializerNode: return SFParticleInitializerNode_V5_NUMBITS; case NDT_SFInfluenceNode: return SFInfluenceNode_V5_NUMBITS; case NDT_SFDepthTextureNode: return SFDepthTextureNode_V5_NUMBITS; case NDT_SFSBBoneNode: return SFSBBoneNode_V5_NUMBITS; case NDT_SFSBMuscleNode: return SFSBMuscleNode_V5_NUMBITS; case NDT_SFSBSegmentNode: return SFSBSegmentNode_V5_NUMBITS; case NDT_SFSBSiteNode: return SFSBSiteNode_V5_NUMBITS; case NDT_SFBaseMeshNode: return SFBaseMeshNode_V5_NUMBITS; case NDT_SFSubdivSurfaceSectorNode: return SFSubdivSurfaceSectorNode_V5_NUMBITS; default: return 0; }}u32 NDT_V5_GetNodeType(u32 NDT_Tag, u32 NodeTag){ if(!NDT_Tag || !NodeTag) return 0; switch(NDT_Tag) { case NDT_SFWorldNode: return ALL_GetNodeType(SFWorldNode_V5_TypeToTag, SFWorldNode_V5_Count, NodeTag, GF_BIFS_V5); case NDT_SF3DNode: return ALL_GetNodeType(SF3DNode_V5_TypeToTag, SF3DNode_V5_Count, NodeTag, GF_BIFS_V5); case NDT_SF2DNode: return ALL_GetNodeType(SF2DNode_V5_TypeToTag, SF2DNode_V5_Count, NodeTag, GF_BIFS_V5); case NDT_SFAppearanceNode: return ALL_GetNodeType(SFAppearanceNode_V5_TypeToTag, SFAppearanceNode_V5_Count, NodeTag, GF_BIFS_V5); case NDT_SFGeometryNode: return ALL_GetNodeType(SFGeometryNode_V5_TypeToTag, SFGeometryNode_V5_Count, NodeTag, GF_BIFS_V5); case NDT_SFTextureNode: return ALL_GetNodeType(SFTextureNode_V5_TypeToTag, SFTextureNode_V5_Count, NodeTag, GF_BIFS_V5); case NDT_SFDepthImageNode: return ALL_GetNodeType(SFDepthImageNode_V5_TypeToTag, SFDepthImageNode_V5_Count, NodeTag, GF_BIFS_V5); case NDT_SFBlendListNode: return ALL_GetNodeType(SFBlendListNode_V5_TypeToTag, SFBlendListNode_V5_Count, NodeTag, GF_BIFS_V5); case NDT_SFFrameListNode: return ALL_GetNodeType(SFFrameListNode_V5_TypeToTag, SFFrameListNode_V5_Count, NodeTag, GF_BIFS_V5); case NDT_SFLightMapNode: return ALL_GetNodeType(SFLightMapNode_V5_TypeToTag, SFLightMapNode_V5_Count, NodeTag, GF_BIFS_V5); case NDT_SFSurfaceMapNode: return ALL_GetNodeType(SFSurfaceMapNode_V5_TypeToTag, SFSurfaceMapNode_V5_Count, NodeTag, GF_BIFS_V5); case NDT_SFViewMapNode: return ALL_GetNodeType(SFViewMapNode_V5_TypeToTag, SFViewMapNode_V5_Count, NodeTag, GF_BIFS_V5); case NDT_SFParticleInitializerNode: return ALL_GetNodeType(SFParticleInitializerNode_V5_TypeToTag, SFParticleInitializerNode_V5_Count, NodeTag, GF_BIFS_V5); case NDT_SFInfluenceNode: return ALL_GetNodeType(SFInfluenceNode_V5_TypeToTag, SFInfluenceNode_V5_Count, NodeTag, GF_BIFS_V5); case NDT_SFDepthTextureNode: return ALL_GetNodeType(SFDepthTextureNode_V5_TypeToTag, SFDepthTextureNode_V5_Count, NodeTag, GF_BIFS_V5); case NDT_SFSBBoneNode: return ALL_GetNodeType(SFSBBoneNode_V5_TypeToTag, SFSBBoneNode_V5_Count, NodeTag, GF_BIFS_V5); case NDT_SFSBMuscleNode: return ALL_GetNodeType(SFSBMuscleNode_V5_TypeToTag, SFSBMuscleNode_V5_Count, NodeTag, GF_BIFS_V5); case NDT_SFSBSegmentNode: return ALL_GetNodeType(SFSBSegmentNode_V5_TypeToTag, SFSBSegmentNode_V5_Count, NodeTag, GF_BIFS_V5); case NDT_SFSBSiteNode: return ALL_GetNodeType(SFSBSiteNode_V5_TypeToTag, SFSBSiteNode_V5_Count, NodeTag, GF_BIFS_V5); case NDT_SFBaseMeshNode: return ALL_GetNodeType(SFBaseMeshNode_V5_TypeToTag, SFBaseMeshNode_V5_Count, NodeTag, GF_BIFS_V5); case NDT_SFSubdivSurfaceSectorNode: return ALL_GetNodeType(SFSubdivSurfaceSectorNode_V5_TypeToTag, SFSubdivSurfaceSectorNode_V5_Count, NodeTag, GF_BIFS_V5); default: return 0; }}u32 NDT_V6_GetNodeTag(u32 Context_NDT_Tag, u32 NodeType){ if (!NodeType) return 0; /* adjust according to the table version */ /* v6: 0 reserved for extensions */ NodeType -= 1; switch (Context_NDT_Tag) { case NDT_SFWorldNode: if (NodeType >= SFWorldNode_V6_Count) return 0; return SFWorldNode_V6_TypeToTag[NodeType]; case NDT_SF3DNode: if (NodeType >= SF3DNode_V6_Count) return 0; return SF3DNode_V6_TypeToTag[NodeType]; case NDT_SF2DNode: if (NodeType >= SF2DNode_V6_Count) return 0; return SF2DNode_V6_TypeToTag[NodeType]; case NDT_SFGeometryNode: if (NodeType >= SFGeometryNode_V6_Count) return 0; return SFGeometryNode_V6_TypeToTag[NodeType]; case NDT_SFTextureNode: if (NodeType >= SFTextureNode_V6_Count) return 0; return SFTextureNode_V6_TypeToTag[NodeType]; case NDT_SFFontStyleNode: if (NodeType >= SFFontStyleNode_V6_Count) return 0; return SFFontStyleNode_V6_TypeToTag[NodeType]; case NDT_SFLinePropertiesNode: if (NodeType >= SFLinePropertiesNode_V6_Count) return 0; return SFLinePropertiesNode_V6_TypeToTag[NodeType]; case NDT_SFTextureTransformNode: if (NodeType >= SFTextureTransformNode_V6_Count) return 0; return SFTextureTransformNode_V6_TypeToTag[NodeType]; case NDT_SFViewportNode: if (NodeType >= SFViewportNode_V6_Count) return 0; return SFViewportNode_V6_TypeToTag[NodeType]; default: return 0; }}u32 NDT_V6_GetNumBits(u32 NDT_Tag){ switch (NDT_Tag) { case NDT_SFWorldNode: return SFWorldNode_V6_NUMBITS; case NDT_SF3DNode: return SF3DNode_V6_NUMBITS; case NDT_SF2DNode: return SF2DNode_V6_NUMBITS; case NDT_SFGeometryNode: return SFGeometryNode_V6_NUMBITS; case NDT_SFTextureNode: return SFTextureNode_V6_NUMBITS; case NDT_SFFontStyleNode: return SFFontStyleNode_V6_NUMBITS; case NDT_SFLinePropertiesNode: return SFLinePropertiesNode_V6_NUMBITS; case NDT_SFTextureTransformNode: return SFTextureTransformNode_V6_NUMBITS; case NDT_SFViewportNode: return SFViewportNode_V6_NUMBITS; default: return 0; }}u32 NDT_V6_GetNodeType(u32 NDT_Tag, u32 NodeTag){ if(!NDT_Tag || !NodeTag) return 0; switch(NDT_Tag) { case NDT_SFWorldNode: return ALL_GetNodeType(SFWorldNode_V6_TypeToTag, SFWorldNode_V6_Count, NodeTag, GF_BIFS_V6); case NDT_SF3DNode: return ALL_GetNodeType(SF3DNode_V6_TypeToTag, SF3DNode_V6_Count, NodeTag, GF_BIFS_V6); case NDT_SF2DNode: return ALL_GetNodeType(SF2DNode_V6_TypeToTag, SF2DNode_V6_Count, NodeTag, GF_BIFS_V6); case NDT_SFGeometryNode: return ALL_GetNodeType(SFGeometryNode_V6_TypeToTag, SFGeometryNode_V6_Count, NodeTag, GF_BIFS_V6); case NDT_SFTextureNode: return ALL_GetNodeType(SFTextureNode_V6_TypeToTag, SFTextureNode_V6_Count, NodeTag, GF_BIFS_V6); case NDT_SFFontStyleNode: return ALL_GetNodeType(SFFontStyleNode_V6_TypeToTag, SFFontStyleNode_V6_Count, NodeTag, GF_BIFS_V6); case NDT_SFLinePropertiesNode: return ALL_GetNodeType(SFLinePropertiesNode_V6_TypeToTag, SFLinePropertiesNode_V6_Count, NodeTag, GF_BIFS_V6); case NDT_SFTextureTransformNode: return ALL_GetNodeType(SFTextureTransformNode_V6_TypeToTag, SFTextureTransformNode_V6_Count, NodeTag, GF_BIFS_V6); case NDT_SFViewportNode: return ALL_GetNodeType(SFViewportNode_V6_TypeToTag, SFViewportNode_V6_Count, NodeTag, GF_BIFS_V6); default: return 0; }}u32 gf_bifs_ndt_get_node_type(u32 NDT_Tag, u32 NodeType, u32 Version){ switch (Version) { case GF_BIFS_V1: return NDT_V1_GetNodeTag(NDT_Tag, NodeType); case GF_BIFS_V2: return NDT_V2_GetNodeTag(NDT_Tag, NodeType); case GF_BIFS_V3: return NDT_V3_GetNodeTag(NDT_Tag, NodeType); case GF_BIFS_V4: return NDT_V4_GetNodeTag(NDT_Tag, NodeType); case GF_BIFS_V5: return NDT_V5_GetNodeTag(NDT_Tag, NodeType); case GF_BIFS_V6: return NDT_V6_GetNodeTag(NDT_Tag, NodeType); default: return 0; }}u32 gf_bifs_get_ndt_bits(u32 NDT_Tag, u32 Version){ switch (Version) { case GF_BIFS_V1: return NDT_V1_GetNumBits(NDT_Tag); case GF_BIFS_V2: return NDT_V2_GetNumBits(NDT_Tag); case GF_BIFS_V3: return NDT_V3_GetNumBits(NDT_Tag); case GF_BIFS_V4: return NDT_V4_GetNumBits(NDT_Tag); case GF_BIFS_V5: return NDT_V5_GetNumBits(NDT_Tag); case GF_BIFS_V6: return NDT_V6_GetNumBits(NDT_Tag); default: return 0; }}u32 gf_bifs_get_node_type(u32 NDT_Tag, u32 NodeTag, u32 Version){ switch (Version) { case GF_BIFS_V1: return NDT_V1_GetNodeType(NDT_Tag, NodeTag); case GF_BIFS_V2: return NDT_V2_GetNodeType(NDT_Tag, NodeTag); case GF_BIFS_V3: return NDT_V3_GetNodeType(NDT_Tag, NodeTag); case GF_BIFS_V4: return NDT_V4_GetNodeType(NDT_Tag, NodeTag); case GF_BIFS_V5: return NDT_V5_GetNodeType(NDT_Tag, NodeTag); case GF_BIFS_V6: return NDT_V6_GetNodeType(NDT_Tag, NodeTag); default: return 0; }}u32 GetChildrenNDT(GF_Node *node){ if (!node) return 0; switch (gf_node_get_tag(node)) { case TAG_MPEG4_Anchor: return NDT_SF3DNode; case TAG_MPEG4_AudioBuffer: return NDT_SFAudioNode; case TAG_MPEG4_AudioDelay: return NDT_SFAudioNode; case TAG_MPEG4_AudioFX: return NDT_SFAudioNode; case TAG_MPEG4_AudioMix: return NDT_SFAudioNode; case TAG_MPEG4_AudioSource: return NDT_SFAudioNode; case TAG_MPEG4_AudioSwitch: return NDT_SFAudioNode; case TAG_MPEG4_Billboard: return NDT_SF3DNode; case TAG_MPEG4_Collision: return NDT_SF3DNode; case TAG_MPEG4_CompositeTexture2D: return NDT_SF2DNode; case TAG_MPEG4_CompositeTexture3D: return NDT_SF3DNode; case TAG_MPEG4_Form: return NDT_SF2DNode; case TAG_MPEG4_Group: return NDT_SF3DNode; case TAG_MPEG4_Layer2D: return NDT_SF2DNode; case TAG_MPEG4_Layer3D: return NDT_SF3DNode; case TAG_MPEG4_Layout: return NDT_SF2DNode; case TAG_MPEG4_OrderedGroup: return NDT_SF3DNode; case TAG_MPEG4_Transform: return NDT_SF3DNode; case TAG_MPEG4_Transform2D: return NDT_SF2DNode; case TAG_MPEG4_TemporalTransform: return NDT_SF3DNode; case TAG_MPEG4_TemporalGroup: return NDT_SFTemporalNode; case TAG_MPEG4_Clipper2D: return NDT_SF2DNode; case TAG_MPEG4_ColorTransform: return NDT_SF3DNode; case TAG_MPEG4_PathLayout: return NDT_SF2DNode; case TAG_MPEG4_TransformMatrix2D: return NDT_SF2DNode; default: return 0; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -