Esempio n. 1
0
    void LineRenderer::setPoints(const std::vector<glm::vec3> &points, MeshType meshType, const std::vector<GLushort> &indices) {
        if (meshType != MeshType::Lines && meshType != MeshType::LineLoop && meshType != MeshType::LineStrip){
            logWarning("Invalid MeshType for line.");
        }
        LineRenderer::mMeshType = meshType;
        LineRenderer::mPoints = points;

        LineRenderer::mIndices = indices;

        rebuildMesh();
    }
Esempio n. 2
0
void SmoothLine::addPoint(float x, float y)
{
    float w;
    if (points.empty()) {
        w = 2;
    }
    else {
        Particle *lp = points.back();
        float prevMass = lp->mass;
        w = prevMass + ((1.5f+(ofVec2f(x, y) - *lp).length() / 5) - prevMass)*0.3;
    }
    
    Particle* newPar = new Particle(x, y, w);
//    newPar->setColor(ofColor(50));
    points.push_back(newPar);
    rebuildMesh();
}
Esempio n. 3
0
SmoothLine* SmoothLine::cutLine(int index)
{
    if (index >= points.size()) {
        cout<<"error: index out of bounds in cutLine"<<endl;
        return NULL;
    }
    
    SmoothLine* newLine = new SmoothLine();
    for (int i=index; i<points.size(); i++)
    {
        newLine->points.push_back(points[i]);
    }
    points.erase(points.begin()+index, points.end());
    
    newLine->rebuildMesh();
    rebuildMesh();
    return newLine;
}