Mechanics of Defect Evolution Library
Loading...
Searching...
No Matches
NetworkLoopActor.h
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_NetworkLoopActor_h_
10#define model_NetworkLoopActor_h_
11
12
13#include <deque>
14#include <string>
15
16#include <QWidget>
17#include <QGridLayout>
18#include <QCheckBox>
19#include <QSlider>
20#include <QColorDialog>
21#include <QGroupBox>
22#include <QVBoxLayout>
23#include <QLineEdit>
24#include <QComboBox>
25#include <QPushButton>
26
27#include <vtkGenericOpenGLRenderWindow.h>
28#include <vtkVersion.h>
29#include <vtkSmartPointer.h>
30#include <vtkPolyData.h>
31#include <vtkPolyDataMapper.h>
32#include <vtkActor.h>
33#include <vtkMath.h>
34#include <vtkProperty.h>
35#include <vtkTubeFilter.h>
36#include <vtkPolyLine.h>
37#include <vtkSphereSource.h>
38#include <vtkArrowSource.h>
39#include <vtkGlyph3D.h>
40#include <vtkDoubleArray.h>
41#include <vtkPointData.h>
42#include <vtkLabeledDataMapper.h>
43#include <vtkFloatArray.h>
44#include <IDreader.h>
45//#include <PlanarPolygon.h>
47#include <MeshPlane.h>
50#include <SlipSystemTab.h>
51
52namespace model
53{
54 struct NetworkLoopActor : public QWidget
55 {
56
57 Q_OBJECT
58 private slots:
59 void modify();
60
61 private:
62 vtkGenericOpenGLRenderWindow* const renderWindow;
63
64 QGridLayout* mainLayout;
65 QCheckBox* showLoops;
66 QComboBox* colorScheme;
67 QPushButton* manualColorButton;
68 QColor manualColor{144, 238, 144};
70 std::vector<const SlipSystem*> nodeSlipSystems;
71 std::vector<const SlipSystem*> lineSlipSystems;
72 std::vector<const SlipSystem*> areaSlipSystems;
73 std::vector<const SlipSystem*> meshSlipSystems;
74 void applyColors();
75
76 QGroupBox* slippedAreaBox;
77 QSlider* sliderSlippedArea;
78
79 QGroupBox* meshAreaBox;
80
81 vtkSmartPointer<vtkPolyData> nodePolyData;
82 vtkSmartPointer<vtkGlyph3D> nodeGlyphs;
83 vtkSmartPointer<vtkPolyDataMapper> nodeMapper;
84 vtkSmartPointer<vtkActor> nodeActor;
85
86 vtkSmartPointer<vtkPolyData> labelPolyData;
87 vtkSmartPointer<vtkLabeledDataMapper> labelMapper;
88 vtkSmartPointer<vtkActor2D> labelActor;
89
90
91 vtkSmartPointer<vtkPolyData> loopPolyData;
92 vtkSmartPointer<vtkPolyDataMapper> loopMapper;
93 vtkSmartPointer<vtkActor> loopActor;
94
95 vtkSmartPointer<vtkPolyData> areaPolyData;
96 vtkSmartPointer<vtkPolyDataMapper> areaMapper;
97 vtkSmartPointer<vtkActor> areaActor;
98
99 vtkSmartPointer<vtkPolyData> meshPolydata;
100 vtkSmartPointer<vtkPolyDataMapper> meshMapper;
101 vtkSmartPointer<vtkActor> meshActor;
102 QLineEdit* globalMeshSizeEdit;
103 QLineEdit* localMeshSizeEdit;
104
105
106 public:
107
109 const std::shared_ptr<DislocationNetwork<3>> dislocationNetwork;
110
111 NetworkLoopActor(vtkGenericOpenGLRenderWindow* const,vtkRenderer* const,const DefectiveCrystal<3>& defectiveCrystal_in);
114 void setManualColor(const QColor& color);
115
116 };
117
118} // namespace model
119#endif
void updateColors(const SlipSystemTab::SlipSystemColorMapType &sscm)
const std::shared_ptr< DislocationNetwork< 3 > > dislocationNetwork
const DefectiveCrystal< 3 > & defectiveCrystal
NetworkLoopActor(vtkGenericOpenGLRenderWindow *const, vtkRenderer *const, const DefectiveCrystal< 3 > &defectiveCrystal_in)
void updateConfiguration(const SlipSystemTab::SlipSystemColorMapType &sscm)
void setManualColor(const QColor &color)
std::map< const SlipSystem *, SlipSystemButton * > SlipSystemColorMapType