// 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); }
void PContextSourceState_t::Color(const pDomain &cdom) { Color(cdom, PDPoint(pVec(1))); }
void PContextSourceState_t::Color(const pVec &color, const float alpha) { Color(PDPoint(color), PDPoint(pVec(alpha))); }