ug4
file_io_swc.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2015: G-CSC, Goethe University Frankfurt
3  * Author: Markus Breit
4  *
5  * This file is part of UG4.
6  *
7  * UG4 is free software: you can redistribute it and/or modify it under the
8  * terms of the GNU Lesser General Public License version 3 (as published by the
9  * Free Software Foundation) with the following additional attribution
10  * requirements (according to LGPL/GPL v3 §7):
11  *
12  * (1) The following notice must be displayed in the Appropriate Legal Notices
13  * of covered and combined works: "Based on UG4 (www.ug4.org/license)".
14  *
15  * (2) The following notice must be displayed at a prominent place in the
16  * terminal output of covered works: "Based on UG4 (www.ug4.org/license)".
17  *
18  * (3) The following bibliography is recommended for citation and must be
19  * preserved in all covered files:
20  * "Reiter, S., Vogel, A., Heppner, I., Rupp, M., and Wittum, G. A massively
21  * parallel geometric multigrid solver on hierarchically distributed grids.
22  * Computing and visualization in science 16, 4 (2013), 151-164"
23  * "Vogel, A., Reiter, S., Rupp, M., Nägel, A., and Wittum, G. UG4 -- a novel
24  * flexible software system for simulating pde based models on high performance
25  * computers. Computing and visualization in science 16, 4 (2013), 165-179"
26  *
27  * This program is distributed in the hope that it will be useful,
28  * but WITHOUT ANY WARRANTY; without even the implied warranty of
29  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
30  * GNU Lesser General Public License for more details.
31  */
32 
33 #ifndef __H__UG_file_io_swc
34 #define __H__UG_file_io_swc
35 
36 #include "lib_grid/grid/grid.h"
39 
40 namespace ug {
41 
42 namespace swc_types
43 {
44  enum swc_type
45  {
46  SWC_UNDF = 0,
47  SWC_SOMA = 1,
48  SWC_AXON = 2,
49  SWC_DEND = 3,
50  SWC_APIC = 4,
51  SWC_FORK = 5,
52  SWC_END = 6,
53  SWC_CUSTOM = 7
54  };
55 
56  struct SWCPoint
57  {
61  std::vector<size_t> conns;
62  };
63 }
64 
65 
67 {
68  public:
70 
71  public:
74 
75  bool load_file(const char* fileName);
76  bool create_grid(Grid& g, ISubsetHandler* pSH, number scale_length = 1.0);
77 
78  const std::vector<swc_types::SWCPoint>& swc_points() const;
79  std::vector<swc_types::SWCPoint>& swc_points();
80 
81  protected:
82  std::vector<swc_types::SWCPoint> m_vPts;
83 };
84 
85 
86 
88 {
89  public:
92 
93  bool export_grid_to_file(Grid& grid, ISubsetHandler* pSH, const char* filename);
94 };
95 
96 
97 bool LoadGridFromSWC(Grid& grid, ISubsetHandler* pSH, const char* filename, AVector3& aPos = aPosition);
98 bool ExportGridToSWC(Grid& grid, ISubsetHandler* pSH, const char* filename, AVector3& aPos = aPosition);
99 
100 } // end of namespace ug
101 
102 #endif // __H__UG_file_io_swc
A generic specialization of IAttachment.
Definition: attachment_pipe.h:263
Definition: file_io_swc.h:67
bool create_grid(Grid &g, ISubsetHandler *pSH, number scale_length=1.0)
Definition: file_io_swc.cpp:158
bool load_file(const char *fileName)
Definition: file_io_swc.cpp:52
FileReaderSWC()
Definition: file_io_swc.h:72
swc_types::SWCPoint SWCPoint
Definition: file_io_swc.h:69
std::vector< swc_types::SWCPoint > m_vPts
Definition: file_io_swc.h:82
const std::vector< swc_types::SWCPoint > & swc_points() const
Definition: file_io_swc.cpp:221
~FileReaderSWC()
Definition: file_io_swc.h:73
Definition: file_io_swc.h:88
~FileWriterSWC()
Definition: file_io_swc.h:91
bool export_grid_to_file(Grid &grid, ISubsetHandler *pSH, const char *filename)
FileWriterSWC()
Definition: file_io_swc.h:90
Manages the elements of a grid and their interconnection.
Definition: grid.h:132
Definition: subset_handler_interface.h:223
double number
Definition: types.h:124
swc_type
Definition: file_io_swc.h:45
@ SWC_SOMA
Definition: file_io_swc.h:47
@ SWC_FORK
Definition: file_io_swc.h:51
@ SWC_APIC
Definition: file_io_swc.h:50
@ SWC_END
Definition: file_io_swc.h:52
@ SWC_UNDF
Definition: file_io_swc.h:46
@ SWC_AXON
Definition: file_io_swc.h:48
@ SWC_DEND
Definition: file_io_swc.h:49
@ SWC_CUSTOM
Definition: file_io_swc.h:53
the ug namespace
bool ExportGridToSWC(Grid &g, ISubsetHandler *pSH, const char *fileName, AVector3 &aPos)
Definition: file_io_swc.cpp:244
bool LoadGridFromSWC(Grid &g, ISubsetHandler *pSH, const char *fileName, AVector3 &aPos)
Definition: file_io_swc.cpp:235
APosition aPosition("position", true)
The standard 3d position type.
Definition: common_attachments.h:84
Definition: file_io_swc.h:57
number radius
Definition: file_io_swc.h:59
swc_type type
Definition: file_io_swc.h:60
vector3 coords
Definition: file_io_swc.h:58
std::vector< size_t > conns
Definition: file_io_swc.h:61