BlosSOM
Interactive dimensionality reduction on large datasets (EmbedSOM and FLOWER combined)
state.h
Go to the documentation of this file.
1/* This file is part of BlosSOM.
2 *
3 * Copyright (C) 2021 Martin Krulis
4 * Mirek Kratochvil
5 * Sona Molnarova
6 *
7 * BlosSOM is free software: you can redistribute it and/or modify it under
8 * the terms of the GNU General Public License as published by the Free
9 * Software Foundation, either version 3 of the License, or (at your option)
10 * any later version.
11 *
12 * BlosSOM is distributed in the hope that it will be useful, but WITHOUT ANY
13 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
14 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
15 * details.
16 *
17 * You should have received a copy of the GNU General Public License along with
18 * BlosSOM. If not, see <https://www.gnu.org/licenses/>.
19 */
20
21#ifndef STATE_H
22#define STATE_H
23
24#include <memory>
25#include <string>
26#include <vector>
27
28#include "color_data.h"
29#include "data_model.h"
30#include "frame_stats.h"
31#include "graph_layout.h"
32#include "kmeans_landmark.h"
33#include "knn_edges.h"
34#include "landmark_model.h"
35#include "mouse_data.h"
36#include "scaled_data.h"
37#include "scatter_model.h"
38#include "training_config.h"
39#include "trans_data.h"
40#include "tsne_layout.h"
41
42/**
43 * @brief Storage of data of used algorithms and input events.
44 *
45 * It represents state of the simulation in current frame and performs steps of
46 * the simulation in each frame.
47 *
48 */
49struct State
50{
56
62
65
67
68 /**
69 * @brief Performs simulation steps of all active algorithms and updates
70 * data according to the user interaction.
71 *
72 * @param time Duration of the last frame.
73 */
74 void update(float time, bool vert_pressed, int vert_ind);
75};
76
77#endif // #ifndef STATE_H
Storage of the color data.
Definition: color_data.h:40
Storage of data from loaded input file.
Definition: data_model.h:32
Data for landmark graph layouting algorithm using forces.
Definition: graph_layout.h:35
Structure for storing the kmeans-style data.
Model of the high- and low-dimensional landmarks.
Statistics from the untransformed dataset.
Definition: trans_data.h:38
Storage of the scaled data.
Definition: scaled_data.h:53
Model of the two-dimensional data points.
Definition: scatter_model.h:42
Storage of data of used algorithms and input events.
Definition: state.h:50
DataModel data
Definition: state.h:51
void update(float time, bool vert_pressed, int vert_ind)
Performs simulation steps of all active algorithms and updates data according to the user interaction...
Definition: state.cpp:26
GraphLayoutData layout_data
Definition: state.h:58
ScaledData scaled
Definition: state.h:54
ScatterModel scatter
Definition: state.h:64
LandmarkModel landmarks
Definition: state.h:55
FrameStats frame_stats
Definition: state.h:66
TransData trans
Definition: state.h:53
RawDataStats stats
Definition: state.h:52
TSNELayoutData tsne_data
Definition: state.h:59
ColorData colors
Definition: state.h:63
KnnEdgesData knn_data
Definition: state.h:61
KMeansData kmeans_data
Definition: state.h:60
TrainingConfig training_conf
Definition: state.h:57
A context structure for tSNE computation.
Definition: tsne_layout.h:35
Storage of the dynamic parameters of the algorithms that are set in the GUI by user.
Storage of the transformed data.
Definition: trans_data.h:74