Developer Documentation
Loading...
Searching...
No Matches
FileVTK.hh
1/*===========================================================================*\
2* *
3* OpenFlipper *
4 * Copyright (c) 2001-2025, RWTH-Aachen University *
5 * Department of Computer Graphics and Multimedia *
6 * All rights reserved. *
7 * www.openflipper.org *
8 * *
9 *---------------------------------------------------------------------------*
10 * This file is part of OpenFlipper. *
11 *---------------------------------------------------------------------------*
12 * *
13 * Redistribution and use in source and binary forms, with or without *
14 * modification, are permitted provided that the following conditions *
15 * are met: *
16 * *
17 * 1. Redistributions of source code must retain the above copyright notice, *
18 * this list of conditions and the following disclaimer. *
19 * *
20 * 2. Redistributions in binary form must reproduce the above copyright *
21 * notice, this list of conditions and the following disclaimer in the *
22 * documentation and/or other materials provided with the distribution. *
23 * *
24 * 3. Neither the name of the copyright holder nor the names of its *
25 * contributors may be used to endorse or promote products derived from *
26 * this software without specific prior written permission. *
27 * *
28 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS *
29 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED *
30 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A *
31 * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER *
32 * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, *
33 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, *
34 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR *
35 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF *
36 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING *
37 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS *
38 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *
39* *
40\*===========================================================================*/
41
42#pragma once
43
44#include <QObject>
45#include <QCheckBox>
46#include <QLabel>
47#include <QSpinBox>
48
55#include <OpenFlipper/BasePlugin/INIInterface.hh>
59#include <OpenFlipper/BasePlugin/TextureInterface.hh>
61
64
65#ifdef ENABLE_HEXAHEDRALMESH_SUPPORT
67#endif
68#ifdef ENABLE_POLYHEDRALMESH_SUPPORT
70#endif
71#ifdef ENABLE_TETRAHEDRALMESH_SUPPORT
73#endif
74
75enum Dataset {
76 STRUCTURED_POINTS,
77 STRUCTURED_GRID,
78 RECTILINEAR_GRID,
79 POLYDATA,
80 UNSTRUCTURED_GRID
81};
82
85{
86 class CellType {
87
88 public:
89
90 CellType() :
91 type(0),
92 index(-1)
93 {
94 }
95
96 // The type of the cell
97 unsigned int type;
98
99 // The index of the primitiv in the mesh that was created from this cell
100 unsigned int index;
101
102 // list of indices in the cell
103 std::vector<quint32> indices;
104 };
105
106 Q_OBJECT
107 Q_INTERFACES(FileInterface)
108 Q_INTERFACES(LoadSaveInterface)
109 Q_INTERFACES(LoggingInterface)
110 Q_INTERFACES(BaseInterface)
111 Q_INTERFACES(ScriptInterface)
112 Q_INTERFACES(INIInterface)
113 Q_INTERFACES(StatusbarInterface)
114 Q_INTERFACES(RPCInterface)
115 Q_INTERFACES(TextureInterface)
116 Q_INTERFACES(PythonInterface)
117
118 Q_PLUGIN_METADATA(IID "org.OpenFlipper.Plugins.Plugin-VTK")
119
120 signals:
121 void openedFile( int _id );
122 void addEmptyObject( DataType _type, int& _id);
123 void load(QString _filename, DataType _type, int& _id);
124 void save(int _id , QString _filename );
125 void log(Logtype _type, QString _message);
126 void log(QString _message);
127 void updateView();
128 void updatedObject(int _identifier, const UpdateType& _type);
129
130 void emptyObjectAdded( int _id );
131 void deleteObject( int _id );
132
133 // StatusbarInterface
134 void showStatusMessage(QString _message, int _timeout = 0);
135 void setStatus( ApplicationStatus::applicationStatus _status);
136
137 //RPCInterface
138 void pluginExists( QString _pluginName , bool& _exists );
139 void functionExists( QString _pluginName , QString _functionName , bool& _exists );
140
141 //TextureInterface
142 void setTextureMode(QString _textureName, QString _mode, int _id );
143 void switchTexture( QString _textureName, int _id );
144 void addMultiTexture( QString _textureGroup, QString _name, QString _filename, int _id, int& _textureId);
145 void textureFilename( int /*_id*/, QString /*_textureName*/, QString& /*_textureFilename*/ );
146 void textureIndex(QString _name,int _id, int& _index);
147 void getCurrentTexture(int /*_id*/, QString& /*_name*/);
148 void textureName (int, int, QString &);
149 void getSubTextures (int, QString, QStringList &);
150 void textureIndexPropertyName(int, QString&);
151
152 private slots:
153
154 void fileOpened( int /*_id*/ ){};
155
156 void noguiSupported( ) {} ;
157
158 void initializePlugin();
159
161 void slotSaveDefault();
162
163
164 public :
165 enum ObjectOptionsVtk
166 {
167 NONE = 0,
168 BINARY = 1,
169 FACENORMALS = 1 << 1,
170 VERTEXNORMALS = 1 << 2,
171 VERTEXTEXCOORDS = 1 << 3,
172 };
173
175
176 ~FileVTKPlugin() {};
177
178 QString name() { return (QString("FileVTK")); };
179 QString description( ) { return (QString(tr("Load/Save ASCII VTK-Files"))); };
180
182
183 QString getSaveFilters();
184 QString getLoadFilters();
185
186 QWidget* loadOptionsWidget(QString /*_currentFilter*/);
187 QWidget* saveOptionsWidget(QString /*_currentFilter*/);
188
189 public slots:
190
192 int loadObject(QString _filename);
193
195 int loadObject(QString _filename, DataType _type);
196
197 bool saveObject(int _id, QString _filename);
198
199 QString version() { return QString("1.0"); };
200
201 private:
202
203 bool forceTriangleMesh_;
204 bool forcePolyMesh_;
205
206 QWidget* saveOptions_;
207
208 QCheckBox* saveBinary_;
209 QCheckBox* saveFaceNormals_;
210 QCheckBox* saveVertexNormals_;
211 QCheckBox* saveVertexTexCoords_;
212 QLabel* savePrecisionLabel_;
213 QSpinBox* savePrecision_;
214 QPushButton* saveDefaultButton_;
215
218 unsigned int userWriteOptions_;
219
222 void updateUserOptions();
223
224
234 template <typename MeshT>
235 void addCellNormal(MeshT*& _mesh,const CellType& _cell, OpenMesh::Vec3d _normal);
236
245 template <typename MeshT>
246 int addTetraCellToOpenMesh(MeshT _mesh, std::vector<quint32> _indices);
247
256 template <typename MeshT>
257 int addHexaCellToOpenMesh(MeshT _mesh, std::vector<quint32> _indices);
258
267 template <typename MeshT>
268 int addWedgeCellToOpenMesh(MeshT _mesh, std::vector<quint32> _indices);
269
278 template <typename MeshT>
279 int addPyramidCellToOpenMesh(MeshT _mesh, std::vector<quint32> _indices);
280
289 template <typename MeshT>
290 int addFaceToOpenMesh(MeshT*& _mesh, std::vector<quint32> _indices);
291
302 template <typename MeshT>
303 int addFaceToOpenMesh(MeshT*& _mesh, quint32 _index1, quint32 _index2, quint32 _index3);
304
310 template <typename MeshT>
312
318 template <typename MeshT>
320
326 template <typename MeshT>
328
336 template <typename MeshT>
337 void addVertexNormalToOpenMesh(MeshT _mesh, quint32 _index, OpenMesh::Vec3d _normal);
338
346 template <typename MeshT>
347 void addFaceNormalToOpenMesh(MeshT _mesh, quint32 _index, OpenMesh::Vec3d _normal);
348
354 template <typename MeshT>
356
363 template< class MeshT >
364 bool writeASCIIDataOfOpenMesh(std::ostream& _out, MeshT& _mesh );
365
374 int addTetraCell(TriMesh*& _mesh, const std::vector<quint32>& _indices);
375
384 int addTetraCell(PolyMesh*& _mesh, const std::vector<quint32>& _indices);
385
394 int addHexaCell(TriMesh*& _mesh, const std::vector<quint32>& _indices);
395
404 int addHexaCell(PolyMesh*& _mesh, const std::vector<quint32>& _indices);
405
414 int addWedgeCell(TriMesh*& _mesh, const std::vector<quint32>& _indices);
415
424 int addWedgeCell(PolyMesh*& _mesh, const std::vector<quint32>& _indices);
425
434 int addPyramidCell(TriMesh*& _mesh, const std::vector<quint32>& _indices);
435
444 int addPyramidCell(PolyMesh*& _mesh, const std::vector<quint32>& _indices);
445
454 int addFace(TriMesh*& _mesh, const std::vector<quint32>& _indices);
455
464 int addFace(PolyMesh*& _mesh, const std::vector<quint32>& _indices);
465
476 int addFace(TriMesh*& _mesh, quint32 _index1, quint32 _index2, quint32 _index3);
477
488 int addFace(PolyMesh*& _mesh, quint32 _index1, quint32 _index2, quint32 _index3);
489
495 void updateFaceNormals(TriMesh*& _mesh);
496
502 void updateFaceNormals(PolyMesh*& _mesh);
503
509 void updateVertexNormals(TriMesh*& _mesh);
510
516 void updateVertexNormals(PolyMesh*& _mesh);
517
524
531
539 void addVertexNormal(TriMesh*& _mesh, quint32 _index, OpenMesh::Vec3d _normal);
540
548 void addVertexNormal(PolyMesh*& _mesh, quint32 _index, OpenMesh::Vec3d _normal);
549
557 void addFaceNormal(TriMesh*& _mesh, quint32 _index, OpenMesh::Vec3d _normal);
558
566 void addFaceNormal(PolyMesh*& _mesh, quint32 _index, OpenMesh::Vec3d _normal);
567
574
581
588 bool writeASCIIData(std::ostream& _out, TriMesh& _mesh);
589
596 bool writeASCIIData(std::ostream& _out, PolyMesh& _mesh);
597
598#if defined(ENABLE_HEXAHEDRALMESH_SUPPORT) || defined(ENABLE_POLYHEDRALMESH_SUPPORT) || defined(ENABLE_TETRAHEDRALMESH_SUPPORT)
607 template <typename MeshT>
608 int addTetraCellToOpenVolumeMesh(MeshT _mesh, std::vector<quint32> _indices);
609
618 template <typename MeshT>
619 int addHexaCellToOpenVolumeMesh(MeshT _mesh, std::vector<quint32> _indices);
620
629 template <typename MeshT>
630 int addWedgeCellToOpenVolumeMesh(MeshT _mesh, std::vector<quint32> _indices);
631
640 template <typename MeshT>
641 int addPyramidCellToOpenVolumeMesh(MeshT _mesh, std::vector<quint32> _indices);
642
651 template <typename MeshT>
652 int addFaceToOpenVolumeMesh(MeshT*& _mesh, std::vector<quint32> indices);
653
664 template <typename MeshT>
665 int addFaceToOpenVolumeMesh(MeshT*& _mesh, quint32 _index1, quint32 _index2, quint32 _index3);
666
674 template <typename MeshT>
675 void addVertexNormalToOpenVolumeMesh(MeshT _mesh, quint32 _index, OpenMesh::Vec3d _normal);
676
684 template <typename MeshT>
685 void addFaceNormalToOpenVolumeMesh(MeshT _mesh, quint32 _index, OpenMesh::Vec3d _normal);
686
693 template< class MeshT >
694 bool writeASCIIDataOfOpenVolumeMesh(std::ostream& _out, MeshT& _mesh );
695#endif //ENABLE_OPENVOLUMEMESH_SUPPORT
696
697#ifdef ENABLE_HEXAHEDRALMESH_SUPPORT
706 int addTetraCell(HexahedralMesh*& _mesh, const std::vector<quint32>& indices);
707
716 int addHexaCell(HexahedralMesh*& _mesh, const std::vector<quint32>& indices);
717
726 int addWedgeCell(HexahedralMesh*& _mesh, const std::vector<quint32>& indices);
727
736 int addPyramidCell(HexahedralMesh*& _mesh, const std::vector<quint32>& indices);
737
746 int addFace(HexahedralMesh*& _mesh, const std::vector<quint32>& indices);
747
758 int addFace(HexahedralMesh*& _mesh, quint32 _index1, quint32 _index2, quint32 _index3);
759
766 void updateFaceNormals(HexahedralMesh*& _mesh){/* don't need to be updated */};
767
774 void updateVertexNormals(HexahedralMesh*& _mesh){/* don't need to be updated */};
775
782 void removeTemporaryProperties(HexahedralMesh*& _mesh){/* don't need to be removed */};
783
791 void addVertexNormal(HexahedralMesh*& _mesh, quint32 _index, OpenMesh::Vec3d _normal);
792
800 void addFaceNormal(HexahedralMesh*& _mesh, quint32 _index, OpenMesh::Vec3d _normal);
801
809 void setNormalsOfDuplicatedVertices(HexahedralMesh*& _mesh){/* we didn't duplicate any vertices */};
810
817 bool writeASCIIData(std::ostream& _out, HexahedralMesh& _mesh);
818#endif //ENABLE_HEXAHEDRALMESH_SUPPORT
819
820#ifdef ENABLE_POLYHEDRALMESH_SUPPORT
829 int addTetraCell(PolyhedralMesh*& _mesh, const std::vector<quint32>& indices);
830
839 int addHexaCell(PolyhedralMesh*& _mesh, const std::vector<quint32>& indices);
840
849 int addWedgeCell(PolyhedralMesh*& _mesh, const std::vector<quint32>& indices);
850
859 int addPyramidCell(PolyhedralMesh*& _mesh, const std::vector<quint32>& indices);
860
869 int addFace(PolyhedralMesh*& _mesh, const std::vector<quint32>& indices);
870
881 int addFace(PolyhedralMesh*& _mesh, quint32 _index1, quint32 _index2, quint32 _index3);
882
889 void updateFaceNormals(PolyhedralMesh*& _mesh){/* don't need to be updated */};
890
897 void updateVertexNormals(PolyhedralMesh*& _mesh){/* don't need to be updated */};
898
905 void removeTemporaryProperties(PolyhedralMesh*& _mesh){/* don't need to be removed */};
906
914 void addVertexNormal(PolyhedralMesh*& _mesh, quint32 _index, OpenMesh::Vec3d _normal);
915
923 void addFaceNormal(PolyhedralMesh*& _mesh, quint32 _index, OpenMesh::Vec3d _normal);
924
932 void setNormalsOfDuplicatedVertices(PolyhedralMesh*& _mesh){/* we didn't duplicate any vertices */};
933
940 bool writeASCIIData(std::ostream& _out, PolyhedralMesh& _mesh);
941#endif //ENABLE_POLYHEDRALMESH_SUPPORT
942
943#ifdef ENABLE_TETRAHEDRALMESH_SUPPORT
952 int addTetraCell(TetrahedralMesh*& _mesh, const std::vector<quint32>& indices);
953
962 int addHexaCell(TetrahedralMesh*& _mesh, const std::vector<quint32>& indices);
963
972 int addWedgeCell(TetrahedralMesh*& _mesh, const std::vector<quint32>& indices);
973
982 int addPyramidCell(TetrahedralMesh*& _mesh, const std::vector<quint32>& indices);
983
992 int addFace(TetrahedralMesh*& _mesh, const std::vector<quint32>& indices);
993
1004 int addFace(TetrahedralMesh*& _mesh, quint32 _index1, quint32 _index2, quint32 _index3);
1005
1012 void updateFaceNormals(TetrahedralMesh*& _mesh){/* don't need to be updated */};
1013
1020 void updateVertexNormals(TetrahedralMesh*& _mesh){/* don't need to be updated */};
1021
1028 void removeTemporaryProperties(TetrahedralMesh*& _mesh){/* don't need to be removed */};
1029
1037 void addVertexNormal(TetrahedralMesh*& _mesh, quint32 _index, OpenMesh::Vec3d _normal);
1038
1046 void addFaceNormal(TetrahedralMesh*& _mesh, quint32 _index, OpenMesh::Vec3d _normal);
1047
1055 void setNormalsOfDuplicatedVertices(TetrahedralMesh*& _mesh){/* we didn't duplicate any vertices */};
1056
1063 bool writeASCIIData(std::ostream& _out, TetrahedralMesh& _mesh);
1064#endif //ENABLE_POLYHEDRALMESH_SUPPORT
1065
1066
1067 enum BestMeshType {
1068 BMT_None = 0,
1069 BMT_TriMesh = 1,
1070 BMT_PolyMesh = 1 << 1,
1071 BMT_HexahedralMesh = 1 << 2,
1072 BMT_PolyhedralMesh = 1 << 3,
1073 BMT_TetrahedralMesh = 1 << 4
1074 };
1075
1077 BestMeshType findBestObjectType(QString _filename);
1078
1079 template <typename MeshT>
1080 bool loadMesh(QTextStream& _stream,MeshT*& _mesh, Dataset _type);
1081
1088 template <typename MeshT>
1089 bool loadMeshPoints(QString _spec,QTextStream& _in,MeshT*& _mesh);
1090
1098 template <typename MeshT>
1099 bool loadMeshLines(QString _spec,QTextStream& _in,MeshT*& _mesh);
1100
1109 template <typename MeshT>
1110 bool loadMeshPolygons(QString _spec,QTextStream& _in,MeshT*& _mesh, std::vector<CellType>& _cells);
1111
1120 template <typename MeshT>
1121 int add_non_manifold_face(MeshT*& _mesh, std::vector< OpenMesh::VertexHandle >& _vhandles);
1122
1131 template <typename MeshT>
1132 bool loadMeshTriangleStrips(QString _spec,QTextStream& _in,MeshT*& _mesh, std::vector<CellType>& _cells);
1133
1142 template <typename MeshT>
1143 bool loadMeshCells(QString _spec,QTextStream& _in,MeshT*& _mesh, std::vector<CellType>& _cells);
1144
1155 template <typename MeshT>
1156 bool loadMeshNormals(QString _spec,QTextStream& _in,MeshT*& _mesh, std::vector<CellType>& _cells, bool _pointNormal, quint32 _count);
1157
1164 template< class MeshT >
1165 bool writeMesh(std::ostream& _out, MeshT& _mesh );
1166
1167};
1168
1169
Logtype
Log types for Message Window.
Interface class from which all plugins have to be created.
Predefined datatypes.
Definition DataTypes.hh:83
Interface class for file handling.
void setNormalsOfDuplicatedVerticesOfOpenMesh(MeshT *&_mesh)
Sets normals of duplicated vertices that were created for non-manifold meshes.
Definition FileVTK.cc:352
FileVTKPlugin()
Constructor.
Definition FileVTK.cc:69
void removeTemporaryProperties(TriMesh *&_mesh)
Removed temporary properties that might have been added during file reading.
Definition FileVTK.cc:474
void addFaceNormalToOpenMesh(MeshT _mesh, quint32 _index, OpenMesh::Vec3d _normal)
Adds a face normal.
Definition FileVTK.cc:301
void noguiSupported()
Definition FileVTK.hh:156
bool writeASCIIDataOfOpenMesh(std::ostream &_out, MeshT &_mesh)
Writes the data of the VTK file in ASCII format.
Definition FileVTK.cc:372
void slotSaveDefault()
Slot called when user wants to save the given Save options as default.
Definition FileVTK.cc:186
void removeTemporaryPropertiesOfOpenMesh(MeshT *&_mesh)
Removed temporary properties that might have been added during file reading.
Definition FileVTK.cc:282
int loadObject(QString _filename)
Loads Object and converts it to a triangle mesh if possible.
Definition FileVTK.cc:1509
QString description()
Return a description of what the plugin is doing.
Definition FileVTK.hh:179
void updateVertexNormals(TriMesh *&_mesh)
Updates vertex normals.
Definition FileVTK.cc:471
BestMeshType findBestObjectType(QString _filename)
Reads the file to check for present primitives and returns the object type that fits best.
Definition FileVTK.cc:1199
bool loadMeshLines(QString _spec, QTextStream &_in, MeshT *&_mesh)
Reads lines from the stream and adds them to the mesh.
Definition FileVTK.cc:1867
void addVertexNormalToOpenMesh(MeshT _mesh, quint32 _index, OpenMesh::Vec3d _normal)
Adds a vertex normal.
Definition FileVTK.cc:292
int addWedgeCell(TriMesh *&_mesh, const std::vector< quint32 > &_indices)
Adds a wedge cell to the mesh. (Does nothing, yet)
Definition FileVTK.cc:459
QString getLoadFilters()
Definition FileVTK.cc:101
void updateVertexNormalsOfOpenMesh(MeshT *&_mesh)
Updates vertex normals.
Definition FileVTK.cc:276
QString name()
Return a name for the plugin.
Definition FileVTK.hh:178
void updateFaceNormals(TriMesh *&_mesh)
Updates face normals.
Definition FileVTK.cc:271
bool loadMeshTriangleStrips(QString _spec, QTextStream &_in, MeshT *&_mesh, std::vector< CellType > &_cells)
Reads triangle strips from the stream and adds them to the mesh.
Definition FileVTK.cc:2102
void addFaceNormal(TriMesh *&_mesh, quint32 _index, OpenMesh::Vec3d _normal)
Adds a face normal.
Definition FileVTK.cc:480
void updateUserOptions()
Definition FileVTK.cc:2839
bool writeMesh(std::ostream &_out, MeshT &_mesh)
Writes the header of the VTK file, then calls writeASCIIData (binary VTK is currently unsupported)
Definition FileVTK.cc:2816
DataType supportedType()
Return your supported object type( e.g. DATA_TRIANGLE_MESH )
Definition FileVTK.cc:113
int addHexaCellToOpenMesh(MeshT _mesh, std::vector< quint32 > _indices)
Adds a hexa cell to the mesh. (Does nothing, yet)
Definition FileVTK.cc:211
int addPyramidCell(TriMesh *&_mesh, const std::vector< quint32 > &_indices)
Adds a pyramid cell to the mesh. (Does nothing, yet)
Definition FileVTK.cc:462
int addPyramidCellToOpenMesh(MeshT _mesh, std::vector< quint32 > _indices)
Adds a pyramid cell to the mesh. (Does nothing, yet)
Definition FileVTK.cc:225
void addCellNormal(MeshT *&_mesh, const CellType &_cell, OpenMesh::Vec3d _normal)
Adds a normal to the cell.
Definition FileVTK.cc:309
int addTetraCell(TriMesh *&_mesh, const std::vector< quint32 > &_indices)
Adds a tetra cell to the mesh. (Does nothing, yet)
Definition FileVTK.cc:453
bool binary_
Reading binary file?
Definition FileVTK.hh:217
int add_non_manifold_face(MeshT *&_mesh, std::vector< OpenMesh::VertexHandle > &_vhandles)
Helper function for loadMeshPolygons() that takes care of adding non-manifold faces.
Definition FileVTK.cc:2050
int addTetraCellToOpenMesh(MeshT _mesh, std::vector< quint32 > _indices)
Adds a tetra cell to the mesh. (Does nothing, yet)
Definition FileVTK.cc:204
QWidget * loadOptionsWidget(QString)
Definition FileVTK.cc:131
void setNormalsOfDuplicatedVertices(TriMesh *&_mesh)
Sets normals of duplicated vertices that were created for non-manifold meshes.
Definition FileVTK.cc:483
QWidget * saveOptionsWidget(QString)
Definition FileVTK.cc:137
bool loadMeshPoints(QString _spec, QTextStream &_in, MeshT *&_mesh)
Reads points from the stream and adds them to the mesh.
Definition FileVTK.cc:1784
int addWedgeCellToOpenMesh(MeshT _mesh, std::vector< quint32 > _indices)
Adds a wedge cell to the mesh. (Does nothing, yet)
Definition FileVTK.cc:218
int addHexaCell(TriMesh *&_mesh, const std::vector< quint32 > &_indices)
Adds a hexa cell to the mesh. (Does nothing, yet)
Definition FileVTK.cc:456
int addFace(TriMesh *&_mesh, const std::vector< quint32 > &_indices)
Adds a face to the mesh.
Definition FileVTK.cc:465
bool loadMeshNormals(QString _spec, QTextStream &_in, MeshT *&_mesh, std::vector< CellType > &_cells, bool _pointNormal, quint32 _count)
Reads Normals from the stream and adds them to the mesh.
Definition FileVTK.cc:2205
void initializePlugin()
Initialize Plugin.
Definition FileVTK.cc:87
int addFaceToOpenMesh(MeshT *&_mesh, std::vector< quint32 > _indices)
Adds a face to the mesh.
Definition FileVTK.cc:232
bool loadMeshCells(QString _spec, QTextStream &_in, MeshT *&_mesh, std::vector< CellType > &_cells)
Reads unstructured grid data from the stream and adds it to the mesh.
Definition FileVTK.cc:2286
bool writeASCIIData(std::ostream &_out, TriMesh &_mesh)
Writes the data of the VTK file in ASCII format.
Definition FileVTK.cc:486
bool loadMeshPolygons(QString _spec, QTextStream &_in, MeshT *&_mesh, std::vector< CellType > &_cells)
Reads polygons from the stream and adds them to the mesh.
Definition FileVTK.cc:1951
void addVertexNormal(TriMesh *&_mesh, quint32 _index, OpenMesh::Vec3d _normal)
Adds a vertex normal.
Definition FileVTK.cc:477
QString getSaveFilters()
Definition FileVTK.cc:107
void updateFaceNormalsOfOpenMesh(MeshT *&_mesh)
Updates face normals.
Definition FileVTK.cc:266
Interface class for Plugins which have to store information in ini files.
Interface for all plugins which want to Load or Save files and create Objects.
Interface for all Plugins which do logging to the logging window of the framework.
Interface class for exporting functions to python.
Interface to call functions across plugins.
Interface for all Plugins which provide scriptable Functions.
Control OpenFlippers status bar.
Provide texture support for a plugin.
Update type class.
Definition UpdateType.hh:59
applicationStatus
Enum for the statusBar Status Icon.