< Summary

Information
Class: JeremyAnsel.Media.WavefrontObj.ObjMaterialColor
Assembly: JeremyAnsel.Media.WavefrontObj
File(s): C:\projects\jeremyansel-media-wavefrontobj\JeremyAnsel.Media.WavefrontObj\JeremyAnsel.Media.WavefrontObj\ObjMaterialColor.cs
Line coverage
100%
Covered lines: 23
Uncovered lines: 0
Coverable lines: 23
Total lines: 63
Line coverage: 100%
Branch coverage
100%
Covered branches: 8
Total branches: 8
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%
.ctor(...)100%11100%
.ctor(...)100%11100%
.ctor(...)100%11100%
get_Color()100%11100%
set_Color(...)100%11100%
get_UseXYZColorSpace()100%11100%
set_UseXYZColorSpace(...)100%11100%
get_SpectralFileName()100%11100%
set_SpectralFileName(...)100%11100%
get_SpectralFactor()100%11100%
set_SpectralFactor(...)100%11100%
get_IsSpectral()100%11100%
get_IsRGB()100%22100%
get_IsXYZ()100%22100%
ToDebuggerDisplayString()100%44100%

File(s)

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

#LineLine coverage
 1// <copyright file="ObjMaterialColor.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
 8namespace JeremyAnsel.Media.WavefrontObj;
 9
 10[System.Diagnostics.DebuggerDisplay("{ToDebuggerDisplayString(),nq}")]
 11public class ObjMaterialColor
 12{
 413    public ObjMaterialColor()
 14    {
 415        this.SpectralFactor = 1.0f;
 416    }
 17
 18    public ObjMaterialColor(float x, float y, float z)
 419        : this()
 20    {
 421        this.Color = new ObjVector3(x, y, z);
 422    }
 23
 24    public ObjMaterialColor(string? spectralFileName)
 425        : this()
 26    {
 427        this.SpectralFileName = spectralFileName;
 428    }
 29
 30    public ObjMaterialColor(string? spectralFileName, float factor)
 431        : this()
 32    {
 433        this.SpectralFileName = spectralFileName;
 434        this.SpectralFactor = factor;
 435    }
 36
 437    public ObjVector3 Color { get; set; }
 38
 439    public bool UseXYZColorSpace { get; set; }
 40
 441    public string? SpectralFileName { get; set; }
 42
 443    public float SpectralFactor { get; set; }
 44
 45    public bool IsSpectral
 46    {
 47        get
 48        {
 449            return !string.IsNullOrWhiteSpace(this.SpectralFileName);
 50        }
 51    }
 52
 453    public bool IsRGB => !IsSpectral && !UseXYZColorSpace;
 54
 455    public bool IsXYZ => !IsSpectral && UseXYZColorSpace;
 56
 57    private string ToDebuggerDisplayString()
 58    {
 459        if (IsSpectral) return $"Spectral:{SpectralFileName} Factor:{SpectralFactor}";
 460        if (UseXYZColorSpace) return $"X:{Color.X} Y:{Color.Y} Z:{Color.Z}";
 461        return $"R:{Color.X} G:{Color.Y} B:{Color.Z}";
 62    }
 63}