oILAB
Loading...
Searching...
No Matches
oiViewerVTKwidget.cpp
Go to the documentation of this file.
1/* This file is part of MODEL, the Mechanics Of Defect Evolution Library.
2 *
3 * Copyright (C) 2011 by Giacomo Po <gpo@ucla.edu>.
4 *
5 * model is distributed without any warranty under the
6 * GNU General Public License (GPL) v2 <http://www.gnu.org/licenses/>.
7 */
8
9#ifndef model_oiViewerVTKwidget_cpp_
10#define model_oiViewerVTKwidget_cpp_
11
12#include <QFileDialog>
13
14#include "../../include/Visualization/oiViewerVTKwidget.h"
15
16namespace oILAB {
17
19 : /* init */ mainLayout(new QGridLayout(this))
20 /* init */,
21 loadBicrystalButton(new QPushButton("Load", this))
22 /* init */,
23 tabWidget(new QTabWidget(this))
24 /* init */,
25 openglWidget(new QVTKOpenGLStereoWidget(this))
26 /* init */,
27 renderWindow(vtkSmartPointer<vtkGenericOpenGLRenderWindow>::New())
28 /* init */,
29 renderer(vtkSmartPointer<vtkRenderer>::New())
30 // /* init */,traitsIO(getWorkingDir())
31 // /* init */,workingDirLabel(new
32 // QLabel(QString::fromStdString(traitsIO.simulationFolder)))
33 /* init */,
34 bcActor(new BicrystalActor(renderWindow, renderer))
35// /* init */,mesh(traitsIO.meshFile,
36// TextFileParser(traitsIO.polyFile).readMatrix<double>("A",3,3,true),
37// TextFileParser(traitsIO.polyFile).readMatrix<double>("x0",1,3,true).transpose(),
38// TextFileParser(traitsIO.polyFile).template
39// readSet<int>("periodicFaceIDs",true))
40// /* init */,meshActor(new SimplicialMeshActor(renderWindow,renderer,mesh))
41// /* init */,ddConfigVtk(new
42// DDconfigVtk(traitsIO.evlFolder,traitsIO.auxFolder,renderWindow,renderer,mesh))
43{
44 renderer->SetBackground(1, 1, 1);
45 renderWindow->AddRenderer(renderer);
46 openglWidget->setRenderWindow(renderWindow);
47
48 tabWidget->addTab(bcActor, tr(std::string("Bicrystal").c_str()));
49 // tabWidget->addTab(meshActor, tr(std::string("Mesh").c_str()));
50
51 mainLayout->addWidget(loadBicrystalButton, 0, 0, 1, 2);
52 mainLayout->addWidget(tabWidget, 1, 0, 1, 1);
53 mainLayout->addWidget(openglWidget, 1, 1, 1, 1);
54 mainLayout->setColumnStretch(0, 3);
55 mainLayout->setColumnStretch(1, 7);
56 this->setLayout(mainLayout);
57
58 connect(loadBicrystalButton, SIGNAL(released()), this,
59 SLOT(getBicrystalFromFile()));
60
61 }
62
63
65 {
66 const std::string fileName=QFileDialog::getOpenFileName(this, tr("Open File"),
67 "/Users/giacomo/Documents/oILAB/",
68 tr("Images (*.txt)") ).toStdString();
69
70 TextFileParser parser(fileName);
71 const auto A(parser.readMatrix<double,3,3>("A",true));
72// if(A.rows()==3 && A.cols()==3)
73// {
74 const auto R1(parser.readMatrix<double,3,3>("R1",true));
75 const auto R2(parser.readMatrix<double,3,3>("R2",true));
76
77 latA.reset(new Lattice<3>(A,R1));
78 latB.reset(new Lattice<3>(A,R2));
79 bc.reset(new BiCrystal<3>(*latA,*latB));
81// }
82
83
84 }
85
86 } // namespace oILAB
87
88#endif
89
90
91
92
93
94
95
Lattice class.
Definition Lattice.h:31
Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > readMatrix(const std::string &key, const size_t &rows, const size_t &cols, const bool &verbose=false)
void updateConfiguration(const std::shared_ptr< BiCrystal< 3 > > &bc)
oiViewerVTKwidget(QWidget *parent)
QVTKOpenGLStereoWidget * openglWidget
vtkSmartPointer< vtkRenderer > renderer
std::shared_ptr< Lattice< 3 > > latA
std::shared_ptr< Lattice< 3 > > latB
std::shared_ptr< BiCrystal< 3 > > bc
vtkSmartPointer< vtkGenericOpenGLRenderWindow > renderWindow