Mechanics of Defect Evolution Library
Loading...
Searching...
No Matches
NetworkLinkActor.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_NetworkLinkActor_h_
10#define model_NetworkLinkActor_h_
11
12
13#include <deque>
14#include <string>
15
16#include <QWidget>
17#include <QGridLayout>
18#include <QCheckBox>
19#include <QComboBox>
20#include <QSlider>
21
22#include <vtkGenericOpenGLRenderWindow.h>
23#include <vtkVersion.h>
24#include <vtkSmartPointer.h>
25#include <vtkPolyData.h>
26#include <vtkPolyDataMapper.h>
27#include <vtkActor.h>
28#include <vtkMath.h>
29#include <vtkProperty.h>
30#include <vtkTubeFilter.h>
31#include <vtkPolyLine.h>
32#include <vtkSphereSource.h>
33#include <vtkArrowSource.h>
34#include <vtkGlyph3D.h>
35#include <vtkDoubleArray.h>
36#include <vtkPointData.h>
37#include <vtkLabeledDataMapper.h>
38#include <vtkFloatArray.h>
39#include <IDreader.h>
40//#include <PlanarPolygon.h>
42#include <MeshPlane.h>
43//#include <ConfigurationFields.h>
45#include <SlipSystemTab.h>
46
47
48namespace model
49{
50 struct NetworkLinkActor : public QWidget
51 {
52 static constexpr int dim=3;
54 typedef Eigen::Matrix<double,dim,1> VectorDim;
55
56 Q_OBJECT
57 private slots:
58 void modify();
59// Eigen::Matrix<int,3,1> vector2Clr(VectorDim) const;
60
61 private:
62
63
64 vtkGenericOpenGLRenderWindow* const renderWindow;
65
66 QGridLayout* mainLayout;
67 QCheckBox* showLinks;
68 QSlider* sliderLinksRadius;
69
70 QSlider* sliderNormalOpacity;
71 QSlider* sliderZeroOpacity;
72 QSlider* sliderBoundaryOpacity;
73 QComboBox* linksColorBox;
74
75// double tubeRadius;
76 ColorScheme clr;
77
78
79 vtkSmartPointer<vtkPolyData> polyData;
80 vtkSmartPointer<vtkPolyData> polyDataBnd;
81 vtkSmartPointer<vtkPolyData> polyData0;
82 vtkSmartPointer<vtkTubeFilter> tubeFilter;
83 vtkSmartPointer<vtkTubeFilter> tubeFilterBnd;
84 vtkSmartPointer<vtkTubeFilter> tubeFilter0;
85 vtkSmartPointer<vtkPolyDataMapper> tubeMapper;
86 vtkSmartPointer<vtkActor> tubeActor;
87 vtkSmartPointer<vtkPolyDataMapper> tubeMapperBnd;
88 vtkSmartPointer<vtkActor> tubeActorBnd;
89 vtkSmartPointer<vtkPolyDataMapper> tubeMapper0;
90 vtkSmartPointer<vtkActor> tubeActor0;
91
92 public:
93
94// const ConfigurationFields<3>& configFields;
96 const std::shared_ptr<DislocationNetwork<3>> dislocationNetwork;
97
98 NetworkLinkActor(vtkGenericOpenGLRenderWindow* const,vtkRenderer* const,const DefectiveCrystal<3>& defectiveCrystal_in);
99 void updateConfiguration(vtkPolyData* const nodePolyData,const SlipSystemTab::SlipSystemColorMapType& sscm);
100
101 Eigen::Matrix<int,3,1> computeColor(const VectorDim& burgers, const VectorDim& chord, const std::shared_ptr<SlipSystem>& slipSystem,const SlipSystemTab::SlipSystemColorMapType& sscm) const;
102 };
103
104} // namespace model
105#endif
std::map< const SlipSystem *, SlipSystemButton * > SlipSystemColorMapType