Seamly2D
Code documentation
measurements.cpp
Go to the documentation of this file.
1 /***************************************************************************
2  * *
3  * Copyright (C) 2017 Seamly, LLC *
4  * *
5  * https://github.com/fashionfreedom/seamly2d *
6  * *
7  ***************************************************************************
8  **
9  ** Seamly2D is free software: you can redistribute it and/or modify
10  ** it under the terms of the GNU General Public License as published by
11  ** the Free Software Foundation, either version 3 of the License, or
12  ** (at your option) any later version.
13  **
14  ** Seamly2D is distributed in the hope that it will be useful,
15  ** but WITHOUT ANY WARRANTY; without even the implied warranty of
16  ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  ** GNU General Public License for more details.
18  **
19  ** You should have received a copy of the GNU General Public License
20  ** along with Seamly2D. If not, see <http://www.gnu.org/licenses/>.
21  **
22  **************************************************************************
23 
24  ************************************************************************
25  **
26  ** @file
27  ** @author Roman Telezhynskyi <dismine(at)gmail.com>
28  ** @date 1 6, 2017
29  **
30  ** @brief
31  ** @copyright
32  ** This source code is part of the Valentine project, a pattern making
33  ** program, whose allow create and modeling patterns of clothing.
34  ** Copyright (C) 2017 Seamly2D project
35  ** <https://github.com/fashionfreedom/seamly2d> All Rights Reserved.
36  **
37  ** Seamly2D is free software: you can redistribute it and/or modify
38  ** it under the terms of the GNU General Public License as published by
39  ** the Free Software Foundation, either version 3 of the License, or
40  ** (at your option) any later version.
41  **
42  ** Seamly2D is distributed in the hope that it will be useful,
43  ** but WITHOUT ANY WARRANTY; without even the implied warranty of
44  ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
45  ** GNU General Public License for more details.
46  **
47  ** You should have received a copy of the GNU General Public License
48  ** along with Seamly2D. If not, see <http://www.gnu.org/licenses/>.
49  **
50  *************************************************************************/
51 
52 #include "measurements.h"
53 #include "vtranslatemeasurements.h"
54 #include "../vmisc/def.h"
55 
56 // Keep synchronize all names with initialization in VTranslateVars class!!!!!
57 //measurements
58 // A
59 const QString height_M = QStringLiteral("height"); // A01
60 const QString heightNeckBack_M = QStringLiteral("height_neck_back"); // A02
61 const QString heightScapula_M = QStringLiteral("height_scapula"); // A03
62 const QString heightArmpit_M = QStringLiteral("height_armpit"); // A04
63 const QString heightWaistSide_M = QStringLiteral("height_waist_side"); // A05
64 const QString heightHip_M = QStringLiteral("height_hip"); // A06
65 const QString heightGlutealFold_M = QStringLiteral("height_gluteal_fold"); // A07
66 const QString heightKnee_M = QStringLiteral("height_knee"); // A08
67 const QString heightCalf_M = QStringLiteral("height_calf"); // A09
68 const QString heightAnkleHigh_M = QStringLiteral("height_ankle_high"); // A10
69 const QString heightAnkle_M = QStringLiteral("height_ankle"); // A11
70 const QString heightHighhip_M = QStringLiteral("height_highhip"); // A12
71 const QString heightWaistFront_M = QStringLiteral("height_waist_front"); // A13
72 const QString heightBustpoint_M = QStringLiteral("height_bustpoint"); // A14
73 const QString heightShoulderTip_M = QStringLiteral("height_shoulder_tip"); // A15
74 const QString heightNeckFront_M = QStringLiteral("height_neck_front"); // A16
75 const QString heightNeckSide_M = QStringLiteral("height_neck_side"); // A17
76 const QString heightNeckBackToKnee_M = QStringLiteral("height_neck_back_to_knee"); // A18
77 const QString heightWaistSideToKnee_M = QStringLiteral("height_waist_side_to_knee"); // A19
78 const QString heightWaistSideToHip_M = QStringLiteral("height_waist_side_to_hip"); // A20
79 const QString heightKneeToAnkle_M = QStringLiteral("height_knee_to_ankle"); // A21
80 const QString heightNeckBackToWaistSide_M = QStringLiteral("height_neck_back_to_waist_side"); // A22
81 const QString heightWaistBack_M = QStringLiteral("height_waist_back"); // A23
82 // B
83 const QString widthShoulder_M = QStringLiteral("width_shoulder"); // B01
84 const QString widthBust_M = QStringLiteral("width_bust"); // B02
85 const QString widthWaist_M = QStringLiteral("width_waist"); // B03
86 const QString widthHip_M = QStringLiteral("width_hip"); // B04
87 const QString widthAbdomenToHip_M = QStringLiteral("width_abdomen_to_hip"); // B05
88 // C
89 const QString indentNeckBack_M = QStringLiteral("indent_neck_back"); // C01
90 const QString indentWaistBack_M = QStringLiteral("indent_waist_back"); // C02
91 const QString indentAnkleHigh_M = QStringLiteral("indent_ankle_high"); // C03
92 // D
93 const QString handPalmLength_M = QStringLiteral("hand_palm_length"); // D01
94 const QString handLength_M = QStringLiteral("hand_length"); // D02
95 const QString handPalmWidth_M = QStringLiteral("hand_palm_width"); // D03
96 const QString handPalmCirc_M = QStringLiteral("hand_palm_circ"); // D04
97 const QString handCirc_M = QStringLiteral("hand_circ"); // D05
98 // E
99 const QString footWidth_M = QStringLiteral("foot_width"); // E01
100 const QString footLength_M = QStringLiteral("foot_length"); // E02
101 const QString footCirc_M = QStringLiteral("foot_circ"); // E03
102 const QString footInstepCirc_M = QStringLiteral("foot_instep_circ"); // E04
103 // F
104 const QString headCirc_M = QStringLiteral("head_circ"); // F01
105 const QString headLength_M = QStringLiteral("head_length"); // F02
106 const QString headDepth_M = QStringLiteral("head_depth"); // F03
107 const QString headWidth_M = QStringLiteral("head_width"); // F04
108 const QString headCrownToNeckBack_M = QStringLiteral("head_crown_to_neck_back"); // F05
109 const QString headChinToNeckBack_M = QStringLiteral("head_chin_to_neck_back"); // F06
110 // G
111 const QString neckMidCirc_M = QStringLiteral("neck_mid_circ"); // G01
112 const QString neckCirc_M = QStringLiteral("neck_circ"); // G02
113 const QString highbustCirc_M = QStringLiteral("highbust_circ"); // G03
114 const QString bustCirc_M = QStringLiteral("bust_circ"); // G04
115 const QString lowbustCirc_M = QStringLiteral("lowbust_circ"); // G05
116 const QString ribCirc_M = QStringLiteral("rib_circ"); // G06
117 const QString waistCirc_M = QStringLiteral("waist_circ"); // G07
118 const QString highhipCirc_M = QStringLiteral("highhip_circ"); // G08
119 const QString hipCirc_M = QStringLiteral("hip_circ"); // G09
120 const QString neckArcF_M = QStringLiteral("neck_arc_f"); // G10
121 const QString highbustArcF_M = QStringLiteral("highbust_arc_f"); // G11
122 
123 // size and bust_arc_f are synonyms
124 const QString size_M = QStringLiteral("size"); // G12
125 const QString bustArcF_M = QStringLiteral("bust_arc_f"); // G12
126 
127 const QString lowbustArcF_M = QStringLiteral("lowbust_arc_f"); // G13
128 const QString ribArcF_M = QStringLiteral("rib_arc_f"); // G14
129 const QString waistArcF_M = QStringLiteral("waist_arc_f"); // G15
130 const QString highhipArcF_M = QStringLiteral("highhip_arc_f"); // G16
131 const QString hipArcF_M = QStringLiteral("hip_arc_f"); // G17
132 const QString neckArcHalfF_M = QStringLiteral("neck_arc_half_f"); // G18
133 const QString highbustArcHalfF_M = QStringLiteral("highbust_arc_half_f"); // G19
134 const QString bustArcHalfF_M = QStringLiteral("bust_arc_half_f"); // G20
135 const QString lowbustArcHalfF_M = QStringLiteral("lowbust_arc_half_f"); // G21
136 const QString ribArcHalfF_M = QStringLiteral("rib_arc_half_f"); // G22
137 const QString waistArcHalfF_M = QStringLiteral("waist_arc_half_f"); // G23
138 const QString highhipArcHalfF_M = QStringLiteral("highhip_arc_half_f"); // G24
139 const QString hipArcHalfF_M = QStringLiteral("hip_arc_half_f"); // G25
140 const QString neckArcB_M = QStringLiteral("neck_arc_b"); // G26
141 const QString highbustArcB_M = QStringLiteral("highbust_arc_b"); // G27
142 const QString bustArcB_M = QStringLiteral("bust_arc_b"); // G28
143 const QString lowbustArcB_M = QStringLiteral("lowbust_arc_b"); // G29
144 const QString ribArcB_M = QStringLiteral("rib_arc_b"); // G30
145 const QString waistArcB_M = QStringLiteral("waist_arc_b"); // G31
146 const QString highhipArcB_M = QStringLiteral("highhip_arc_b"); // G32
147 const QString hipArcB_M = QStringLiteral("hip_arc_b"); // G33
148 const QString neckArcHalfB_M = QStringLiteral("neck_arc_half_b"); // G34
149 const QString highbustArcHalfB_M = QStringLiteral("highbust_arc_half_b"); // G35
150 const QString bustArcHalfB_M = QStringLiteral("bust_arc_half_b"); // G36
151 const QString lowbustArcHalfB_M = QStringLiteral("lowbust_arc_half_b"); // G37
152 const QString ribArcHalfB_M = QStringLiteral("rib_arc_half_b"); // G38
153 const QString waistArcHalfB_M = QStringLiteral("waist_arc_half_b"); // G39
154 const QString highhipArcHalfB_M = QStringLiteral("highhip_arc_half_b"); // G40
155 const QString hipArcHalfB_M = QStringLiteral("hip_arc_half_b"); // G41
156 const QString hipWithAbdomenArcF_M = QStringLiteral("hip_with_abdomen_arc_f"); // G42
157 const QString bodyArmfoldCirc_M = QStringLiteral("body_armfold_circ"); // G43
158 const QString bodyBustCirc_M = QStringLiteral("body_bust_circ"); // G44
159 const QString bodyTorsoCirc_M = QStringLiteral("body_torso_circ"); // G45
160 const QString hipCircWithAbdomen_M = QStringLiteral("hip_circ_with_abdomen"); // G46
161 // H
162 const QString neckFrontToWaistF_M = QStringLiteral("neck_front_to_waist_f"); // H01
163 const QString neckFrontToWaistFlatF_M = QStringLiteral("neck_front_to_waist_flat_f"); // H02
164 const QString armpitToWaistSide_M = QStringLiteral("armpit_to_waist_side"); // H03
165 const QString shoulderTipToWaistSideF_M = QStringLiteral("shoulder_tip_to_waist_side_f"); // H04
166 const QString neckSideToWaistF_M = QStringLiteral("neck_side_to_waist_f"); // H05
167 const QString neckSideToWaistBustpointF_M = QStringLiteral("neck_side_to_waist_bustpoint_f"); // H06
168 const QString neckFrontToHighbustF_M = QStringLiteral("neck_front_to_highbust_f"); // H07
169 const QString highbustToWaistF_M = QStringLiteral("highbust_to_waist_f"); // H08
170 const QString neckFrontToBustF_M = QStringLiteral("neck_front_to_bust_f"); // H09
171 const QString bustToWaistF_M = QStringLiteral("bust_to_waist_f"); // H10
172 const QString lowbustToWaistF_M = QStringLiteral("lowbust_to_waist_f"); // H11
173 const QString ribToWaistSide_M = QStringLiteral("rib_to_waist_side"); // H12
174 const QString shoulderTipToArmfoldF_M = QStringLiteral("shoulder_tip_to_armfold_f"); // H13
175 const QString neckSideToBustF_M = QStringLiteral("neck_side_to_bust_f"); // H14
176 const QString neckSideToHighbustF_M = QStringLiteral("neck_side_to_highbust_f"); // H15
177 const QString shoulderCenterToHighbustF_M = QStringLiteral("shoulder_center_to_highbust_f"); // H16
178 const QString shoulderTipToWaistSideB_M = QStringLiteral("shoulder_tip_to_waist_side_b"); // H17
179 const QString neckSideToWaistB_M = QStringLiteral("neck_side_to_waist_b"); // H18
180 const QString neckBackToWaistB_M = QStringLiteral("neck_back_to_waist_b"); // H19
181 const QString neckSideToWaistScapulaB_M = QStringLiteral("neck_side_to_waist_scapula_b"); // H20
182 const QString neckBackToHighbustB_M = QStringLiteral("neck_back_to_highbust_b"); // H21
183 const QString highbustToWaistB_M = QStringLiteral("highbust_to_waist_b"); // H22
184 const QString neckBackToBustB_M = QStringLiteral("neck_back_to_bust_b"); // H23
185 const QString bustToWaistB_M = QStringLiteral("bust_to_waist_b"); // H24
186 const QString lowbustToWaistB_M = QStringLiteral("lowbust_to_waist_b"); // H25
187 const QString shoulderTipToArmfoldB_M = QStringLiteral("shoulder_tip_to_armfold_b"); // H26
188 const QString neckSideToBustB_M = QStringLiteral("neck_side_to_bust_b"); // H27
189 const QString neckSideToHighbustB_M = QStringLiteral("neck_side_to_highbust_b"); // H28
190 const QString shoulderCenterToHighbustB_M = QStringLiteral("shoulder_center_to_highbust_b"); // H29
191 const QString waistToHighhipF_M = QStringLiteral("waist_to_highhip_f"); // H30
192 const QString waistToHipF_M = QStringLiteral("waist_to_hip_f"); // H31
193 const QString waistToHighhipSide_M = QStringLiteral("waist_to_highhip_side"); // H32
194 const QString waistToHighhipB_M = QStringLiteral("waist_to_highhip_b"); // H33
195 const QString waistToHipB_M = QStringLiteral("waist_to_hip_b"); // H34
196 const QString waistToHipSide_M = QStringLiteral("waist_to_hip_side"); // H35
197 const QString shoulderSlopeNeckSideAngle_M = QStringLiteral("shoulder_slope_neck_side_angle"); // H36
198 const QString shoulderSlopeNeckSideLength_M = QStringLiteral("shoulder_slope_neck_side_length"); // H37
199 const QString shoulderSlopeNeckBackAngle_M = QStringLiteral("shoulder_slope_neck_back_angle"); // H38
200 const QString shoulderSlopeNeckBackHeight_M = QStringLiteral("shoulder_slope_neck_back_height"); // H39
201 const QString shoulderSlopeShoulderTipAngle_M = QStringLiteral("shoulder_slope_shoulder_tip_angle"); // H40
202 const QString neckBackToAcrossBack_M = QStringLiteral("neck_back_to_across_back"); // H41
203 const QString acrossBackToWaistB_M = QStringLiteral("across_back_to_waist_b"); // H42
204 // I
205 const QString shoulderLength_M = QStringLiteral("shoulder_length"); // I01
206 const QString shoulderTipToShoulderTipF_M = QStringLiteral("shoulder_tip_to_shoulder_tip_f"); // I02
207 const QString acrossChestF_M = QStringLiteral("across_chest_f"); // I03
208 const QString armfoldToArmfoldF_M = QStringLiteral("armfold_to_armfold_f"); // I04
209 const QString shoulderTipToShoulderTipHalfF_M = QStringLiteral("shoulder_tip_to_shoulder_tip_half_f"); // I05
210 const QString acrossChestHalfF_M = QStringLiteral("across_chest_half_f"); // I06
211 const QString shoulderTipToShoulderTipB_M = QStringLiteral("shoulder_tip_to_shoulder_tip_b"); // I07
212 const QString acrossBackB_M = QStringLiteral("across_back_b"); // I08
213 const QString armfoldToArmfoldB_M = QStringLiteral("armfold_to_armfold_b"); // I09
214 const QString shoulderTipToShoulderTipHalfB_M = QStringLiteral("shoulder_tip_to_shoulder_tip_half_b"); // I10
215 const QString acrossBackHalfB_M = QStringLiteral("across_back_half_b"); // I11
216 const QString neckFrontToShoulderTipF_M = QStringLiteral("neck_front_to_shoulder_tip_f"); // I12
217 const QString neckBackToShoulderTipB_M = QStringLiteral("neck_back_to_shoulder_tip_b"); // I13
218 const QString neckWidth_M = QStringLiteral("neck_width"); // I14
219 // J
220 const QString bustpointToBustpoint_M = QStringLiteral("bustpoint_to_bustpoint"); // J01
221 const QString bustpointToNeckSide_M = QStringLiteral("bustpoint_to_neck_side"); // J02
222 const QString bustpointToLowbust_M = QStringLiteral("bustpoint_to_lowbust"); // J03
223 const QString bustpointToWaist_M = QStringLiteral("bustpoint_to_waist"); // J04
224 const QString bustpointToBustpointHalf_M = QStringLiteral("bustpoint_to_bustpoint_half"); // J05
225 const QString bustpointNeckSideToWaist_M = QStringLiteral("bustpoint_neck_side_to_waist"); // J06
226 const QString bustpointToShoulderTip_M = QStringLiteral("bustpoint_to_shoulder_tip"); // J07
227 const QString bustpointToWaistFront_M = QStringLiteral("bustpoint_to_waist_front"); // J08
228 const QString bustpointToBustpointHalter_M = QStringLiteral("bustpoint_to_bustpoint_halter"); // J09
229 const QString bustpointToShoulderCenter_M = QStringLiteral("bustpoint_to_shoulder_center"); // J10
230 const QString bustpointToNeckFront_M = QStringLiteral("bustpoint_to_neck_front"); // J11
231 // K
232 const QString shoulderTipToWaistFront_M = QStringLiteral("shoulder_tip_to_waist_front"); // K01
233 const QString neckFrontToWaistSide_M = QStringLiteral("neck_front_to_waist_side"); // K02
234 const QString neckSideToWaistSideF_M = QStringLiteral("neck_side_to_waist_side_f"); // K03
235 const QString shoulderTipToWaistBack_M = QStringLiteral("shoulder_tip_to_waist_back"); // K04
236 const QString shoulderTipToWaistB_1inOffset_M = QStringLiteral("shoulder_tip_to_waist_b_1in_offset"); // K05
237 const QString neckBackToWaistSide_M = QStringLiteral("neck_back_to_waist_side"); // K06
238 const QString neckSideToWaistSideB_M = QStringLiteral("neck_side_to_waist_side_b"); // K07
239 const QString neckSideToArmfoldF_M = QStringLiteral("neck_side_to_armfold_f"); // K08
240 const QString neckSideToArmpitF_M = QStringLiteral("neck_side_to_armpit_f"); // K09
241 const QString neckSideToBustSideF_M = QStringLiteral("neck_side_to_bust_side_f"); // K10
242 const QString neckSideToArmfoldB_M = QStringLiteral("neck_side_to_armfold_b"); // K11
243 const QString neckSideToArmpitB_M = QStringLiteral("neck_side_to_armpit_b"); // K12
244 const QString neckSideToBustSideB_M = QStringLiteral("neck_side_to_bust_side_b"); // K13
245 // L
246 const QString armShoulderTipToWristBent_M = QStringLiteral("arm_shoulder_tip_to_wrist_bent"); // L01
247 const QString armShoulderTipToElbowBent_M = QStringLiteral("arm_shoulder_tip_to_elbow_bent"); // L02
248 const QString armElbowToWristBent_M = QStringLiteral("arm_elbow_to_wrist_bent"); // L03
249 const QString armElbowCircBent_M = QStringLiteral("arm_elbow_circ_bent"); // L04
250 const QString armShoulderTipToWrist_M = QStringLiteral("arm_shoulder_tip_to_wrist"); // L05
251 const QString armShoulderTipToElbow_M = QStringLiteral("arm_shoulder_tip_to_elbow"); // L06
252 const QString armElbowToWrist_M = QStringLiteral("arm_elbow_to_wrist"); // L07
253 const QString armArmpitToWrist_M = QStringLiteral("arm_armpit_to_wrist"); // L08
254 const QString armArmpitToElbow_M = QStringLiteral("arm_armpit_to_elbow"); // L09
255 const QString armElbowToWristInside_M = QStringLiteral("arm_elbow_to_wrist_inside"); // L10
256 const QString armUpperCirc_M = QStringLiteral("arm_upper_circ"); // L11
257 const QString armAboveElbowCirc_M = QStringLiteral("arm_above_elbow_circ"); // L12
258 const QString armElbowCirc_M = QStringLiteral("arm_elbow_circ"); // L13
259 const QString armLowerCirc_M = QStringLiteral("arm_lower_circ"); // L14
260 const QString armWristCirc_M = QStringLiteral("arm_wrist_circ"); // L15
261 const QString armShoulderTipToArmfoldLine_M = QStringLiteral("arm_shoulder_tip_to_armfold_line"); // L16
262 const QString armNeckSideToWrist_M = QStringLiteral("arm_neck_side_to_wrist"); // L17
263 const QString armNeckSideToFingerTip_M = QStringLiteral("arm_neck_side_to_finger_tip"); // L18
264 const QString armscyeCirc_M = QStringLiteral("armscye_circ"); // L19
265 const QString armscyeLength_M = QStringLiteral("armscye_length"); // L20
266 const QString armscyeWidth_M = QStringLiteral("armscye_width"); // L21
267 const QString armNeckSideToOuterElbow_M = QStringLiteral("arm_neck_side_to_outer_elbow"); // L22
268 // M
269 const QString legCrotchToFloor_M = QStringLiteral("leg_crotch_to_floor"); // M01
270 const QString legWaistSideToFloor_M = QStringLiteral("leg_waist_side_to_floor"); // M02
271 const QString legThighUpperCirc_M = QStringLiteral("leg_thigh_upper_circ"); // M03
272 const QString legThighMidCirc_M = QStringLiteral("leg_thigh_mid_circ"); // M04
273 const QString legKneeCirc_M = QStringLiteral("leg_knee_circ"); // M05
274 const QString legKneeSmallCirc_M = QStringLiteral("leg_knee_small_circ"); // M06
275 const QString legCalfCirc_M = QStringLiteral("leg_calf_circ"); // M07
276 const QString legAnkleHighCirc_M = QStringLiteral("leg_ankle_high_circ"); // M08
277 const QString legAnkleCirc_M = QStringLiteral("leg_ankle_circ"); // M09
278 const QString legKneeCircBent_M = QStringLiteral("leg_knee_circ_bent"); // M10
279 const QString legAnkleDiagCirc_M = QStringLiteral("leg_ankle_diag_circ"); // M11
280 const QString legCrotchToAnkle_M = QStringLiteral("leg_crotch_to_ankle"); // M12
281 const QString legWaistSideToAnkle_M = QStringLiteral("leg_waist_side_to_ankle"); // M13
282 const QString legWaistSideToKnee_M = QStringLiteral("leg_waist_side_to_knee"); // M14
283 // N
284 const QString crotchLength_M = QStringLiteral("crotch_length"); // N01
285 const QString crotchLengthB_M = QStringLiteral("crotch_length_b"); // N02
286 const QString crotchLengthF_M = QStringLiteral("crotch_length_f"); // N03
287 const QString riseLengthSideSitting_M = QStringLiteral("rise_length_side_sitting"); // N04
288 const QString riseLengthDiag_M = QStringLiteral("rise_length_diag"); // N05
289 const QString riseLengthB_M = QStringLiteral("rise_length_b"); // N06
290 const QString riseLengthF_M = QStringLiteral("rise_length_f"); // N07
291 const QString riseLengthSide_M = QStringLiteral("rise_length_side"); // N08
292 // O
293 const QString neckBackToWaistFront_M = QStringLiteral("neck_back_to_waist_front"); // O01
294 const QString waistToWaistHalter_M = QStringLiteral("waist_to_waist_halter"); // O02
295 const QString waistNaturalCirc_M = QStringLiteral("waist_natural_circ"); // O03
296 const QString waistNaturalArcF_M = QStringLiteral("waist_natural_arc_f"); // O04
297 const QString waistNaturalArcB_M = QStringLiteral("waist_natural_arc_b"); // O05
298 const QString waistToNaturalWaistF_M = QStringLiteral("waist_to_natural_waist_f"); // O06
299 const QString waistToNaturalWaistB_M = QStringLiteral("waist_to_natural_waist_b"); // O07
300 const QString armNeckBackToElbowBent_M = QStringLiteral("arm_neck_back_to_elbow_bent"); // O08
301 const QString armNeckBackToWristBent_M = QStringLiteral("arm_neck_back_to_wrist_bent"); // O09
302 const QString armNeckSideToElbowBent_M = QStringLiteral("arm_neck_side_to_elbow_bent"); // O10
303 const QString armNeckSideToWristBent_M = QStringLiteral("arm_neck_side_to_wrist_bent"); // O11
304 const QString armAcrossBackCenterToElbowBent_M = QStringLiteral("arm_across_back_center_to_elbow_bent"); // O12
305 const QString armAcrossBackCenterToWristBent_M = QStringLiteral("arm_across_back_center_to_wrist_bent"); // O13
306 const QString armArmscyeBackCenterToWristBent_M = QStringLiteral("arm_armscye_back_center_to_wrist_bent"); // O14
307 // P
308 const QString neckBackToBustFront_M = QStringLiteral("neck_back_to_bust_front"); // P01
309 const QString neckBackToArmfoldFront_M = QStringLiteral("neck_back_to_armfold_front"); // P02
310 const QString neckBackToArmfoldFrontToWaistSide_M = QStringLiteral("neck_back_to_armfold_front_to_waist_side"); // P03
312  = QStringLiteral("highbust_back_over_shoulder_to_armfold_front"); // P04
314  = QStringLiteral("highbust_back_over_shoulder_to_waist_front"); // P05
315 const QString neckBackToArmfoldFrontToNeckBack_M = QStringLiteral("neck_back_to_armfold_front_to_neck_back"); // P06
317  = QStringLiteral("across_back_center_to_armfold_front_to_across_back_center"); // P07
319  = QStringLiteral("neck_back_to_armfold_front_to_highbust_back"); // P08
320 const QString armfoldToArmfoldBust_M = QStringLiteral("armfold_to_armfold_bust"); // P09
321 const QString armfoldToBustFront_M = QStringLiteral("armfold_to_bust_front"); // P10
322 const QString highbustBOverShoulderToHighbustF_M = QStringLiteral("highbust_b_over_shoulder_to_highbust_f"); // P11
323 const QString armscyeArc_M = QStringLiteral("armscye_arc"); // P12
324 // Q
325 const QString dartWidthShoulder_M = QStringLiteral("dart_width_shoulder"); // Q01
326 const QString dartWidthBust_M = QStringLiteral("dart_width_bust"); // Q02
327 const QString dartWidthWaist_M = QStringLiteral("dart_width_waist"); // Q03
328 
329 //---------------------------------------------------------------------------------------------------------------------
330 QStringList ListGroupA()
331 {
332  const QStringList list = QStringList() << height_M // A01
333  << heightNeckBack_M // A02
334  << heightScapula_M // A03
335  << heightArmpit_M // A04
336  << heightWaistSide_M // A05
337  << heightHip_M // A06
338  << heightGlutealFold_M // A07
339  << heightKnee_M // A08
340  << heightCalf_M // A09
341  << heightAnkleHigh_M // A10
342  << heightAnkle_M // A11
343  << heightHighhip_M // A12
344  << heightWaistFront_M // A13
345  << heightBustpoint_M // A14
346  << heightShoulderTip_M // A15
347  << heightNeckFront_M // A16
348  << heightNeckSide_M // A17
349  << heightNeckBackToKnee_M // A18
350  << heightWaistSideToKnee_M // A19
351  << heightWaistSideToHip_M // A20
352  << heightKneeToAnkle_M // A21
354  << heightWaistBack_M; // A23
355  return list;
356 }
357 
358 //---------------------------------------------------------------------------------------------------------------------
359 QStringList ListGroupB()
360 {
361  const QStringList list = QStringList() << widthShoulder_M // B01
362  << widthBust_M // B02
363  << widthWaist_M // B03
364  << widthHip_M // B04
365  << widthAbdomenToHip_M; // B05
366 
367  return list;
368 }
369 
370 //---------------------------------------------------------------------------------------------------------------------
371 QStringList ListGroupC()
372 {
373  const QStringList list = QStringList() << indentNeckBack_M // C01
374  << indentWaistBack_M // C02
375  << indentAnkleHigh_M; // C03
376 
377  return list;
378 }
379 
380 //---------------------------------------------------------------------------------------------------------------------
381 QStringList ListGroupD()
382 {
383  const QStringList list = QStringList() << handPalmLength_M // D01
384  << handLength_M // D02
385  << handPalmWidth_M // D03
386  << handPalmCirc_M // D04
387  << handCirc_M; // D05
388 
389  return list;
390 }
391 
392 //---------------------------------------------------------------------------------------------------------------------
393 QStringList ListGroupE()
394 {
395  const QStringList list = QStringList() << footWidth_M // E01
396  << footLength_M // E02
397  << footCirc_M // E03
398  << footInstepCirc_M; // E04
399 
400  return list;
401 }
402 
403 //---------------------------------------------------------------------------------------------------------------------
404 QStringList ListGroupF()
405 {
406  const QStringList list = QStringList() << headCirc_M // F01
407  << headLength_M // F02
408  << headDepth_M // F03
409  << headWidth_M // F04
410  << headCrownToNeckBack_M // F05
411  << headChinToNeckBack_M; // F06
412 
413  return list;
414 }
415 
416 //---------------------------------------------------------------------------------------------------------------------
417 QStringList ListGroupG()
418 {
419  const QStringList list = QStringList() << neckMidCirc_M // G01
420  << neckCirc_M // G02
421  << highbustCirc_M // G03
422  << bustCirc_M // G04
423  << lowbustCirc_M // G05
424  << ribCirc_M // G06
425  << waistCirc_M // G07
426  << highhipCirc_M // G08
427  << hipCirc_M // G09
428  << neckArcF_M // G10
429  << highbustArcF_M // G11
430  << bustArcF_M // G12
431  << size_M // G12
432  << lowbustArcF_M // G13
433  << ribArcF_M // G14
434  << waistArcF_M // G15
435  << highhipArcF_M // G16
436  << hipArcF_M // G17
437  << neckArcHalfF_M // G18
438  << highbustArcHalfF_M // G19
439  << bustArcHalfF_M // G20
440  << lowbustArcHalfF_M // G21
441  << ribArcHalfF_M // G22
442  << waistArcHalfF_M // G23
443  << highhipArcHalfF_M // G24
444  << hipArcHalfF_M // G25
445  << neckArcB_M // G26
446  << highbustArcB_M // G27
447  << bustArcB_M // G28
448  << lowbustArcB_M // G29
449  << ribArcB_M // G30
450  << waistArcB_M // G31
451  << highhipArcB_M // G32
452  << hipArcB_M // G33
453  << neckArcHalfB_M // G34
454  << highbustArcHalfB_M // G35
455  << bustArcHalfB_M // G36
456  << lowbustArcHalfB_M // G37
457  << ribArcHalfB_M // G38
458  << waistArcHalfB_M // G39
459  << highhipArcHalfB_M // G40
460  << hipArcHalfB_M // G41
461  << hipWithAbdomenArcF_M // G42
462  << bodyArmfoldCirc_M // G43
463  << bodyBustCirc_M // G44
464  << bodyTorsoCirc_M // G45
465  << hipCircWithAbdomen_M; // G46
466 
467  return list;
468 }
469 
470 //---------------------------------------------------------------------------------------------------------------------
471 QStringList ListGroupH()
472 {
473  const QStringList list = QStringList() << neckFrontToWaistF_M // H01
474  << neckFrontToWaistFlatF_M // H02
475  << armpitToWaistSide_M // H03
476  << shoulderTipToWaistSideF_M // H04
477  << neckSideToWaistF_M // H05
479  << neckFrontToHighbustF_M // H07
480  << highbustToWaistF_M // H08
481  << neckFrontToBustF_M // H09
482  << bustToWaistF_M // H10
483  << lowbustToWaistF_M // H11
484  << ribToWaistSide_M // H12
485  << shoulderTipToArmfoldF_M // H13
486  << neckSideToBustF_M // H14
487  << neckSideToHighbustF_M // H15
489  << shoulderTipToWaistSideB_M // H17
490  << neckSideToWaistB_M // H18
491  << neckBackToWaistB_M // H19
492  << neckSideToWaistScapulaB_M // H20
493  << neckBackToHighbustB_M // H21
494  << highbustToWaistB_M // H22
495  << neckBackToBustB_M // H23
496  << bustToWaistB_M // H24
497  << lowbustToWaistB_M // H25
498  << shoulderTipToArmfoldB_M // H26
499  << neckSideToBustB_M // H27
500  << neckSideToHighbustB_M // H28
502  << waistToHighhipF_M // H30
503  << waistToHipF_M // H31
504  << waistToHighhipSide_M // H32
505  << waistToHighhipB_M // H33
506  << waistToHipB_M // H34
507  << waistToHipSide_M // H35
513  << neckBackToAcrossBack_M // H41
514  << acrossBackToWaistB_M; // H42
515 
516  return list;
517 }
518 
519 //---------------------------------------------------------------------------------------------------------------------
520 QStringList ListGroupI()
521 {
522  const QStringList list = QStringList() << shoulderLength_M // I01
524  << acrossChestF_M // I03
525  << armfoldToArmfoldF_M // I04
527  << acrossChestHalfF_M // I06
529  << acrossBackB_M // I08
530  << armfoldToArmfoldB_M // I09
532  << acrossBackHalfB_M // I11
533  << neckFrontToShoulderTipF_M // I12
534  << neckBackToShoulderTipB_M // I13
535  << neckWidth_M; // I14
536 
537  return list;
538 }
539 
540 //---------------------------------------------------------------------------------------------------------------------
541 QStringList ListGroupJ()
542 {
543  const QStringList list = QStringList() << bustpointToBustpoint_M // J01
544  << bustpointToNeckSide_M // J02
545  << bustpointToLowbust_M // J03
546  << bustpointToWaist_M // J04
549  << bustpointToShoulderTip_M // J07
550  << bustpointToWaistFront_M // J08
553  << bustpointToNeckFront_M; // J11
554  return list;
555 }
556 
557 //---------------------------------------------------------------------------------------------------------------------
558 QStringList ListGroupK()
559 {
560  const QStringList list = QStringList() << shoulderTipToWaistFront_M // K01
561  << neckFrontToWaistSide_M // K02
562  << neckSideToWaistSideF_M // K03
563  << shoulderTipToWaistBack_M // K04
565  << neckBackToWaistSide_M // K06
566  << neckSideToWaistSideB_M // K07
567  << neckSideToArmfoldF_M // K08
568  << neckSideToArmpitF_M // K09
569  << neckSideToBustSideF_M // K10
570  << neckSideToArmfoldB_M // K11
571  << neckSideToArmpitB_M // K12
572  << neckSideToBustSideB_M; // K13
573 
574  return list;
575 }
576 
577 //---------------------------------------------------------------------------------------------------------------------
578 QStringList ListGroupL()
579 {
580  const QStringList list = QStringList() << armShoulderTipToWristBent_M // L01
582  << armElbowToWristBent_M // L03
583  << armElbowCircBent_M // L04
584  << armShoulderTipToWrist_M // L05
585  << armShoulderTipToElbow_M // L06
586  << armElbowToWrist_M // L07
587  << armArmpitToWrist_M // L08
588  << armArmpitToElbow_M // L09
589  << armElbowToWristInside_M // L10
590  << armUpperCirc_M // L11
591  << armAboveElbowCirc_M // L12
592  << armElbowCirc_M // L13
593  << armLowerCirc_M // L14
594  << armWristCirc_M // L15
596  << armNeckSideToWrist_M // L17
597  << armNeckSideToFingerTip_M // L18
598  << armscyeCirc_M // L19
599  << armscyeLength_M // L20
600  << armscyeWidth_M // L21
601  << armNeckSideToOuterElbow_M; // L22
602 
603  return list;
604 }
605 
606 //---------------------------------------------------------------------------------------------------------------------
607 QStringList ListGroupM()
608 {
609  const QStringList list = QStringList() << legCrotchToFloor_M // M01
610  << legWaistSideToFloor_M // M02
611  << legThighUpperCirc_M // M03
612  << legThighMidCirc_M // M04
613  << legKneeCirc_M // M05
614  << legKneeSmallCirc_M // M06
615  << legCalfCirc_M // M07
616  << legAnkleHighCirc_M // M08
617  << legAnkleCirc_M // M09
618  << legKneeCircBent_M // M10
619  << legAnkleDiagCirc_M // M11
620  << legCrotchToAnkle_M // M12
621  << legWaistSideToAnkle_M // M13
622  << legWaistSideToKnee_M; // M14
623 
624  return list;
625 }
626 
627 //---------------------------------------------------------------------------------------------------------------------
628 QStringList ListGroupN()
629 {
630  const QStringList list = QStringList() << crotchLength_M // N01
631  << crotchLengthB_M // N02
632  << crotchLengthF_M // N03
633  << riseLengthSideSitting_M // N04
634  << riseLengthDiag_M // N05
635  << riseLengthB_M // N06
636  << riseLengthF_M // N07
637  << riseLengthSide_M; // N08
638 
639  return list;
640 }
641 
642 //---------------------------------------------------------------------------------------------------------------------
643 QStringList ListGroupO()
644 {
645  const QStringList list = QStringList() << neckBackToWaistFront_M // O01
646  << waistToWaistHalter_M // O02
647  << waistNaturalCirc_M // O03
648  << waistNaturalArcF_M // O04
649  << waistNaturalArcB_M // O05
650  << waistToNaturalWaistF_M // O06
651  << waistToNaturalWaistB_M // O07
652  << armNeckBackToElbowBent_M // O08
653  << armNeckBackToWristBent_M // O09
654  << armNeckSideToElbowBent_M // O10
655  << armNeckSideToWristBent_M // O11
659 
660  return list;
661 }
662 
663 //---------------------------------------------------------------------------------------------------------------------
664 QStringList ListGroupP()
665 {
666  const QStringList list = QStringList() << neckBackToBustFront_M // P01
667  << neckBackToArmfoldFront_M // P02
674  << armfoldToArmfoldBust_M // P09
675  << armfoldToBustFront_M // P10
677  << armscyeArc_M; // P12
678 
679  return list;
680 }
681 
682 //---------------------------------------------------------------------------------------------------------------------
683 QStringList ListGroupQ()
684 {
685  const QStringList list = QStringList() << dartWidthShoulder_M // Q01
686  << dartWidthBust_M // Q02
687  << dartWidthWaist_M; // Q03
688 
689  return list;
690 }
691 
692 //---------------------------------------------------------------------------------------------------------------------
693 QStringList ListNumbers(const VTranslateMeasurements *trM, const QStringList &listMeasurements)
694 {
695  SCASSERT(trM != nullptr)
696 
697  QStringList numbers;
698  for (int i=0; i < listMeasurements.size(); ++i)
699  {
700  numbers.append(trM->MNumber(listMeasurements.at(i)));
701  }
702  return numbers;
703 }
704 
705 //---------------------------------------------------------------------------------------------------------------------
706 QString MapDiagrams(const VTranslateMeasurements *trM, const QString &number)
707 {
708  switch (ListNumbers(trM, ListGroupA()).indexOf(number))
709  {
710  // A
711  case 0: // A01
712  case 1: // A02
713  case 2: // A03
714  case 3: // A04
715  case 4: // A05
716  case 5: // A06
717  case 6: // A07
718  case 7: // A08
719  case 8: // A09
720  case 9: // A10
721  case 10: // A11
722  case 11: // A12
723  case 12: // A13
724  case 13: // A14
725  case 14: // A15
726  case 15: // A16
727  case 16: // A17
728  return QStringLiteral("Ap1");
729  case 17: // A18
730  case 18: // A19
731  case 19: // A20
732  case 20: // A21
733  case 21: // A22
734  case 22: // A23
735  return QStringLiteral("Ap2");
736  default:
737  break;
738  }
739 
740  switch (ListNumbers(trM, ListGroupB()).indexOf(number))
741  {
742  // B
743  case 0: // B01
744  case 1: // B02
745  case 2: // B03
746  case 3: // B04
747  return QStringLiteral("Bp1");
748  case 4: // B05
749  return QStringLiteral("Bp2");
750  default:
751  break;
752  }
753 
754  switch (ListNumbers(trM, ListGroupC()).indexOf(number))
755  {
756  // C
757  case 0: // C01
758  return QStringLiteral("Cp1");
759  case 1: // C02
760  case 2: // C03
761  return QStringLiteral("Cp2");
762  default:
763  break;
764  }
765 
766  switch (ListNumbers(trM, ListGroupD()).indexOf(number))
767  {
768  // D
769  case 0: // D01
770  case 1: // D02
771  case 2: // D03
772  return QStringLiteral("Dp1");
773  case 3: // D04
774  return QStringLiteral("Dp2");
775  case 4: // D05
776  return QStringLiteral("Dp3");
777  default:
778  break;
779  }
780 
781  switch (ListNumbers(trM, ListGroupE()).indexOf(number))
782  {
783  // E
784  case 0: // E01
785  return QStringLiteral("Ep1");
786  case 1: // E02
787  case 2: // E03
788  case 3: // E04
789  return QStringLiteral("Ep2");
790  default:
791  break;
792  }
793 
794  switch (ListNumbers(trM, ListGroupF()).indexOf(number))
795  {
796  // F
797  case 0: // F01
798  case 1: // F02
799  case 2: // F03
800  return QStringLiteral("Fp1");
801  case 3: // F04
802  return QStringLiteral("Fp2");
803  case 4: // F05
804  case 5: // F06
805  return QStringLiteral("Fp3");
806  default:
807  break;
808  }
809 
810  switch (ListNumbers(trM, ListGroupG()).indexOf(number))
811  {
812  // G
813  case 0: // G01
814  case 1: // G02
815  case 2: // G03
816  case 3: // G04
817  case 4: // G05
818  case 5: // G06
819  case 6: // G07
820  case 7: // G08
821  case 8: // G09
822  return QStringLiteral("Gp1");
823  case 9: // G10
824  case 10: // G11
825  case 11: // G12
826  case 12: // G12
827  case 13: // G13
828  case 14: // G14
829  case 15: // G15
830  case 16: // G16
831  case 17: // G17
832  return QStringLiteral("Gp2");
833  case 18: // G18
834  case 19: // G19
835  case 20: // G20
836  case 21: // G21
837  case 22: // G22
838  case 23: // G23
839  case 24: // G24
840  case 25: // G25
841  return QStringLiteral("Gp3");
842  case 26: // G26
843  case 27: // G27
844  case 28: // G28
845  case 29: // G29
846  case 30: // G30
847  case 31: // G31
848  case 32: // G32
849  case 33: // G33
850  return QStringLiteral("Gp4");
851  case 34: // G34
852  case 35: // G35
853  case 36: // G36
854  case 37: // G37
855  case 38: // G38
856  case 39: // G39
857  case 40: // G40
858  case 41: // G41
859  return QStringLiteral("Gp5");
860  case 42: // G42
861  return QStringLiteral("Gp6");
862  case 43: // G43
863  case 44: // G44
864  return QStringLiteral("Gp7");
865  case 45: // G45
866  return QStringLiteral("Gp8");
867  case 46: // G46
868  return QStringLiteral("Gp9");
869  default:
870  break;
871  }
872 
873  switch (ListNumbers(trM, ListGroupH()).indexOf(number))
874  {
875  // H
876  case 0: // H01
877  return QStringLiteral("Hp1");
878  case 1: // H02
879  return QStringLiteral("Hp2");
880  case 2: // H03
881  case 3: // H04
882  case 4: // H05
883  case 5: // H06
884  return QStringLiteral("Hp3");
885  case 6: // H07
886  case 7: // H08
887  case 8: // H09
888  case 9: // H10
889  case 10: // H11
890  case 11: // H12
891  return QStringLiteral("Hp4");
892  case 12: // H13
893  case 13: // H14
894  case 14: // H15
895  case 15: // H16
896  return QStringLiteral("Hp5");
897  case 16: // H17
898  case 17: // H18
899  case 18: // H19
900  case 19: // H20
901  return QStringLiteral("Hp6");
902  case 20: // H21
903  case 21: // H22
904  case 22: // H23
905  case 23: // H24
906  case 24: // H25
907  return QStringLiteral("Hp7");
908  case 25: // H26
909  case 26: // H27
910  case 27: // H28
911  case 28: // H29
912  return QStringLiteral("Hp8");
913  case 29: // H30
914  case 30: // H31
915  case 31: // H32
916  return QStringLiteral("Hp9");
917  case 32: // H33
918  case 33: // H34
919  case 34: // H35
920  return QStringLiteral("Hp10");
921  case 35: // H36
922  case 36: // H37
923  case 37: // H38
924  case 38: // H39
925  return QStringLiteral("Hp11");
926  case 39: // H40
927  return QStringLiteral("Hp12");
928  case 40: // H41
929  case 41: // H42
930  return QStringLiteral("Hp13");
931  default:
932  break;
933  }
934 
935  switch (ListNumbers(trM, ListGroupI()).indexOf(number))
936  {
937  // I
938  case 0: // I01
939  case 1: // I02
940  case 2: // I03
941  case 3: // I04
942  return QStringLiteral("Ip1");
943  case 4: // I05
944  case 5: // I06
945  return QStringLiteral("Ip2");
946  case 6: // I07
947  case 7: // I08
948  case 8: // I09
949  return QStringLiteral("Ip3");
950  case 9: // I10
951  case 10: // I11
952  return QStringLiteral("Ip4");
953  case 11: // I12
954  return QStringLiteral("Ip5");
955  case 12: // I13
956  return QStringLiteral("Ip6");
957  case 13: // I14
958  return QStringLiteral("Ip7");
959  default:
960  break;
961  }
962 
963  switch (ListNumbers(trM, ListGroupJ()).indexOf(number))
964  {
965  // J
966  case 0: // J01
967  case 1: // J02
968  case 2: // J03
969  case 3: // J04
970  return QStringLiteral("Jp1");
971  case 4: // J05
972  return QStringLiteral("Jp2");
973  case 5: // J06
974  return QStringLiteral("Jp3");
975  case 6: // J07
976  case 7: // J08
977  return QStringLiteral("Jp4");
978  case 8: // J09
979  return QStringLiteral("Jp5");
980  case 9: // J10
981  case 10: //J11
982  return QStringLiteral("Jp6");
983  default:
984  break;
985  }
986 
987  switch (ListNumbers(trM, ListGroupK()).indexOf(number))
988  {
989  // K
990  case 0: // K01
991  return QStringLiteral("Kp1");
992  case 1: // K02
993  case 2: // K03
994  return QStringLiteral("Kp2");
995  case 3: // K04
996  return QStringLiteral("Kp3");
997  case 4: // K05
998  return QStringLiteral("Kp4");
999  case 5: // K06
1000  case 6: // K07
1001  return QStringLiteral("Kp5");
1002  case 7: // K08
1003  return QStringLiteral("Kp6");
1004  case 8: // K09
1005  return QStringLiteral("Kp7");
1006  case 9: // K10
1007  return QStringLiteral("Kp8");
1008  case 10: // K11
1009  return QStringLiteral("Kp9");
1010  case 11: // K12
1011  return QStringLiteral("Kp10");
1012  case 12: // K13
1013  return QStringLiteral("Kp11");
1014  default:
1015  break;
1016  }
1017 
1018  switch (ListNumbers(trM, ListGroupL()).indexOf(number))
1019  {
1020  // L
1021  case 0: // L01
1022  case 1: // L02
1023  case 2: // L03
1024  case 3: // L04
1025  return QStringLiteral("Lp1");
1026  case 4: // L05
1027  case 5: // L06
1028  case 6: // L07
1029  return QStringLiteral("Lp2");
1030  case 7: // L08
1031  case 8: // L09
1032  case 9: // L10
1033  return QStringLiteral("Lp3");
1034  case 10: // L11
1035  case 11: // L12
1036  case 12: // L13
1037  case 13: // L14
1038  case 14: // L15
1039  return QStringLiteral("Lp4");
1040  case 15: // L16
1041  return QStringLiteral("Lp5");
1042  case 16: // L17
1043  return QStringLiteral("Lp6");
1044  case 17: // L18
1045  return QStringLiteral("Lp7");
1046  case 18: // L19
1047  case 19: // L20
1048  return QStringLiteral("Lp8");
1049  case 20: // L21
1050  return QStringLiteral("Lp9");
1051  case 21: // L22
1052  return QStringLiteral("Lp10");
1053  default:
1054  break;
1055  }
1056 
1057  switch (ListNumbers(trM, ListGroupM()).indexOf(number))
1058  {
1059  // M
1060  case 0: // M01
1061  case 1: // M02
1062  return QStringLiteral("Mp1");
1063  case 2: // M03
1064  case 3: // M04
1065  case 4: // M05
1066  case 5: // M06
1067  case 6: // M07
1068  case 7: // M08
1069  case 8: // M09
1070  case 9: // M10
1071  case 10: // M11
1072  return QStringLiteral("Mp2");
1073  case 11: // M12
1074  case 12: // M13
1075  case 13: // M14
1076  return QStringLiteral("Mp3");
1077  default:
1078  break;
1079  }
1080 
1081  switch (ListNumbers(trM, ListGroupN()).indexOf(number))
1082  {
1083  // N
1084  case 0: // N01
1085  return QStringLiteral("Np1");
1086  case 1: // N02
1087  case 2: // N03
1088  return QStringLiteral("Np2");
1089  case 3: // N04
1090  case 4: // N05
1091  return QStringLiteral("Np3");
1092  case 5: // N06
1093  case 6: // N07
1094  return QStringLiteral("Np4");
1095  case 7: // N08
1096  return QStringLiteral("Np5");
1097  default:
1098  break;
1099  }
1100 
1101  switch (ListNumbers(trM, ListGroupO()).indexOf(number))
1102  {
1103  // O
1104  case 0: // O01
1105  return QStringLiteral("Op1");
1106  case 1: // O02
1107  return QStringLiteral("Op2");
1108  case 2: // O03
1109  return QStringLiteral("Op3");
1110  case 3: // O04
1111  return QStringLiteral("Op4");
1112  case 4: // O05
1113  return QStringLiteral("Op5");
1114  case 5: // O06
1115  return QStringLiteral("Op6");
1116  case 6: // O07
1117  return QStringLiteral("Op7");
1118  case 7: // O08
1119  case 8: // O09
1120  return QStringLiteral("Op8");
1121  case 9: // O10
1122  case 10: // O11
1123  return QStringLiteral("Op9");
1124  case 11: // O12
1125  case 12: // O13
1126  return QStringLiteral("Op10");
1127  case 13: // O14
1128  return QStringLiteral("Op11");
1129  default:
1130  break;
1131  }
1132 
1133  switch (ListNumbers(trM, ListGroupP()).indexOf(number))
1134  {
1135  // P
1136  case 0: // P01
1137  return QStringLiteral("Pp1");
1138  case 1: // P02
1139  return QStringLiteral("Pp2");
1140  case 2: // P03
1141  return QStringLiteral("Pp3");
1142  case 3: // P04
1143  return QStringLiteral("Pp4");
1144  case 4: // P05
1145  return QStringLiteral("Pp5");
1146  case 5: // P06
1147  return QStringLiteral("Pp6");
1148  case 6: // P07
1149  return QStringLiteral("Pp7");
1150  case 7: // P08
1151  return QStringLiteral("Pp8");
1152  case 8: // P09
1153  return QStringLiteral("Pp9");
1154  case 9: // P10
1155  return QStringLiteral("Pp10");
1156  case 10: // P11
1157  return QStringLiteral("Pp11");
1158  case 11: // P12
1159  return QStringLiteral("Pp12");
1160  default:
1161  break;
1162  }
1163 
1164  switch (ListNumbers(trM, ListGroupQ()).indexOf(number))
1165  {
1166  // Q
1167  case 0: // Q01
1168  return QStringLiteral("Qp1");
1169  case 1: // Q02
1170  return QStringLiteral("Qp2");
1171  case 2: // Q03
1172  return QStringLiteral("Qp3");
1173  default:
1174  break;
1175  }
1176 
1177  return QString();
1178 }
1179 
1180 //---------------------------------------------------------------------------------------------------------------------
1181 QStringList AllGroupNames()
1182 {
1183  const QStringList originalNames = QStringList() << ListGroupA()
1184  << ListGroupB()
1185  << ListGroupC()
1186  << ListGroupD()
1187  << ListGroupE()
1188  << ListGroupF()
1189  << ListGroupG()
1190  << ListGroupH()
1191  << ListGroupI()
1192  << ListGroupJ()
1193  << ListGroupK()
1194  << ListGroupL()
1195  << ListGroupM()
1196  << ListGroupN()
1197  << ListGroupO()
1198  << ListGroupP()
1199  << ListGroupQ();
1200 
1201  return originalNames;
1202 }
QString MNumber(const QString &measurement) const
#define SCASSERT(cond)
Definition: def.h:317
QStringList ListGroupP()
const QString crotchLengthF_M
const QString riseLengthSide_M
const QString highbustArcHalfB_M
const QString armAcrossBackCenterToElbowBent_M
const QString neckFrontToBustF_M
const QString shoulderTipToArmfoldF_M
const QString bustpointToNeckSide_M
const QString bustpointToLowbust_M
const QString heightNeckBackToWaistSide_M
const QString waistToHighhipB_M
const QString waistNaturalArcB_M
QStringList ListGroupN()
const QString heightCalf_M
const QString shoulderTipToShoulderTipHalfB_M
const QString neckArcHalfF_M
const QString footInstepCirc_M
const QString footLength_M
const QString armElbowToWristInside_M
QString MapDiagrams(const VTranslateMeasurements *trM, const QString &number)
const QString handPalmLength_M
const QString heightWaistSideToKnee_M
const QString ribArcHalfF_M
const QString armpitToWaistSide_M
const QString legKneeCirc_M
const QString neckBackToArmfoldFrontToNeckBack_M
const QString headLength_M
const QString headCrownToNeckBack_M
const QString bustpointToWaist_M
const QString hipArcHalfF_M
const QString bustpointToWaistFront_M
const QString ribArcB_M
const QString neckSideToWaistBustpointF_M
const QString hipCircWithAbdomen_M
const QString bodyArmfoldCirc_M
const QString shoulderTipToShoulderTipHalfF_M
const QString lowbustArcHalfF_M
const QString shoulderTipToWaistFront_M
const QString hipArcHalfB_M
const QString dartWidthWaist_M
const QString highbustArcB_M
const QString legThighUpperCirc_M
const QString footWidth_M
const QString armShoulderTipToElbow_M
QStringList ListNumbers(const VTranslateMeasurements *trM, const QStringList &listMeasurements)
const QString neckSideToWaistSideF_M
const QString neckBackToBustFront_M
const QString legKneeSmallCirc_M
const QString waistArcB_M
const QString neckBackToWaistFront_M
const QString acrossBackToWaistB_M
const QString legWaistSideToKnee_M
const QString heightKneeToAnkle_M
const QString neckSideToWaistF_M
QStringList ListGroupI()
const QString handLength_M
const QString neckSideToArmpitF_M
const QString indentWaistBack_M
const QString dartWidthBust_M
const QString heightAnkle_M
const QString size_M
const QString lowbustArcF_M
const QString armscyeArc_M
const QString shoulderCenterToHighbustF_M
const QString lowbustToWaistB_M
const QString acrossBackB_M
const QString waistToHighhipF_M
const QString armShoulderTipToArmfoldLine_M
const QString waistToHipSide_M
QStringList ListGroupL()
const QString heightNeckBack_M
const QString highbustToWaistF_M
const QString lowbustArcB_M
const QString highhipArcHalfF_M
const QString shoulderSlopeNeckBackHeight_M
QStringList ListGroupG()
const QString neckBackToHighbustB_M
const QString headCirc_M
const QString shoulderTipToWaistB_1inOffset_M
const QString widthAbdomenToHip_M
const QString highhipArcF_M
const QString neckFrontToShoulderTipF_M
const QString waistNaturalCirc_M
const QString neckSideToArmpitB_M
QStringList AllGroupNames()
const QString bustpointToBustpointHalter_M
const QString highhipArcHalfB_M
const QString legWaistSideToFloor_M
QStringList ListGroupK()
const QString riseLengthSideSitting_M
QStringList ListGroupD()
const QString bodyBustCirc_M
const QString neckSideToHighbustF_M
const QString heightNeckFront_M
const QString neckCirc_M
const QString neckFrontToHighbustF_M
const QString legCrotchToFloor_M
const QString shoulderSlopeNeckBackAngle_M
const QString neckWidth_M
const QString waistArcHalfF_M
const QString neckBackToArmfoldFrontToWaistSide_M
const QString heightKnee_M
const QString armArmpitToWrist_M
const QString armWristCirc_M
const QString legThighMidCirc_M
const QString acrossChestF_M
const QString waistToHipF_M
const QString neckBackToWaistSide_M
const QString waistToNaturalWaistB_M
const QString legCrotchToAnkle_M
const QString acrossChestHalfF_M
const QString footCirc_M
const QString bustToWaistF_M
const QString neckFrontToWaistF_M
const QString crotchLengthB_M
const QString acrossBackHalfB_M
const QString armfoldToArmfoldBust_M
const QString heightBustpoint_M
const QString highbustToWaistB_M
const QString neckMidCirc_M
const QString armShoulderTipToWrist_M
const QString heightGlutealFold_M
const QString neckSideToWaistB_M
const QString ribArcF_M
const QString lowbustCirc_M
const QString shoulderSlopeNeckSideAngle_M
const QString shoulderTipToShoulderTipB_M
const QString shoulderTipToArmfoldB_M
const QString shoulderSlopeNeckSideLength_M
const QString armArmpitToElbow_M
const QString neckArcB_M
QStringList ListGroupM()
const QString handCirc_M
const QString waistCirc_M
const QString hipArcF_M
const QString ribToWaistSide_M
const QString armUpperCirc_M
const QString riseLengthB_M
const QString legAnkleCirc_M
const QString neckBackToArmfoldFront_M
const QString bustpointToBustpoint_M
const QString widthWaist_M
const QString neckBackToArmfoldFrontToHighbustBack_M
const QString armfoldToArmfoldF_M
const QString lowbustToWaistF_M
const QString neckArcHalfB_M
const QString bustArcB_M
const QString shoulderLength_M
const QString armAboveElbowCirc_M
const QString riseLengthF_M
const QString highbustBackOverShoulderToWaistFront_M
const QString bustpointToShoulderTip_M
const QString neckSideToWaistScapulaB_M
const QString highbustArcF_M
const QString heightNeckBackToKnee_M
const QString waistToHipB_M
const QString bustpointToNeckFront_M
const QString armElbowToWrist_M
const QString heightWaistSide_M
const QString armscyeLength_M
QStringList ListGroupH()
const QString armElbowCirc_M
const QString bustpointToShoulderCenter_M
const QString waistArcHalfB_M
const QString legWaistSideToAnkle_M
const QString heightShoulderTip_M
const QString highbustCirc_M
const QString armElbowToWristBent_M
const QString armscyeWidth_M
const QString legAnkleHighCirc_M
const QString headChinToNeckBack_M
const QString armAcrossBackCenterToWristBent_M
const QString highbustBOverShoulderToHighbustF_M
QStringList ListGroupC()
const QString highbustArcHalfF_M
QStringList ListGroupF()
const QString legCalfCirc_M
const QString neckBackToAcrossBack_M
const QString dartWidthShoulder_M
QStringList ListGroupO()
const QString armfoldToArmfoldB_M
const QString armNeckSideToElbowBent_M
const QString bustArcF_M
QStringList ListGroupA()
const QString legAnkleDiagCirc_M
const QString highhipArcB_M
const QString neckSideToWaistSideB_M
const QString widthBust_M
const QString bodyTorsoCirc_M
const QString neckSideToHighbustB_M
const QString widthHip_M
const QString legKneeCircBent_M
const QString height_M
const QString armLowerCirc_M
const QString shoulderCenterToHighbustB_M
const QString armNeckSideToFingerTip_M
const QString armNeckBackToWristBent_M
const QString armNeckSideToOuterElbow_M
const QString neckBackToShoulderTipB_M
const QString armNeckBackToElbowBent_M
QStringList ListGroupJ()
const QString shoulderTipToWaistBack_M
const QString armNeckSideToWrist_M
const QString neckBackToBustB_M
const QString handPalmWidth_M
const QString heightScapula_M
const QString bustArcHalfF_M
const QString heightHighhip_M
const QString heightNeckSide_M
const QString neckArcF_M
const QString highbustBackOverShoulderToArmfoldFront_M
const QString waistToHighhipSide_M
const QString acrossBackCenterToArmfoldFrontToAcrossBackCenter_M
const QString armElbowCircBent_M
const QString indentNeckBack_M
const QString heightAnkleHigh_M
const QString widthShoulder_M
const QString armscyeCirc_M
const QString armShoulderTipToElbowBent_M
const QString neckSideToArmfoldF_M
const QString neckSideToBustSideB_M
const QString neckBackToWaistB_M
const QString headWidth_M
const QString bustpointNeckSideToWaist_M
const QString waistToWaistHalter_M
const QString armArmscyeBackCenterToWristBent_M
const QString armNeckSideToWristBent_M
const QString heightWaistFront_M
const QString highhipCirc_M
const QString handPalmCirc_M
const QString heightWaistBack_M
const QString headDepth_M
const QString neckSideToBustF_M
const QString hipArcB_M
const QString bustCirc_M
const QString waistNaturalArcF_M
QStringList ListGroupE()
const QString waistArcF_M
const QString bustArcHalfB_M
const QString heightWaistSideToHip_M
const QString bustToWaistB_M
const QString heightArmpit_M
const QString crotchLength_M
const QString neckSideToBustB_M
const QString lowbustArcHalfB_M
QStringList ListGroupQ()
const QString indentAnkleHigh_M
const QString armfoldToBustFront_M
const QString neckFrontToWaistSide_M
const QString ribArcHalfB_M
const QString shoulderTipToWaistSideB_M
const QString hipCirc_M
const QString hipWithAbdomenArcF_M
const QString riseLengthDiag_M
const QString shoulderTipToWaistSideF_M
const QString shoulderSlopeShoulderTipAngle_M
const QString shoulderTipToShoulderTipF_M
const QString heightHip_M
QStringList ListGroupB()
const QString armShoulderTipToWristBent_M
const QString neckSideToArmfoldB_M
const QString ribCirc_M
const QString neckSideToBustSideF_M
const QString neckFrontToWaistFlatF_M
const QString bustpointToBustpointHalf_M
const QString waistToNaturalWaistF_M