void Operator::CalcPEC_Curves() { //special treatment for primitives of type curve (treated as wires) double p1[3]; double p2[3]; struct Grid_Path path; vector<CSProperties*> vec_prop = CSX->GetPropertyByType(CSProperties::METAL); for (size_t p=0; p<vec_prop.size(); ++p) { CSProperties* prop = vec_prop.at(p); for (size_t n=0; n<prop->GetQtyPrimitives(); ++n) { CSPrimitives* prim = prop->GetPrimitive(n); CSPrimCurve* curv = prim->ToCurve(); if (curv) { for (size_t i=1; i<curv->GetNumberOfPoints(); ++i) { curv->GetPoint(i-1,p1); curv->GetPoint(i,p2); path = FindPath(p1,p2); if (path.dir.size()>0) prim->SetPrimitiveUsed(true); for (size_t t=0; t<path.dir.size(); ++t) { SetVV(path.dir.at(t),path.posPath[0].at(t),path.posPath[1].at(t),path.posPath[2].at(t), 0 ); SetVI(path.dir.at(t),path.posPath[0].at(t),path.posPath[1].at(t),path.posPath[2].at(t), 0 ); ++m_Nr_PEC[path.dir.at(t)]; } } } } } }
void QCSXCAD::Delete() { CSPrimitives* prim = CSTree->GetCurrentPrimitive(); if (prim!=NULL) { if (QMessageBox::question(this,tr("Delete Primitive"),tr("Delete current Primitive (ID: %1)?").arg(prim->GetID()),QMessageBox::Yes,QMessageBox::No)==QMessageBox::Yes) { CSTree->DeletePrimItem(prim); DeletePrimitive(prim); setModified(); } return; } CSProperties* prop = CSTree->GetCurrentProperty(); if (prop!=NULL) { size_t qtyPrim=prop->GetQtyPrimitives(); if (qtyPrim>0) { if (QMessageBox::question(this,tr("Delete Property"),tr("\"%1\" contains Primitive(s)!!\n Delete anyway?").arg(prop->GetName().c_str()),QMessageBox::Yes,QMessageBox::No)!=QMessageBox::Yes) return; } else if (QMessageBox::question(this,tr("Delete Property"),tr("Delete current Property?"),QMessageBox::Yes,QMessageBox::No)!=QMessageBox::Yes) return; CSTree->DeletePropItem(prop); DeleteProperty(prop); setModified(); } }