bool SubscriptionManager::checkSubscription(int& edition) { edition = Unknown; CoreInterface coreInterface; QString output; try { output = coreInterface.checkSubscription(); } catch (std::exception& e) { showErrorDialog(e.what()); return false; } if (output.contains("subscription will expire soon")) { QMessageBox::warning( this, tr("Activate Subscription"), tr("Your subscription will be expired soon.")); } edition = getEditionType(output); return true; }
// ***************************************************************** void VertexPaint::backupCurrentColor() { switch(getEditionType()) { case 0: lastWeightColor = iColor->GetColor(); break; case 1: case 2: lastPhaseColor = iColor->GetColor(); break; } }
void VertexPaint::reloadBkupColor() { // Change current color according to editMode. switch(getEditionType()) { case 0: iColor->SetColor(lastWeightColor); break; case 1: case 2: iColor->SetColor(lastPhaseColor); break; } }
void SubscriptionManager::checkOutput(QString& output) { getEditionType(output); checkExpiring(output); }
// ***************************************************************** void VertexPaint::fillSelectionGradientColor() { int mci; // Put Data in Undo/Redo List. if(!theHold.Holding()) theHold.Begin(); ModContextList modContexts; INodeTab nodeTab; GetCOREInterface()->GetModContexts(modContexts, nodeTab); for (mci=0; mci<modContexts.Count(); mci++) { ModContext *mc = modContexts[mci]; if(mc && mc->localData) theHold.Put(new VertexPaintRestore((VertexPaintData*)mc->localData, this)); } theHold.Accept(GetString(IDS_RESTORE_GRADIENT)); // Which Component to change?? VertexPaintData::TComponent whichComponent; switch(getEditionType()) { case 0: whichComponent= VertexPaintData::Red; break; case 1: whichComponent= VertexPaintData::Green; break; case 2: whichComponent= VertexPaintData::Blue; break; } COLORREF grad0= iColorGradient[0]->GetColor(); COLORREF grad1= iColorGradient[1]->GetColor(); // Get Matrix to viewport. Matrix3 viewMat; { ViewExp *ve = GetCOREInterface()->GetActiveViewport(); // The affine TM transforms from world coords to view coords ve->GetAffineTM(viewMat); GetCOREInterface()->ReleaseViewport(ve); } // Modify all meshes. for (mci=0; mci<modContexts.Count(); mci++) { ModContext *mc = modContexts[mci]; if(mc && mc->localData) { VertexPaintData* d = (VertexPaintData*)mc->localData; Mesh* mesh = d->GetMesh(); if (mesh && mesh->vertCol) { float yMini= FLT_MAX; float yMaxi= -FLT_MAX; // 1st, For all faces of the mesh, comute BBox of selection. int fi; for(fi=0; fi<mesh->getNumFaces(); fi++) { Face* f = &mesh->faces[fi]; for (int i=0; i<3; i++) { // Skip painting because not selected?? if(mesh->selLevel == MESH_VERTEX && !mesh->VertSel()[f->v[i]] ) continue; if(mesh->selLevel == MESH_FACE && !mesh->FaceSel()[fi]) continue; // Also skip if face is hidden. if(f->Hidden()) continue; // Transform to viewSpace. Point3 p= viewMat*mesh->getVert(f->v[i]); // extend bbox. yMini= p.y<yMini?p.y:yMini; yMaxi= p.y>yMaxi?p.y:yMaxi; } } // 2nd, For all faces of the mesh, fill with gradient for(fi=0; fi<mesh->getNumFaces(); fi++) { Face* f = &mesh->faces[fi]; for (int i=0; i<3; i++) { // Skip painting because not selected?? if(mesh->selLevel == MESH_VERTEX && !mesh->VertSel()[f->v[i]] ) continue; if(mesh->selLevel == MESH_FACE && !mesh->FaceSel()[fi]) continue; // Also skip if face is hidden. if(f->Hidden()) continue; // Compute gradientValue. float gradValue; Point3 p= viewMat*mesh->getVert(f->v[i]); gradValue= (p.y-yMini)/(yMaxi-yMini); // Modifie with bendPower. 1->6. float pow= 1 + fGradientBend * 5; gradValue= powf(gradValue, pow); // Apply painting // Reset To 0. d->SetColor(f->v[i], 1, grad0, whichComponent); // Blend with gradientValue. d->SetColor(f->v[i], gradValue, grad1, whichComponent); } } } } } // refresh NotifyDependents(FOREVER, PART_VERTCOLOR, REFMSG_CHANGE); ip->RedrawViews(ip->GetTime()); }
// ***************************************************************** void VertexPaint::fillSelectionColor() { int mci; // Put Data in Undo/Redo List. if(!theHold.Holding()) theHold.Begin(); ModContextList modContexts; INodeTab nodeTab; GetCOREInterface()->GetModContexts(modContexts, nodeTab); for (mci=0; mci<modContexts.Count(); mci++) { ModContext *mc = modContexts[mci]; if(mc && mc->localData) theHold.Put(new VertexPaintRestore((VertexPaintData*)mc->localData, this)); } theHold.Accept(GetString(IDS_RESTORE_FILL)); // Which Component to change?? VertexPaintData::TComponent whichComponent; switch(getEditionType()) { case 0: whichComponent= VertexPaintData::Red; break; case 1: whichComponent= VertexPaintData::Green; break; case 2: whichComponent= VertexPaintData::Blue; break; } // Modify all meshes. for (mci=0; mci<modContexts.Count(); mci++) { ModContext *mc = modContexts[mci]; if(mc && mc->localData) { VertexPaintData* d = (VertexPaintData*)mc->localData; Mesh* mesh = d->GetMesh(); if (mesh && mesh->vertCol) { // For all faces of the mesh for(int fi=0; fi<mesh->getNumFaces(); fi++) { Face* f = &mesh->faces[fi]; for (int i=0; i<3; i++) { // Skip painting because not selected?? if(mesh->selLevel == MESH_VERTEX && !mesh->VertSel()[f->v[i]] ) continue; if(mesh->selLevel == MESH_FACE && !mesh->FaceSel()[fi]) continue; // Also skip if face is hidden. if(f->Hidden()) continue; // Apply painting d->SetColor(f->v[i], 1, GetActiveColor(), whichComponent); } } } } } // refresh NotifyDependents(FOREVER, PART_VERTCOLOR, REFMSG_CHANGE); ip->RedrawViews(ip->GetTime()); }