< Summary

Information
Class: JeremyAnsel.Media.WavefrontObj.ObjFile
Assembly: JeremyAnsel.Media.WavefrontObj
File(s): C:\projects\jeremyansel-media-wavefrontobj\JeremyAnsel.Media.WavefrontObj\JeremyAnsel.Media.WavefrontObj\ObjFile.cs
Line coverage
100%
Covered lines: 57
Uncovered lines: 0
Coverable lines: 57
Total lines: 125
Line coverage: 100%
Branch coverage
100%
Covered branches: 6
Total branches: 6
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor()100%11100%
get_HeaderText()100%11100%
set_HeaderText(...)100%11100%
get_Vertices()100%11100%
set_Vertices(...)100%11100%
get_ParameterSpaceVertices()100%11100%
set_ParameterSpaceVertices(...)100%11100%
get_VertexNormals()100%11100%
set_VertexNormals(...)100%11100%
get_TextureVertices()100%11100%
set_TextureVertices(...)100%11100%
get_Points()100%11100%
set_Points(...)100%11100%
get_Lines()100%11100%
set_Lines(...)100%11100%
get_Faces()100%11100%
set_Faces(...)100%11100%
get_Curves()100%11100%
set_Curves(...)100%11100%
get_Curves2D()100%11100%
set_Curves2D(...)100%11100%
get_Surfaces()100%11100%
set_Surfaces(...)100%11100%
get_SurfaceConnections()100%11100%
set_SurfaceConnections(...)100%11100%
get_DefaultGroup()100%11100%
set_DefaultGroup(...)100%11100%
get_Groups()100%11100%
set_Groups(...)100%11100%
get_MergingGroupResolutions()100%11100%
set_MergingGroupResolutions(...)100%11100%
get_MapLibraries()100%11100%
set_MapLibraries(...)100%11100%
get_MaterialLibraries()100%11100%
set_MaterialLibraries(...)100%11100%
get_ShadowObjectFileName()100%11100%
set_ShadowObjectFileName(...)100%11100%
get_TraceObjectFileName()100%11100%
set_TraceObjectFileName(...)100%11100%
FromFile(...)100%11100%
FromFile(...)100%22100%
FromStream(...)100%11100%
FromStream(...)100%11100%
WriteTo(...)100%22100%
WriteTo(...)100%22100%

File(s)

C:\projects\jeremyansel-media-wavefrontobj\JeremyAnsel.Media.WavefrontObj\JeremyAnsel.Media.WavefrontObj\ObjFile.cs

#LineLine coverage
 1// <copyright file="ObjFile.cs" company="Jérémy Ansel">
 2// Copyright (c) 2017, 2019 Jérémy Ansel
 3// </copyright>
 4// <license>
 5// Licensed under the MIT license. See LICENSE.txt
 6// </license>
 7
 8using System.Text;
 9
 10namespace JeremyAnsel.Media.WavefrontObj;
 11
 12public class ObjFile
 13{
 414    public ObjFile()
 15    {
 416        Vertices = new List<ObjVertex>();
 417        ParameterSpaceVertices = new List<ObjVector3>();
 418        VertexNormals = new List<ObjVector3>();
 419        TextureVertices = new List<ObjVector3>();
 420        Points = new List<ObjPoint>();
 421        Lines = new List<ObjLine>();
 422        Faces = new List<ObjFace>();
 423        Curves = new List<ObjCurve>();
 424        Curves2D = new List<ObjCurve2D>();
 425        Surfaces = new List<ObjSurface>();
 426        SurfaceConnections = new List<ObjSurfaceConnection>();
 427        DefaultGroup = new ObjGroup();
 428        Groups = new List<ObjGroup>();
 429        MergingGroupResolutions = new Dictionary<int, float>();
 430        MapLibraries = new List<string>();
 431        MaterialLibraries = new List<string>();
 432    }
 33
 434    public string? HeaderText { get; set; }
 35
 436    public List<ObjVertex> Vertices { get; private set; }
 37
 438    public List<ObjVector3> ParameterSpaceVertices { get; private set; }
 39
 440    public List<ObjVector3> VertexNormals { get; private set; }
 41
 442    public List<ObjVector3> TextureVertices { get; private set; }
 43
 444    public List<ObjPoint> Points { get; private set; }
 45
 446    public List<ObjLine> Lines { get; private set; }
 47
 448    public List<ObjFace> Faces { get; private set; }
 49
 450    public List<ObjCurve> Curves { get; private set; }
 51
 452    public List<ObjCurve2D> Curves2D { get; private set; }
 53
 454    public List<ObjSurface> Surfaces { get; private set; }
 55
 456    public List<ObjSurfaceConnection> SurfaceConnections { get; private set; }
 57
 458    public ObjGroup DefaultGroup { get; private set; }
 59
 460    public List<ObjGroup> Groups { get; private set; }
 61
 462    public Dictionary<int, float> MergingGroupResolutions { get; private set; }
 63
 464    public List<string> MapLibraries { get; private set; }
 65
 466    public List<string> MaterialLibraries { get; private set; }
 67
 468    public string? ShadowObjectFileName { get; set; }
 69
 470    public string? TraceObjectFileName { get; set; }
 71
 72    public static ObjFile FromFile(string? path)
 73    {
 474        return FromFile(path, ObjFileReaderSettings.Default);
 75    }
 76
 77    public static ObjFile FromFile(string? path, ObjFileReaderSettings settings)
 78    {
 479        if (path == null)
 80        {
 481            throw new ArgumentNullException(nameof(path));
 82        }
 83
 484        using (var stream = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read))
 85        {
 486            return ObjFileReader.FromStream(stream, settings);
 87        }
 488    }
 89
 90    public static ObjFile FromStream(Stream? stream)
 91    {
 492        return FromStream(stream, ObjFileReaderSettings.Default);
 93    }
 94
 95    public static ObjFile FromStream(Stream? stream, ObjFileReaderSettings settings)
 96    {
 497        return ObjFileReader.FromStream(stream, settings);
 98    }
 99
 100    public void WriteTo(string? path)
 101    {
 4102        if (path == null)
 103        {
 4104            throw new ArgumentNullException(nameof(path));
 105        }
 106
 4107        using (var writer = new StreamWriter(path))
 108        {
 4109            ObjFileWriter.Write(this, writer);
 4110        }
 4111    }
 112
 113    public void WriteTo(Stream? stream)
 114    {
 4115        if (stream == null)
 116        {
 4117            throw new ArgumentNullException(nameof(stream));
 118        }
 119
 4120        using (var writer = new StreamWriter(stream, new UTF8Encoding(false, true), 1024, true))
 121        {
 4122            ObjFileWriter.Write(this, writer);
 4123        }
 4124    }
 125}

