Exemple #1
0
    public void AddParticle(Vector3f v, Colorf c)
    {
        v -= Origin;

        if (UniqueParticles && Uniques.Contains(v))
        {
            return;
        }

        Vector3i key = ToIndex(v);
        PInfo    pinfo;

        if (Particles.TryGetValue(key, out pinfo))
        {
            pinfo.count++;
            //pinfo.AccumColor += new Vector3f(c.r, c.g, c.b);
            pinfo.AccumColor = pinfo.count * new Vector3f(c.r, c.g, c.b);
            Particles[key]   = pinfo;
        }
        else
        {
            pinfo = new PInfo()
            {
                count = 1, AccumColor = c
            };
            Particles.Add(key, pinfo);
            Extents.Contain(key);
        }

        if (UniqueParticles)
        {
            Uniques.Add(v);
        }
    }
Exemple #2
0
        ElemType allocate(Vector3i index)
        {
            ElemType new_elem = exemplar.CreateNewGridElement(false) as ElemType;

            elements.Add(index, new_elem);
            bounds.Contain(index);
            return(new_elem);
        }