public RenderObject GetRenderObject(Table.Table table, string id, Origin origin, bool asRightHanded)
        {
            var(preMatrix, _) = GetPreMatrix(table, origin, asRightHanded);
            switch (id)
            {
            case Plate:
                return(new RenderObject(
                           id,
                           SpinnerPlateMesh.Clone().Transform(preMatrix),
                           new PbrMaterial(table.GetMaterial(_data.Material), table.GetTexture(_data.Image)),
                           _data.IsVisible
                           ));

            case Bracket:
                return(new RenderObject(
                           id,
                           SpinnerBracketMesh.Clone().Transform(preMatrix),
                           new PbrMaterial(GetBracketMaterial(), table.GetTexture(_data.Image)),
                           _data.IsVisible && _data.ShowBracket
                           ));

            default:
                throw new ArgumentException("Unknown spinner mesh \"" + id + "\".");
            }
        }
Example #2
0
        public Mesh GetMesh(string id, Table.Table table, Origin origin, bool asRightHanded)
        {
            var(preMatrix, _) = GetPreMatrix(BaseHeight(table), origin, asRightHanded);
            switch (id)
            {
            case Plate:
                return(SpinnerPlateMesh.Clone().Transform(preMatrix));

            case Bracket:
                return(SpinnerBracketMesh.Clone().Transform(preMatrix));
            }
            throw new ArgumentException($"Invalid spinner mesh ID \"{id}\"");
        }
Example #3
0
        public RenderObjectGroup GetRenderObjects(Table.Table table, Origin origin, bool asRightHanded)
        {
            var(preMatrix, _) = GetPreMatrix(table, origin, asRightHanded);
            var postMatrix = GetPostMatrix(table, origin);

            return(new RenderObjectGroup(_data.Name, "Spinners", postMatrix, new RenderObject(
                                             "Plate",
                                             SpinnerPlateMesh.Clone().Transform(preMatrix),
                                             new PbrMaterial(table.GetMaterial(_data.Material), table.GetTexture(_data.Image)),
                                             _data.IsVisible
                                             ),
                                         new RenderObject(
                                             "Bracket",
                                             SpinnerBracketMesh.Clone().Transform(preMatrix),
                                             new PbrMaterial(GetBracketMaterial(), table.GetTexture(_data.Image)),
                                             _data.IsVisible && _data.ShowBracket
                                             )
                                         ));
        }