public BoundedPocketStandHarvester(int targetCut, Ldpoint startPoint, SiteHarvester siteHarvester, HarvestPath path)
        {
            int standId = (int)standMap.getvalue32out((uint)startPoint.y, (uint)startPoint.x); //changed By Qia on Nov 4 2008

            setStand(pstands[standId]);
            setSiteHarvester(siteHarvester);
            setPath(path);
            itsTargetCut  = targetCut;
            itsStartPoint = startPoint;
        }
        public override int harvestStand(Stand stand)
        {
            SitesCut += stand.numberOfActiveSites();
            //printf("sitesinstand:%d SitesCut:%d Target:%d\n",stand->numberOfActiveSites(),SitesCut,itsTargetCut);
            SiteHarvester theSiteHarvester = new SiteHarvester(GetUserInputId(), getRemovalMask(), getReport(), getDuration());
            MultiplePocketStandHarvester theStandHarvester = new MultiplePocketStandHarvester(stand, itsStandProportion, itsMeanGroupSize, itsStandardDeviation, theSiteHarvester);
            int standCut = theStandHarvester.Harvest();

            if (standCut > 0)
            {
                stand.reserve();
                itsStands.Add(stand.getId());
                itsTotalNumberOfStands++;
            }
            return(1);
        }
        public void reharvest()
        {
            Stand stand = new Stand();
            MultiplePocketStandHarvester theStandHarvester;
            int           standCut;
            SiteHarvester theSiteHarvester = new SiteHarvester(GetUserInputId(), getRemovalMask(), getReport(), getDuration());

            getReport().reset();

            for (int i = 0; i < itsStands.Count; i++)
            {
                //        stand = stands(it.current());  Modified by Vera
                stand.Copy(BoundedPocketStandHarvester.pstands[itsStands[i]]);
                theStandHarvester = new MultiplePocketStandHarvester(stand, itsStandProportion, itsMeanGroupSize, itsStandardDeviation, theSiteHarvester);
                standCut          = theStandHarvester.Harvest();
                theStandHarvester = null;
            }
            writeReport(BoundedPocketStandHarvester.harvestOutputFile2);
        }
 public MultiplePocketStandHarvester(Stand stand, double proportion, double meanGroupSize, double standardDeviation, SiteHarvester siteHarvester)
 {
     itsProportion        = proportion;
     itsMeanGroupSize     = meanGroupSize;
     itsStandardDeviation = standardDeviation;
     itsTargetCut         = 0;
     setStand(stand);
     setSiteHarvester(siteHarvester);
 }
 public void setSiteHarvester(SiteHarvester siteHarvester)
 {
     itsSiteHarvester = siteHarvester;
 }
 public StandHarvest()
 {
     itsStand         = null;
     itsSiteHarvester = null;
     itsPath          = null;
 }