Пример #1
0
 public SamplerRenderer(Sampler sampler, Camera camera,
                        SurfaceIntegrator surfaceIntegrator,
                        VolumeIntegrator volumeIntegrator)
 {
     _sampler           = sampler;
     _camera            = camera;
     _surfaceIntegrator = surfaceIntegrator;
     _volumeIntegrator  = volumeIntegrator;
 }
Пример #2
0
        public Sample(Sampler sampler, SurfaceIntegrator surfaceIntegrator,
                      VolumeIntegrator volumeIntegrator, Scene scene)
        {
            Num1D = new List <int>();
            Num2D = new List <int>();

            if (surfaceIntegrator != null)
            {
                surfaceIntegrator.RequestSamples(sampler, this, scene);
            }
            if (volumeIntegrator != null)
            {
                volumeIntegrator.RequestSamples(sampler, this, scene);
            }
            AllocateSampleMemory();
        }
Пример #3
0
        /// <summary>
        /// Constructs an integrator.
        /// </summary>
        /// <param name="lsTrk">
        /// The level set tracker tracking the level set to be integrated over
        /// </param>
        /// <param name="NoOfIntegrands">
        /// The number of integrals to perform simultaneously
        /// </param>
        /// <param name="volumeFactory">
        /// The quadrature rule factory for the volume integrals. Note that the
        /// integrand is discontinuous and that special quadrature rules should
        /// be used for this case.
        /// </param>
        /// <param name="boundaryFactory">
        /// The quadrature rule factory for the surface integrals. Note that the
        /// integrand is discontinuous and that special quadrature rules should
        /// be used for this case.
        /// </param>
        /// <param name="quadOrder">
        /// The desired quadrature rule (for surface and volume integrals)
        /// </param>
        /// <param name="LevSetIdx">
        /// The id of the level set to be integrated over.
        /// </param>
        /// <param name="sgrd">
        /// the subgrid which is used for the mapping the results
        /// (see <see cref="Execute"/>).
        /// </param>
        public LevelSetIntegrator(
            LevelSetTracker lsTrk, int NoOfIntegrands,
            ICompositeQuadRule <QuadRule> volumeFactory,
            ICompositeQuadRule <CellBoundaryQuadRule> boundaryFactory,
            int quadOrder,
            SubGrid sgrd,
            int LevSetIdx)
        {
            m_LevSetTrk      = lsTrk;
            m_NoOfIntegrands = NoOfIntegrands;
            m_SubGrid        = sgrd;
            m_LevSetIdx      = LevSetIdx;

            m_SurfaceIntegrator = new SurfaceIntegrator(this, boundaryFactory);
            m_VoumeIntegrator   = new VolumeIntegrator(this, volumeFactory);
        }