Exemplo n.º 1
0
    public static MaterialSetAndVariantOption MakeWithDefaultVariants(MaterialSetOption materialSet)
    {
        var variantSelections = materialSet.Settings.VariantCategories
                                .ToImmutableDictionary(category => category.Name, category => category.Variants[0].Name);

        return(new MaterialSetAndVariantOption(materialSet, variantSelections));
    }
    public static FigureDefinition Load(IArchiveDirectory dataDir, string name, FigureDefinition parent)
    {
        IArchiveDirectory figureDir = dataDir.Subdirectory("figures").Subdirectory(name);

        var channelSystemRecipe = Persistance.Load <ChannelSystemRecipe>(figureDir.File("channel-system-recipe.dat"));
        var channelSystem       = channelSystemRecipe.Bake(parent?.ChannelSystem);

        BoneSystem boneSystem;

        RigidTransform[] childToParentBindPoseTransforms;
        if (parent != null)
        {
            boneSystem = parent.BoneSystem;
            childToParentBindPoseTransforms = Persistance.Load <RigidTransform[]>(figureDir.File("child-to-parent-bind-pose-transforms.dat"));
        }
        else
        {
            var boneSystemRecipe = Persistance.Load <BoneSystemRecipe>(figureDir.File("bone-system-recipe.dat"));
            boneSystem = boneSystemRecipe.Bake(channelSystem.ChannelsByName);
            childToParentBindPoseTransforms = null;
        }

        var shapeOptions       = Shape.LoadAllForFigure(figureDir, channelSystem);
        var materialSetOptions = MaterialSetOption.LoadAllForFigure(figureDir);

        return(new FigureDefinition(name, figureDir,
                                    channelSystem, boneSystem,
                                    childToParentBindPoseTransforms,
                                    shapeOptions, materialSetOptions));
    }
    public static List <MaterialSetOption> LoadAllForFigure(IArchiveDirectory figureDir)
    {
        List <MaterialSetOption> materialSets = new List <MaterialSetOption>();

        IArchiveDirectory materialSetsDirectory = figureDir.Subdirectory("material-sets");

        foreach (var materialSetDirectory in materialSetsDirectory.Subdirectories)
        {
            var materialSet = MaterialSetOption.Load(materialSetDirectory);
            materialSets.Add(materialSet);
        }

        return(materialSets);
    }
Exemplo n.º 4
0
 private void Model_MaterialSetChanged(MaterialSetOption oldMaterialSet, MaterialSetOption newMaterialSet)
 {
     SyncMaterialSet();
 }
Exemplo n.º 5
0
 public CharacterMenuItem(FigureModel model, Shape shape, MaterialSetOption materialSet)
 {
     this.model       = model;
     this.shape       = shape;
     this.materialSet = materialSet;
 }
Exemplo n.º 6
0
 public MaterialSetAndVariantOption(MaterialSetOption option, ImmutableDictionary <string, string> variantSelection)
 {
     MaterialSet       = option;
     VariantSelections = variantSelection;
 }
 public MaterialSetMenuItem(FigureModel model, MaterialSetOption materialSet)
 {
     this.model       = model;
     this.materialSet = materialSet;
 }