LineParser.h
1 #include "stdafx.h"
2 #include <stdio.h>
3 #include <stdlib.h>
4 #include "Node.h"
5 #include "LineElement.h"
6 #include "Material.h"
7 #include <fstream>
8 #include <string>
9 #include <vector>
10 #pragma once
11 class LineParser
13 {
14 public:
15 
16  ~LineParser();
17 
18  static const int TWO_NODED_LINE_REGULAR = 1;
19  static const int TWO_NODED_LINE_SPECIFIC = 4;
23  std::string line;
24 
25 
26 
27  bool readMeshFormat(std::ifstream&, double*);
28  bool readNodes(std::ifstream& in, std::vector<Node> *nodes);
29  void readInt(std::ifstream& in, int *number);
30  void readDouble(std::ifstream& in, double* number);
31  bool filePosEqualsLine(std::ifstream&, std::string);
32 
33  void createTwoNodeLineElement(std::ifstream& in, std::vector<LineElement*> *elements, int type, std::vector<Node>& nodes);
34  void createTwoNodeSpecificLineElement(std::ifstream & in, std::vector<LineElement*> *elements, int type, std::vector<Node>& nodes);
35 
46  LineParser(std::string fileName, std::vector<LineElement*>& elements, std::vector<Node>& nodes, Material mat);
47 
48 
55  void load_msh(std::ifstream&, std::vector<LineElement*>& elements, std::vector<Node>& nodes);
56 
57 
64  bool readElements(std::ifstream&, std::vector<LineElement*> *, std::vector<Node>& nodes);
65 
66 
67 private:
68 
69 };
70 
bool filePosEqualsLine(std::ifstream &, std::string)
Verifies that the line from the file matches with .msh format version.
Definition: LineParser.cpp:77
int regularCount
Counter for regular elements (no material properties specified in mesh file. Base material is used) ...
Definition: LineParser.h:21
void createTwoNodeSpecificLineElement(std::ifstream &in, std::vector< LineElement * > *elements, int type, std::vector< Node > &nodes)
Creates a two-node LineElement with specific material properties as defined by .msh file...
Definition: LineParser.cpp:114
void readDouble(std::ifstream &in, double *number)
Assigns a double value from the .msh file to the number argument.
Definition: LineParser.cpp:71
LineParser(std::string fileName, std::vector< LineElement * > &elements, std::vector< Node > &nodes, Material mat)
Constructor.
Definition: LineParser.cpp:12
bool readMeshFormat(std::ifstream &, double *)
Verifies the mesh format of the file.
Definition: LineParser.cpp:150
Material mat
Base material, passed from LineMesh. Regular elements properties is set according to the base materia...
Definition: LineParser.h:20
Contains material data such as Young&#39;s Modulus, Shear Modulus and Poisson&#39;s ratio, and if needed could include additional material properties.
Definition: Material.h:3
Interprets thin-wall meshes structured in the ".msh" format.
Definition: LineParser.h:12
void createTwoNodeLineElement(std::ifstream &in, std::vector< LineElement * > *elements, int type, std::vector< Node > &nodes)
Creates a two-node LineElement with material properties according to base material. Default thickness is 5.
Definition: LineParser.cpp:83
std::string line
Data on line in current position in file.
Definition: LineParser.h:23
void load_msh(std::ifstream &, std::vector< LineElement * > &elements, std::vector< Node > &nodes)
Loads the .msh file data into the elements and nodes vectors.
Definition: LineParser.cpp:30
void readInt(std::ifstream &in, int *number)
Assigns an integer value from the .msh file to the number argument.
Definition: LineParser.cpp:66
int specificCount
Counter for specific elements (uses material properties specific in mesh file)
Definition: LineParser.h:22
bool readNodes(std::ifstream &in, std::vector< Node > *nodes)
Reads the nodes from the .msh file.
Definition: LineParser.cpp:167
static const int TWO_NODED_LINE_SPECIFIC
Integer for "custom" two-node line element, with material properties set according to ...
Definition: LineParser.h:19
static const int TWO_NODED_LINE_REGULAR
Integer for regular two-node line element, with material properties identical to base material...
Definition: LineParser.h:18
bool readElements(std::ifstream &, std::vector< LineElement * > *, std::vector< Node > &nodes)
Reads the elements from .msh file.
Definition: LineParser.cpp:191