FrontISTR  5.7.0
Large-scale structural analysis program with finit element method
CHECDB_Visual.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * Copyright (c) 2019 FrontISTR Commons
3  * This software is released under the MIT License, see LICENSE.txt
4  *****************************************************************************/
5 /*
6  CHECDB_Visual Ver. 3.6
7 */
8 
9 #ifndef CHECDB_VisualH
10 #define CHECDB_VisualH
11 
12 #include "CHECDataBlock.h"
13 
14 // parameters for screen
16  public:
17  // screen
18 
19  int x_resolution; // default:512
20  int y_resolution; // default:512
21  int num_of_lights; // default:1
22  double* position_of_lights; // (default:NULL--not specified)
23  double viewpoint[3];
24  bool fg_viewpoint; // (inner use, default:false);
25  double look_at_point[3];
26  bool fg_look_at_point; // (inner use, default:false);
27  double up_direction[3]; // default:{0,0,1}
28  double ambient_coef; // default:0.3
29  double diffuse_coef; // default:0.7
30  double specular_coef; // default:0.6
32  enum {
33  color_mapping_style_linear = 1, // default;
37  };
38  int interval_mapping_num; // (default:0)
39  double* interval_mapping; // (default:NULL -- not specified)
40 
42  enum {
43  rotate_style_none = 0, // default ( inner use )
48  };
49  int num_of_frame; // default:8
50  int color_mapping_bar_on; // default:0
51  int scale_marking_on; // default:0
52  int num_of_scales; // default:3
53  double font_size; // default:1
54  double font_color[3]; // default:{1,1,1}
55  double background_color[3]; // default:{0,0,0}
56 
58  enum {
59  color_system_type_blue_red = 1, // default
62  };
63  int fixed_range_on; // default:0
64  double range_value[2];
65  bool fg_range_value; // (inner use, default:false)
66 
67  public:
68  // methods
70  virtual ~CVis_ViewParams();
71  virtual void Init();
72  virtual void Write(class CHECData* hecd);
73  static void WriteVisParam(class CHECData* hecd, const char* name,
74  const char* fmt, ...);
75  static void WriteVisPArry(class CHECData* hecd, const char* name, char type,
76  int n, void* p); // for array
77 
78  template <class T>
79  static int ReadVisValueT(char* s, int n, T* value, const char* fmt);
80  static int ReadVisValue(char* s, int n, int* value);
81  static int ReadVisValue(char* s, int n, double* value);
82  static int ReadVisValue(
83  char* s, int n, char* value); // n:sizeof(value), return:strlen(value)
84  template <class T>
85  static T* ReadVisPArry(char* s, int& n, const char* fmt);
86 
87  virtual bool ReadData(const char* line);
88  virtual bool Read(class CHECData* hecd);
89 };
90 
91 //-----------------------------------------------------------------------------
92 
93 class CVis_PSR : public CVis_ViewParams {
94  public:
95  // common ------------------------------------------------
96 
98  enum {
99  surface_style_boundary = 1, // default
102  };
104  enum {
105  display_method_color = 1, // default
110  };
111  char color_comp_name[100];
112  char color_subcomp_name[4]; // "norm", "x"(default), "y" or "z"
113  int color_comp; // default:0
114  int color_subcomp; // default:1
115  int iso_number; // default:5
116  double specified_color; // effective if display_method == 4
117  int deform_display_on; // 1:on, 0:off, default:0
118  char deform_comp_name[100];
119  int deform_comp; // default:0
120  double deform_scale;
121  bool fg_deform_scale; // is deform_scale set? (inner use) default:false
123  enum {
124  initial_style_none = 0, // default
129  };
131  enum {
137  };
138  double initial_line_color[3]; // default:{0,0,1}
139  double deform_line_color[3]; // default:{0,0,1}
140  char output_type[3]; // "AVS"(default), "BMP"
141 
142  // for surface_style == surface_style_equivalent ---------
143 
144  char data_comp_name[100];
145  char data_subcomp_name[4]; // "norm", "x"(default), "y" or "z"
146  int data_comp; // default:0
147  int data_subcomp; // default:1
148  double iso_value;
149 
150  // for surface_style == surface_style_user ---------------
151 
152  int method;
153  enum {
158  method_quadric // default
159  };
160  double point[3]; // default:{0,0,0}
161  double radius; // default:1.0
162  double length; // (default:1.0)
163  double coef[10]; // (default:0.0)
164 
165  // rendering parameters(output_type == "BMP") ------------
166  // parameters defined in CVis_ScreenParams and followings
167 
168  double isoline_color[3];
169  bool fg_isoline_color; // (inner use, default:false )
170  int boundary_line_on; // default:0
171 
172  public:
173  // methods
174  CVis_PSR();
175  virtual ~CVis_PSR();
176  virtual void Init();
177  virtual void Write(class CHECData* hecd);
178  virtual bool ReadData(const char* line);
179 };
180 
181 //-----------------------------------------------------------------------------
182 
183 class CVis_PVR : public CVis_ViewParams {
184  public:
185  // for dividing ------------------------------------------
186 
187  int maximum_refinement; // default:100
189  bool fg_n_voxel_x; // (inner use, default:false)
191  bool fg_n_voxel_y; // (inner use, default:false)
193  bool fg_n_voxel_z; // (inner use, default:false)
194  char voxel_filename[100]; // default:""
195  int x_specified_level; // default:100
196  int y_specified_level; // default:100
197  int z_specified_level; // default:100
198 
199  // for opacity
200 
201  int transfer_function_type; // default:1
202  double opa_value; // default:0.02
203  int num_of_features; // (default:0)
204  double* fea_point; // (default:NULL (no set))
205  char name_lookup[100]; // (default:"" (no set))
206 
207  // parameters defined in CVis_ViewParams and followings
208 
209  int histogram_on; // default:0
210  double display_range[6]; // (default:0)
211  bool fg_display_range; // (inner use, default:false)
212 
213  public:
214  // methods
215  CVis_PVR();
216  virtual ~CVis_PVR();
217  virtual void Init();
218  virtual void Write(class CHECData* hecd);
219  virtual bool ReadData(const char* line);
220 };
221 
222 //-----------------------------------------------------------------------------
223 // CHECDB_Visual
224 //-----------------------------------------------------------------------------
225 
226 class CHECDB_Visual : public CHECDataBlock {
227  public:
231 
233  std::vector<CVis_PSR*> psr; // psr.size() == surface_num
234 
235  CVis_PVR* pvr; // single instance
236 
237  CHECDB_Visual();
238  virtual ~CHECDB_Visual();
239  virtual void Clear();
240  virtual void Write(class CHECData* hecd);
241  virtual bool Read(class CHECData* hecd, char* header_line);
242 };
243 
244 #endif
CVis_PSR::fg_deform_scale
bool fg_deform_scale
Definition: CHECDB_Visual.h:121
CVis_PSR::deform_scale
double deform_scale
Definition: CHECDB_Visual.h:120
CHECDataBlock
Definition: CHECDataBlock.h:17
CVis_PVR::CVis_PVR
CVis_PVR()
Definition: CHECDB_Visual.cpp:526
CVis_PVR::fg_n_voxel_z
bool fg_n_voxel_z
Definition: CHECDB_Visual.h:193
CVis_ViewParams::WriteVisPArry
static void WriteVisPArry(class CHECData *hecd, const char *name, char type, int n, void *p)
Definition: CHECDB_Visual.cpp:109
CVis_PSR::Init
virtual void Init()
Definition: CHECDB_Visual.cpp:350
CVis_ViewParams::ReadVisPArry
static T * ReadVisPArry(char *s, int &n, const char *fmt)
Definition: CHECDB_Visual.cpp:231
CHECDB_Visual::psr
std::vector< CVis_PSR * > psr
Definition: CHECDB_Visual.h:233
CVis_ViewParams::color_mapping_bar_on
int color_mapping_bar_on
Definition: CHECDB_Visual.h:53
CVis_PSR::initial_style
int initial_style
Definition: CHECDB_Visual.h:122
CVis_PSR::surface_style_boundary
@ surface_style_boundary
Definition: CHECDB_Visual.h:99
CVis_PVR::fg_n_voxel_x
bool fg_n_voxel_x
Definition: CHECDB_Visual.h:189
CVis_ViewParams::fg_range_value
bool fg_range_value
Definition: CHECDB_Visual.h:68
CVis_ViewParams::color_system_type_blue_red
@ color_system_type_blue_red
Definition: CHECDB_Visual.h:62
CVis_PVR::name_lookup
char name_lookup[100]
Definition: CHECDB_Visual.h:205
CVis_PSR::length
double length
Definition: CHECDB_Visual.h:162
CVis_ViewParams::ReadData
virtual bool ReadData(const char *line)
Definition: CHECDB_Visual.cpp:263
CVis_PVR::Init
virtual void Init()
Definition: CHECDB_Visual.cpp:530
CVis_PVR::n_voxel_z
int n_voxel_z
Definition: CHECDB_Visual.h:192
CVis_PVR::transfer_function_type
int transfer_function_type
Definition: CHECDB_Visual.h:201
CVis_PSR::iso_number
int iso_number
Definition: CHECDB_Visual.h:115
CVis_PSR::method_hyperbola
@ method_hyperbola
Definition: CHECDB_Visual.h:156
CVis_PSR::radius
double radius
Definition: CHECDB_Visual.h:161
CVis_PVR::~CVis_PVR
virtual ~CVis_PVR()
Definition: CHECDB_Visual.cpp:528
CVis_ViewParams::color_system_type
int color_system_type
Definition: CHECDB_Visual.h:60
CVis_ViewParams::color_mapping_style_nonlinear
@ color_mapping_style_nonlinear
Definition: CHECDB_Visual.h:38
CVis_PSR::deform_line_color
double deform_line_color[3]
Definition: CHECDB_Visual.h:139
CVis_PSR::specified_color
double specified_color
Definition: CHECDB_Visual.h:116
CVis_PSR::initial_style_dot_mesh
@ initial_style_dot_mesh
Definition: CHECDB_Visual.h:128
CVis_PSR::method_sphere
@ method_sphere
Definition: CHECDB_Visual.h:154
CVis_ViewParams::fg_look_at_point
bool fg_look_at_point
Definition: CHECDB_Visual.h:29
CVis_PVR::n_voxel_y
int n_voxel_y
Definition: CHECDB_Visual.h:190
CHECDB_Visual::surface_num
int surface_num
Definition: CHECDB_Visual.h:232
CVis_ViewParams::viewpoint
double viewpoint[3]
Definition: CHECDB_Visual.h:26
CVis_PSR::initial_line_color
double initial_line_color[3]
Definition: CHECDB_Visual.h:138
CVis_PVR::fg_n_voxel_y
bool fg_n_voxel_y
Definition: CHECDB_Visual.h:191
CVis_PSR::initial_style_none
@ initial_style_none
Definition: CHECDB_Visual.h:124
CHECDB_Visual::Read
virtual bool Read(class CHECData *hecd, char *header_line)
Definition: CHECDB_Visual.cpp:715
CVis_PSR::display_method_color
@ display_method_color
Definition: CHECDB_Visual.h:105
CVis_ViewParams::num_of_scales
int num_of_scales
Definition: CHECDB_Visual.h:55
CVis_ViewParams::rotate_style_x
@ rotate_style_x
Definition: CHECDB_Visual.h:47
CVis_ViewParams::num_of_lights
int num_of_lights
Definition: CHECDB_Visual.h:24
CVis_ViewParams::rotate_style_z
@ rotate_style_z
Definition: CHECDB_Visual.h:49
CVis_PSR::display_method_mono_tone
@ display_method_mono_tone
Definition: CHECDB_Visual.h:108
CVis_PSR::color_comp
int color_comp
Definition: CHECDB_Visual.h:113
CHECDB_Visual::visual_start_step
int visual_start_step
Definition: CHECDB_Visual.h:228
CVis_PSR::initial_style_fill
@ initial_style_fill
Definition: CHECDB_Visual.h:126
CVis_PVR::fea_point
double * fea_point
Definition: CHECDB_Visual.h:204
CVis_PVR::Write
virtual void Write(class CHECData *hecd)
Definition: CHECDB_Visual.cpp:559
CVis_ViewParams::rotate_style_view_point
@ rotate_style_view_point
Definition: CHECDB_Visual.h:50
CVis_ViewParams::ambient_coef
double ambient_coef
Definition: CHECDB_Visual.h:31
CHECDB_Visual::CHECDB_Visual
CHECDB_Visual()
Definition: CHECDB_Visual.cpp:666
CVis_ViewParams::color_mapping_style_automatic
@ color_mapping_style_automatic
Definition: CHECDB_Visual.h:39
CHECDB_Visual::Clear
virtual void Clear()
Definition: CHECDB_Visual.cpp:675
CVis_PVR::n_voxel_x
int n_voxel_x
Definition: CHECDB_Visual.h:188
CVis_ViewParams::color_mapping_style_linear
@ color_mapping_style_linear
Definition: CHECDB_Visual.h:36
CVis_PSR::method_quadric
@ method_quadric
Definition: CHECDB_Visual.h:158
CVis_PSR::data_comp_name
char data_comp_name[100]
Definition: CHECDB_Visual.h:144
CVis_PSR::surface_style_user
@ surface_style_user
Definition: CHECDB_Visual.h:101
CVis_PSR::deform_style_dot_mesh
@ deform_style_dot_mesh
Definition: CHECDB_Visual.h:136
CVis_ViewParams
Definition: CHECDB_Visual.h:15
CVis_PSR::ReadData
virtual bool ReadData(const char *line)
Definition: CHECDB_Visual.cpp:457
CVis_PSR::display_method_contour
@ display_method_contour
Definition: CHECDB_Visual.h:109
CVis_ViewParams::specular_coef
double specular_coef
Definition: CHECDB_Visual.h:33
CVis_ViewParams::diffuse_coef
double diffuse_coef
Definition: CHECDB_Visual.h:32
CVis_PSR::surface_style_equivalent
@ surface_style_equivalent
Definition: CHECDB_Visual.h:100
CVis_PVR::fg_display_range
bool fg_display_range
Definition: CHECDB_Visual.h:211
CVis_ViewParams::color_mapping_style
int color_mapping_style
Definition: CHECDB_Visual.h:34
CVis_ViewParams::Read
virtual bool Read(class CHECData *hecd)
Definition: CHECDB_Visual.cpp:327
CVis_PVR::histogram_on
int histogram_on
Definition: CHECDB_Visual.h:209
CVis_ViewParams::look_at_point
double look_at_point[3]
Definition: CHECDB_Visual.h:28
CVis_PSR::display_method_color_and_boundary
@ display_method_color_and_boundary
Definition: CHECDB_Visual.h:107
CVis_PSR::deform_display_on
int deform_display_on
Definition: CHECDB_Visual.h:117
CVis_PSR::iso_value
double iso_value
Definition: CHECDB_Visual.h:148
CVis_PVR::ReadData
virtual bool ReadData(const char *line)
Definition: CHECDB_Visual.cpp:596
CVis_PSR::fg_isoline_color
bool fg_isoline_color
Definition: CHECDB_Visual.h:169
CVis_ViewParams::num_of_frame
int num_of_frame
Definition: CHECDB_Visual.h:52
CVis_PSR::CVis_PSR
CVis_PSR()
Definition: CHECDB_Visual.cpp:346
CVis_PVR::display_range
double display_range[6]
Definition: CHECDB_Visual.h:210
CVis_ViewParams::WriteVisParam
static void WriteVisParam(class CHECData *hecd, const char *name, const char *fmt,...)
Definition: CHECDB_Visual.cpp:68
CVis_ViewParams::range_value
double range_value[2]
Definition: CHECDB_Visual.h:67
CVis_ViewParams::Write
virtual void Write(class CHECData *hecd)
Definition: CHECDB_Visual.cpp:148
CVis_PSR::deform_style_fill
@ deform_style_fill
Definition: CHECDB_Visual.h:134
CHECDB_Visual::~CHECDB_Visual
virtual ~CHECDB_Visual()
Definition: CHECDB_Visual.cpp:673
CVis_ViewParams::interval_mapping
double * interval_mapping
Definition: CHECDB_Visual.h:42
CVis_PSR::data_comp
int data_comp
Definition: CHECDB_Visual.h:146
CVis_ViewParams::Init
virtual void Init()
Definition: CHECDB_Visual.cpp:33
CVis_PSR::Write
virtual void Write(class CHECData *hecd)
Definition: CHECDB_Visual.cpp:395
CVis_PSR::method
int method
Definition: CHECDB_Visual.h:152
CVis_PSR::color_comp_name
char color_comp_name[100]
Definition: CHECDB_Visual.h:111
CVis_ViewParams::color_mapping_style_clipped_linear
@ color_mapping_style_clipped_linear
Definition: CHECDB_Visual.h:37
CHECDB_Visual::pvr
CVis_PVR * pvr
Definition: CHECDB_Visual.h:235
CVis_PSR::display_method_boundary
@ display_method_boundary
Definition: CHECDB_Visual.h:106
CVis_ViewParams::font_size
double font_size
Definition: CHECDB_Visual.h:56
CVis_PVR::voxel_filename
char voxel_filename[100]
Definition: CHECDB_Visual.h:194
CHECData
Definition: CHECData.h:25
CVis_PSR::deform_style_shading
@ deform_style_shading
Definition: CHECDB_Visual.h:135
CVis_PSR::point
double point[3]
Definition: CHECDB_Visual.h:160
CVis_PSR::boundary_line_on
int boundary_line_on
Definition: CHECDB_Visual.h:170
CVis_ViewParams::ReadVisValueT
static int ReadVisValueT(char *s, int n, T *value, const char *fmt)
Definition: CHECDB_Visual.cpp:197
CVis_ViewParams::ReadVisValue
static int ReadVisValue(char *s, int n, int *value)
Definition: CHECDB_Visual.cpp:212
CVis_PSR::deform_comp_name
char deform_comp_name[100]
Definition: CHECDB_Visual.h:118
CVis_ViewParams::scale_marking_on
int scale_marking_on
Definition: CHECDB_Visual.h:54
CVis_ViewParams::rotate_style_y
@ rotate_style_y
Definition: CHECDB_Visual.h:48
CVis_PVR::opa_value
double opa_value
Definition: CHECDB_Visual.h:202
CHECDB_Visual::visual_interval_step
int visual_interval_step
Definition: CHECDB_Visual.h:229
CHECDB_Visual
Definition: CHECDB_Visual.h:226
CVis_PSR::method_parabola
@ method_parabola
Definition: CHECDB_Visual.h:157
CVis_PSR::~CVis_PSR
virtual ~CVis_PSR()
Definition: CHECDB_Visual.cpp:348
CVis_PSR::initial_style_mesh
@ initial_style_mesh
Definition: CHECDB_Visual.h:125
CVis_ViewParams::fixed_range_on
int fixed_range_on
Definition: CHECDB_Visual.h:66
CVis_ViewParams::fg_viewpoint
bool fg_viewpoint
Definition: CHECDB_Visual.h:27
CVis_PSR::method_ellipsoid
@ method_ellipsoid
Definition: CHECDB_Visual.h:155
CVis_ViewParams::interval_mapping_num
int interval_mapping_num
Definition: CHECDB_Visual.h:41
CVis_PSR::data_subcomp_name
char data_subcomp_name[4]
Definition: CHECDB_Visual.h:145
CVis_PSR::color_subcomp
int color_subcomp
Definition: CHECDB_Visual.h:114
CVis_ViewParams::rotate_style
int rotate_style
Definition: CHECDB_Visual.h:44
CVis_ViewParams::up_direction
double up_direction[3]
Definition: CHECDB_Visual.h:30
CVis_ViewParams::CVis_ViewParams
CVis_ViewParams()
Definition: CHECDB_Visual.cpp:23
CVis_ViewParams::position_of_lights
double * position_of_lights
Definition: CHECDB_Visual.h:25
CVis_PSR::deform_style
int deform_style
Definition: CHECDB_Visual.h:130
CVis_PVR::y_specified_level
int y_specified_level
Definition: CHECDB_Visual.h:196
CVis_PSR::display_method
int display_method
Definition: CHECDB_Visual.h:103
CHECDB_Visual::Write
virtual void Write(class CHECData *hecd)
Definition: CHECDB_Visual.cpp:691
CVis_PSR::deform_style_mesh
@ deform_style_mesh
Definition: CHECDB_Visual.h:133
CVis_PSR::deform_style_none
@ deform_style_none
Definition: CHECDB_Visual.h:132
CVis_PSR::isoline_color
double isoline_color[3]
Definition: CHECDB_Visual.h:168
CVis_ViewParams::x_resolution
int x_resolution
Definition: CHECDB_Visual.h:22
CVis_ViewParams::color_system_type_rainbow
@ color_system_type_rainbow
Definition: CHECDB_Visual.h:63
CVis_PSR
Definition: CHECDB_Visual.h:93
CVis_PSR::color_subcomp_name
char color_subcomp_name[4]
Definition: CHECDB_Visual.h:112
CVis_ViewParams::y_resolution
int y_resolution
Definition: CHECDB_Visual.h:23
CVis_PSR::data_subcomp
int data_subcomp
Definition: CHECDB_Visual.h:147
CVis_PVR
Definition: CHECDB_Visual.h:183
CVis_ViewParams::color_system_type_block_white
@ color_system_type_block_white
Definition: CHECDB_Visual.h:64
CVis_ViewParams::background_color
double background_color[3]
Definition: CHECDB_Visual.h:58
CVis_PSR::surface_style
int surface_style
Definition: CHECDB_Visual.h:97
CVis_PSR::coef
double coef[10]
Definition: CHECDB_Visual.h:163
CVis_PSR::initial_style_shading
@ initial_style_shading
Definition: CHECDB_Visual.h:127
CVis_PSR::deform_comp
int deform_comp
Definition: CHECDB_Visual.h:119
CVis_PVR::z_specified_level
int z_specified_level
Definition: CHECDB_Visual.h:197
CVis_PVR::maximum_refinement
int maximum_refinement
Definition: CHECDB_Visual.h:187
CVis_PVR::x_specified_level
int x_specified_level
Definition: CHECDB_Visual.h:195
CVis_ViewParams::rotate_style_none
@ rotate_style_none
Definition: CHECDB_Visual.h:46
CHECDB_Visual::visual_end_step
int visual_end_step
Definition: CHECDB_Visual.h:230
CVis_PSR::output_type
char output_type[3]
Definition: CHECDB_Visual.h:140
CVis_ViewParams::font_color
double font_color[3]
Definition: CHECDB_Visual.h:57
CVis_ViewParams::~CVis_ViewParams
virtual ~CVis_ViewParams()
Definition: CHECDB_Visual.cpp:28
CVis_PVR::num_of_features
int num_of_features
Definition: CHECDB_Visual.h:203
CHECDataBlock.h