void gauss(int n, ll p) { // nx(n+1)-Matrix, Körper F_p. for (int line = 0; line < n; line++) { int swappee = line; while (mat[swappee][line] == 0) swappee++; swapLines(n, line, swappee); normalLine(n, line, p); takeAll(n, line, p); }}
void GLC_CuttingPlane::create3DviewInstance() { Q_ASSERT(GLC_3DWidget::isEmpty()); // The cutting plane material GLC_Material* pMaterial= new GLC_Material(m_Color); pMaterial->setOpacity(m_Opacity); // Cutting plane 3Dview instance GLC_3DViewInstance cuttingPlaneInstance= GLC_Factory::instance()->createCuttingPlane(m_Center, m_Normal, m_L1, m_L2, pMaterial); GLC_3DWidget::add3DViewInstance(cuttingPlaneInstance); // Normal arrow geometry GLC_Arrow* pArrow= new GLC_Arrow(GLC_Point3d(), -glc::Z_AXIS, GLC_3DWidget::widgetManagerHandle()->cameraHandle()->forward().normalize()); pArrow->setLineWidth(4.5); pArrow->setHeadLength(0.15); QColor arrowColor(Qt::red); arrowColor.setAlphaF(0.4); pArrow->setWireColor(arrowColor); //Base arrow disc pMaterial= new GLC_Material(Qt::red); pMaterial->setOpacity(m_Opacity); GLC_Disc* pDisc= new GLC_Disc(0.3); pDisc->replaceMasterMaterial(pMaterial); // Normal arrow + base instance GLC_3DRep normalLine(pArrow); normalLine.addGeom(pDisc); GLC_3DWidget::add3DViewInstance(GLC_3DViewInstance(normalLine)); GLC_3DWidget::set3DViewInstanceVisibility(1, false); // Rotation manipulator const double initRadius= 1; // Arrond X axis pDisc= new GLC_Disc(initRadius); pMaterial= new GLC_Material(Qt::red); pMaterial->setOpacity(m_Opacity); pDisc->replaceMasterMaterial(pMaterial); pDisc->setAngle(glc::PI); GLC_3DWidget::add3DViewInstance(GLC_3DViewInstance(pDisc)); GLC_3DWidget::set3DViewInstanceVisibility(2, false); // Arround Y axis pDisc= new GLC_Disc(initRadius); pMaterial= new GLC_Material(Qt::green); pMaterial->setOpacity(m_Opacity); pDisc->replaceMasterMaterial(pMaterial); pDisc->setAngle(glc::PI); GLC_3DWidget::add3DViewInstance(GLC_3DViewInstance(pDisc)); GLC_3DWidget::set3DViewInstanceVisibility(3, false); // Arround Z axis pDisc= new GLC_Disc(initRadius); pMaterial= new GLC_Material(Qt::blue); pMaterial->setOpacity(m_Opacity); pDisc->replaceMasterMaterial(pMaterial); //pDisc->setAngle(glc::PI / 2.0); GLC_3DWidget::add3DViewInstance(GLC_3DViewInstance(pDisc)); GLC_3DWidget::set3DViewInstanceVisibility(4, false); }