Example #1
0
void VRMaterial::appendPasses(VRMaterialPtr mat) {
    for (int i=0; i<mat->getNPasses(); i++) {
        VRMatData* md = mat->mats[i]->copy();
        passes->addMaterial(md->mat);
        mats.push_back(md);
    }
}
Example #2
0
void VRMaterial::prependPasses(VRMaterialPtr mat) {
    vector<VRMatData*> pses;
    for (int i=0; i<mat->getNPasses(); i++) pses.push_back( mat->mats[i]->copy() );
    for (int i=0; i<getNPasses(); i++) pses.push_back(mats[i]);

    passes->clearMaterials();
    mats.clear();

    for (auto md : pses) {
        passes->addMaterial(md->mat);
        mats.push_back(md);
    }
}