Line data Source code
1 : /* File: geometry_v_align.inl; Copyright and License: see below */
2 :
3 : #include "u8/u8_trace.h"
4 : #include "u8/u8_log.h"
5 :
6 11 : static inline double geometry_v_align_get_top ( const geometry_v_align_t *this_, double height, double reference_top, double reference_height )
7 : {
8 11 : assert( ( *this_ == GEOMETRY_V_ALIGN_TOP )||( *this_ == GEOMETRY_V_ALIGN_CENTER )||( *this_ == GEOMETRY_V_ALIGN_BOTTOM ) );
9 : double top;
10 :
11 11 : switch ( *this_ )
12 : {
13 1 : case GEOMETRY_V_ALIGN_TOP:
14 : {
15 1 : top = reference_top;
16 : }
17 1 : break;
18 :
19 7 : case GEOMETRY_V_ALIGN_CENTER:
20 : {
21 7 : top = reference_top + 0.5 * ( reference_height - height );
22 : }
23 7 : break;
24 :
25 3 : default:
26 : case GEOMETRY_V_ALIGN_BOTTOM:
27 : {
28 3 : top = reference_top + reference_height - height;
29 : }
30 3 : break;
31 : }
32 :
33 11 : return top;
34 : }
35 :
36 :
37 : /*
38 : Copyright 2017-2025 Andreas Warnke
39 :
40 : Licensed under the Apache License, Version 2.0 (the "License");
41 : you may not use this file except in compliance with the License.
42 : You may obtain a copy of the License at
43 :
44 : http://www.apache.org/licenses/LICENSE-2.0
45 :
46 : Unless required by applicable law or agreed to in writing, software
47 : distributed under the License is distributed on an "AS IS" BASIS,
48 : WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
49 : See the License for the specific language governing permissions and
50 : limitations under the License.
51 : */
|