private static Block GetNodeModifierChain(Node node, U3DDocument doc) { var w = new BlockWriter(); w.WriteString(node.Name); // modifier chain name w.WriteU32(0); // modifier chain type: 0 = node modifier chain w.WriteU32(0); // modifier chain attributes: 0 = neither bounding sphere nor // Bounding box info present. w.WritePadding(); w.WriteU32(2); // modifier count in this chain w.WriteBlock(GetModelNodeBlock(node)); w.WriteBlock(GetShadingModifierBlock(node.Name, doc.Meshes[node.Mesh].Shader)); return(w.GetBlock(BlockType.ModifierChain)); }
private static Block GetTextureResourceModifierChain(Texture texture) { var w = new BlockWriter(); w.WriteString(texture.Name); // modifier chain name w.WriteU32(2); // modifier chain type: 2 = texture resource modifier chain w.WriteU32(0); // modifier chain attributes: 0 = neither bounding sphere nor w.WritePadding(); // modifier chain padding w.WriteU32(1); // modifier count in this chain w.WriteBlock(GetTextureDeclarationBlock(texture)); return(w.GetBlock(BlockType.ModifierChain)); }
private static Block GetModelResourceModifierChain(Mesh mesh) { var w = new BlockWriter(); w.WriteString(mesh.Name); // modifier chain name, bonded to ModelNodeBlock.ModelResourceName w.WriteU32(1); // modifier chain type: 1 = model resource modifier chain w.WriteU32(0); // modifier chain attributes: 0 = neither bounding sphere nor // Bounding box info present. Padding. w.WritePadding(); w.WriteU32(1); // modifier count in this chain w.WriteBlock(GetMeshDeclarationBlock(mesh)); return(w.GetBlock(BlockType.ModifierChain)); }
private static Block GetGroupNodeModifierChain(Node node) { var w = new BlockWriter(); w.WriteString(node.Name); // modifier chain name w.WriteU32(0); // modifier chain type: 0 = node modifier chain w.WriteU32(0); // modifier chain attributes: 0 = neither bounding sphere nor // Bounding box info present. w.WritePadding(); w.WriteU32(1); // modifier count in this chain w.WriteBlock(GetGroupNodeBlock(node)); return(w.GetBlock(BlockType.ModifierChain)); }