Beispiel #1
0
// If in immediate mode, quickly add a vertex.
// If building an action list, call pSource.
void PContextActions_t::Vertex(const pVec &pos, const long data)
{
    if(PS->in_new_list) {
        Source(1, PDPoint(pos));
        return;
    }

    // Immediate mode. Quickly add the vertex.
    pVec posB, siz, up, vel, rvel, col, alpha;

    posB = PS->SrcSt.vertexB_tracks ? pos : PS->SrcSt.VertexB->Generate();
    siz = PS->SrcSt.Size->Generate();
    up = PS->SrcSt.Up->Generate();
    vel = PS->SrcSt.Vel->Generate();
    rvel = PS->SrcSt.RotVel->Generate();
    col = PS->SrcSt.Color->Generate();
    alpha = PS->SrcSt.Alpha->Generate();
    float ag = PS->SrcSt.Age + pNRandf(PS->SrcSt.AgeSigma);

    PS->PGroups[PS->pgroup_id].Add(pos, posB, up, vel, rvel, siz, col, alpha.x(), ag, PS->SrcSt.Mass, data);
}
Beispiel #2
0
 void PContextSourceState_t::Color(const pDomain &cdom)
 {
     Color(cdom, PDPoint(pVec(1)));
 }
Beispiel #3
0
 void PContextSourceState_t::Color(const pVec &color, const float alpha)
 {
     Color(PDPoint(color), PDPoint(pVec(alpha)));
 }