CppNCorr
C++ ncorr Digital Image Correlation engine
Loading...
Searching...
No Matches
Strain2D.cpp
Go to the documentation of this file.
1/*
2 * File: Strain2D.cpp
3 * Author: justin
4 *
5 * Created on June 7, 2015, 10:14 PM
6 */
7
8#include "Strain2D.h"
9
10namespace ncorr {
11
12// Static factory methods ----------------------------------------------------//
13Strain2D Strain2D::load(std::ifstream &is) {
14 // Form empty Strain2D then fill in values in accordance to how they are saved
15 Strain2D strain;
16
17 // Load eyy
18 strain.eyy = Data2D::load(is);
19
20 // Load exy
21 strain.exy = Data2D::load(is);
22
23 // Load exx
24 strain.exx = Data2D::load(is);
25
26 return strain;
27}
28
29// Operators interface -------------------------------------------------------//
30std::ostream& operator<<(std::ostream &os, const Strain2D &strain) {
31 os << "Eyy data: " << '\n' << strain.get_eyy();
32 os << '\n' << "Exy data: " << '\n' << strain.get_exy();
33 os << '\n' << "Exx data: " << '\n' << strain.get_exx();
34
35 return os;
36}
37
38void imshow(const Strain2D &strain, Strain2D::difference_type delay) {
39 // Just show each separately for now. If you combine into one buffer, you
40 // must scale each as their ranges might be different.
41 imshow(strain.eyy, delay);
42 imshow(strain.exy, delay);
43 imshow(strain.exx, delay);
44}
45
46bool isequal(const Strain2D &strain1, const Strain2D &strain2) {
47 return isequal(strain1.eyy, strain2.eyy) && isequal(strain1.exy, strain2.exy) && isequal(strain1.exx, strain2.exx);
48}
49
50void save(const Strain2D &strain, std::ofstream &os) {
51 // Save eyy -> exy -> exx
52 save(strain.eyy, os);
53 save(strain.exy, os);
54 save(strain.exx, os);
55}
56
57// Interpolator --------------------------------------------------------------//
59 return details::Strain2D_nlinfo_interpolator(*this, region_idx, interp_type);
60}
61
62}
static Data2D load(std::ifstream &)
Definition Data2D.cpp:33
Data2D::difference_type difference_type
Definition Strain2D.h:27
friend void save(const Strain2D &, std::ofstream &)
Definition Strain2D.cpp:50
details::Strain2D_nlinfo_interpolator nlinfo_interpolator
Definition Strain2D.h:29
const Data2D & get_exx() const
Definition Strain2D.h:58
const Data2D & get_exy() const
Definition Strain2D.h:57
nlinfo_interpolator get_nlinfo_interpolator(difference_type, INTERP) const
Definition Strain2D.cpp:58
const Data2D & get_eyy() const
Definition Strain2D.h:56
static Strain2D load(std::ifstream &)
Definition Strain2D.cpp:13
bool isequal(const Data2D &data1, const Data2D &data2)
Definition Data2D.cpp:72
void imshow(const Data2D &data, Data2D::difference_type delay)
Definition Data2D.cpp:58
void save(const Data2D &data, std::ofstream &os)
Definition Data2D.cpp:78
INTERP
Definition Array2D.h:77
std::ostream & operator<<(std::ostream &os, const Data2D &data)
Definition Data2D.cpp:50