Methods/Properties

.ctor()
get_HeaderText()
set_HeaderText(string)
get_Vertices()
set_Vertices(System.Collections.Generic.List<JeremyAnsel.Media.WavefrontObj.ObjVertex>)
get_ParameterSpaceVertices()
set_ParameterSpaceVertices(System.Collections.Generic.List<JeremyAnsel.Media.WavefrontObj.ObjVector3>)
get_VertexNormals()
set_VertexNormals(System.Collections.Generic.List<JeremyAnsel.Media.WavefrontObj.ObjVector3>)
get_TextureVertices()
set_TextureVertices(System.Collections.Generic.List<JeremyAnsel.Media.WavefrontObj.ObjVector3>)
get_Points()
set_Points(System.Collections.Generic.List<JeremyAnsel.Media.WavefrontObj.ObjPoint>)
get_Lines()
set_Lines(System.Collections.Generic.List<JeremyAnsel.Media.WavefrontObj.ObjLine>)
get_Faces()
set_Faces(System.Collections.Generic.List<JeremyAnsel.Media.WavefrontObj.ObjFace>)
get_Curves()
set_Curves(System.Collections.Generic.List<JeremyAnsel.Media.WavefrontObj.ObjCurve>)
get_Curves2D()
set_Curves2D(System.Collections.Generic.List<JeremyAnsel.Media.WavefrontObj.ObjCurve2D>)
get_Surfaces()
set_Surfaces(System.Collections.Generic.List<JeremyAnsel.Media.WavefrontObj.ObjSurface>)
get_SurfaceConnections()
set_SurfaceConnections(System.Collections.Generic.List<JeremyAnsel.Media.WavefrontObj.ObjSurfaceConnection>)
get_DefaultGroup()
set_DefaultGroup(JeremyAnsel.Media.WavefrontObj.ObjGroup)
get_Groups()
set_Groups(System.Collections.Generic.List<JeremyAnsel.Media.WavefrontObj.ObjGroup>)
get_MergingGroupResolutions()
set_MergingGroupResolutions(System.Collections.Generic.Dictionary<int, float>)
get_MapLibraries()
set_MapLibraries(System.Collections.Generic.List<string>)
get_MaterialLibraries()
set_MaterialLibraries(System.Collections.Generic.List<string>)
get_ShadowObjectFileName()
set_ShadowObjectFileName(string)
get_TraceObjectFileName()
set_TraceObjectFileName(string)
FromFile(string)
FromFile(string, JeremyAnsel.Media.WavefrontObj.ObjFileReaderSettings)
FromStream(System.IO.Stream)
FromStream(System.IO.Stream, JeremyAnsel.Media.WavefrontObj.ObjFileReaderSettings)
WriteTo(string)
WriteTo(System.IO.Stream)