classdef enclosureDefinition

% Copyright 2023 The MathWorks, Inc.        

    properties(SetAccess=private)
        Name
        Face
    end

    properties
        PerfectEnclosure (1,1) {mustBeNumericOrLogical,mustBeFinite,mustBeNonsparse,mustBeReal}
    end

    properties (Hidden, SetAccess={?femodel}) 
        BoundaryFacet
        BoundaryFacetMapping
    end

    methods (Access=?femodel)
        %femodel's setupRadiation call creates these objects and uses them
        %to compute view factors. Disallowing the creation of these objects
        %outside of setupRadiation call, as a direct assignment of such
        %object to femodel.ThermalRadiation.Enclosures property might need
        %reevaluation of view factors.
        function self = enclosureDefinition (name, faces, perfect)
            self.Name = name;
            self.Face = faces;
            self.PerfectEnclosure = perfect;
        end
    end
end