// strait twisty beam // void BeamRenderPlain::Setup() { // get beam rendering class BeamRenderPlainClass * sc = (BeamRenderPlainClass *)proto; F32 t = paramAnim.Current().scale; if (t <= 1) { offset = sc->data.vector * t; } Quaternion r = angle * rotation; const Vector & p0 = particle->matrix.posit; Vector * p = points.data, * pe = points.data + points.count - 1; *p++ = p0; Vector dof = offset * (1.0f / F32(points.count - 1)), off = dof; //LOG_DIAG(("")) //LOG_DIAG(("")) //LOG_DIAG(("p: %f,%f,%f", p->x, p->y, p->z)); for (F32 h = 0; p < pe; p++, off += dof, r *= twist) { *p = p0 + off + r.GetRight() * sc->distance; //LOG_DIAG(("p: %f,%f,%f", p->x, p->y, p->z)); } *p = p0 + off; //LOG_DIAG(("p: %f,%f,%f", p->x, p->y, p->z)); }