Esempio n. 1
0
 /// <summary>
 /// Copy object.
 /// </summary>
 /// <param name="copy"></param>
 public SkyDome(SkyDome copy)
 {
     resolution          = resolution;
     ico                 = copy.ico;
     Faces               = copy.Faces;
     FaceAreas           = copy.FaceAreas;
     ShdwHorizon         = new double[8760];
     ShdwDome            = new double[8760];
     ShdwBeam            = new double[8760];
     VertexVectorsSphere = copy.VertexVectorsSphere;
     VerticesHemisphere  = copy.VerticesHemisphere;
     VerticesHorizon     = copy.VerticesHorizon;
     HorizonSegments     = copy.HorizonSegments;
     VertexShadowSphere  = new double[VertexVectorsSphere.Count];
     //ShdwHorizon, ShdwDome, ShdwSunVector must be re-evaluated for new sensor point
     CumulativeIrradiation = copy.CumulativeIrradiation;
 }
Esempio n. 2
0
        /// <summary>
        /// Creates a sky dome (hemisphere) as a halfed icosahedron.
        /// </summary>
        /// <param name="resolution">Resolution level of the sky dome. 0: 12 faces, 10 vertices; 1: 44 faces, 29 vertices; 2: 168 faces, 97 vertices; 3: 656 faces, 353 vertices. 1 or 2 recommended.</param>
        public SkyDome(int _resolution)
        {
            resolution          = _resolution;
            ico                 = new IcoSphere(resolution);
            Faces               = ico.getFaces();
            VertexVectorsSphere = ico.getVertexCoordinates();

            VerticesHemisphere = new List <int>();
            VerticesHorizon    = new List <int>();
            HorizonSegments    = new List <double>();
            FaceAreas          = new List <double>();

            ShdwHorizon = new double[8760];
            ShdwDome    = new double[8760];
            ShdwBeam    = new double[8760];

            CalcHemisphere();
            CalcHorizonSegmentWeights();

            VertexShadowSphere = new double[VertexVectorsSphere.Count];
            //create a list of size of the facaes of the dome. use this list for shadow factors...

            CumulativeIrradiation = new List <double>();
        }