Ignore:
Timestamp:
Jul 14, 2026, 9:26:24 PM (5 hours ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
master
Children:
a12816e7
Parents:
f41b161
Message:

formatting, turn off -Wdangling-pointer around small code fragments because of false positive

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libcfa/src/vec/vec3.hfa

    rf41b161 rc62013e  
    1919#include "vec.hfa"
    2020
    21 forall (T) {
     21forall( T ) {
    2222    struct vec3 {
    2323        T x, y, z;
     
    2525}
    2626
    27 forall (T) {
    28     static inline {
    29 
    30     void ?{}(vec3(T)& v, T x, T y, T z) {
     27static inline forall( T ) {
     28    void ?{}( vec3( T )& v, T x, T y, T z ) {
    3129        v.[x, y, z] = [x, y, z];
    3230    }
    3331
    34     forall(| zero_assign(T))
    35     void ?{}(vec3(T)& vec, zero_t) with (vec) {
     32    forall( | zero_assign( T ) )
     33    void ?{}( vec3( T )& vec, zero_t ) with ( vec ) {
    3634        x = y = z = 0;
    3735    }
    3836
    39     void ?{}(vec3(T)& vec, T val) with (vec) {
     37    void ?{}( vec3( T )& vec, T val ) with ( vec ) {
    4038        x = y = z = val;
    4139    }
    4240
    43     void ?{}(vec3(T)& vec, vec3(T) other) with (vec) {
     41    void ?{}( vec3( T )& vec, vec3( T ) other ) with ( vec ) {
    4442        [x,y,z] = other.[x,y,z];
    4543    }
    4644
    47     void ?=?(vec3(T)& vec, vec3(T) other) with (vec) {
     45    void ?=?( vec3( T )& vec, vec3( T ) other ) with ( vec ) {
    4846        [x,y,z] = other.[x,y,z];
    4947    }
    50     forall(| zero_assign(T))
    51     void ?=?(vec3(T)& vec, zero_t) with (vec) {
     48
     49    forall( | zero_assign( T ) )
     50    void ?=?( vec3( T )& vec, zero_t ) with ( vec ) {
    5251        x = y = z = 0;
    5352    }
     
    5655
    5756    // -
    58     forall(| subtract(T)) {
    59     vec3(T) ?-?(vec3(T) u, vec3(T) v) {
    60         return [u.x - v.x, u.y - v.y, u.z - v.z];
    61     }
    62     vec3(T)& ?-=?(vec3(T)& u, vec3(T) v) {
    63         u = u - v;
    64         return u;
    65     }
    66     }
    67     forall(| negate(T)) {
    68     vec3(T) -?(vec3(T) v) with (v) {
    69         return [-x, -y, -z];
    70     }
    71     }
    72     forall(| { T --?(T&); }) {
    73     vec3(T)& --?(vec3(T)& v) {
    74         --v.x;
    75         --v.y;
    76         --v.z;
    77         return v;
    78     }
    79     vec3(T) ?--(vec3(T)& v) {
    80         vec3(T) copy = v;
    81         --v;
    82         return copy;
    83     }
     57    forall( | subtract( T ) ) {
     58                vec3( T ) ?-?( vec3( T ) u, vec3( T ) v ) {
     59                        return [u.x - v.x, u.y - v.y, u.z - v.z];
     60                }
     61                vec3( T )& ?-=?( vec3( T )& u, vec3( T ) v ) {
     62                        u = u - v;
     63                        return u;
     64                }
     65    }
     66
     67    forall( | negate( T ) ) {
     68                vec3( T ) -?( vec3( T ) v ) with ( v ) {
     69                        return [-x, -y, -z];
     70                }
     71    }
     72
     73    forall( | { T --?( T&); }) {
     74                vec3( T )& --?( vec3( T )& v ) {
     75                        --v.x;
     76                        --v.y;
     77                        --v.z;
     78                        return v;
     79                }
     80                vec3( T ) ?--( vec3( T )& v ) {
     81                        vec3( T ) copy = v;
     82                        --v;
     83                        return copy;
     84                }
    8485    }
    8586
    8687    // +
    87     forall(| add(T)) {
    88     vec3(T) ?+?(vec3(T) u, vec3(T) v) {
    89         return [u.x + v.x, u.y + v.y, u.z + v.z];
    90     }
    91     vec3(T)& ?+=?(vec3(T)& u, vec3(T) v) {
    92         u = u + v;
    93         return u;
    94     }
    95     }
    96 
    97     forall(| { T ++?(T&); }) {
    98     vec3(T)& ++?(vec3(T)& v) {
    99         ++v.x;
    100         ++v.y;
    101         ++v.z;
    102         return v;
    103     }
    104     vec3(T) ?++(vec3(T)& v) {
    105         vec3(T) copy = v;
    106         ++v;
    107         return copy;
    108     }
     88    forall( | add( T ) ) {
     89                vec3( T ) ?+?( vec3( T ) u, vec3( T ) v ) {
     90                        return [u.x + v.x, u.y + v.y, u.z + v.z];
     91                }
     92                vec3( T )& ?+=?( vec3( T )& u, vec3( T ) v ) {
     93                        u = u + v;
     94                        return u;
     95                }
     96    }
     97
     98    forall( | { T ++?( T&); }) {
     99                vec3( T )& ++?( vec3( T )& v ) {
     100                        ++v.x;
     101                        ++v.y;
     102                        ++v.z;
     103                        return v;
     104                }
     105                vec3( T ) ?++( vec3( T )& v ) {
     106                        vec3( T ) copy = v;
     107                        ++v;
     108                        return copy;
     109                }
    109110    }
    110111
    111112    // *
    112     forall(| multiply(T)) {
    113     vec3(T) ?*?(vec3(T) v, T scalar) with (v) {
    114         return [x * scalar, y * scalar, z * scalar];
    115     }
    116     vec3(T) ?*?(T scalar, vec3(T) v) {
    117         return v * scalar;
    118     }
    119     vec3(T) ?*?(vec3(T) u, vec3(T) v) {
    120         return [u.x * v.x, u.y * v.y, u.z * v.z];
    121     }
    122     vec3(T)& ?*=?(vec3(T)& v, T scalar) {
    123         v = v * scalar;
    124         return v;
    125     }
    126     vec3(T)& ?*=?(vec3(T)& u, vec3(T) v) {
    127         u = u * v;
    128         return u;
    129     }
     113    forall( | multiply( T ) ) {
     114                vec3( T ) ?*?( vec3( T ) v, T scalar ) with ( v ) {
     115                        return [x * scalar, y * scalar, z * scalar];
     116                }
     117                vec3( T ) ?*?( T scalar, vec3( T ) v ) {
     118                        return v * scalar;
     119                }
     120                vec3( T ) ?*?( vec3( T ) u, vec3( T ) v ) {
     121                        return [u.x * v.x, u.y * v.y, u.z * v.z];
     122                }
     123                vec3( T )& ?*=?( vec3( T )& v, T scalar ) {
     124                        v = v * scalar;
     125                        return v;
     126                }
     127                vec3( T )& ?*=?( vec3( T )& u, vec3( T ) v ) {
     128                        u = u * v;
     129                        return u;
     130                }
    130131    }
    131132
    132133    // /
    133     forall(| divide(T)) {
    134     vec3(T) ?/?(vec3(T) v, T scalar) with (v) {
    135         return [x / scalar, y / scalar, z / scalar];
    136     }
    137     vec3(T) ?/?(vec3(T) u, vec3(T) v) {
    138         return [u.x / v.x, u.y / v.y, u.z / v.z];
    139     }
    140     vec3(T)& ?/=?(vec3(T)& v, T scalar) {
    141         v = v / scalar;
    142         return v;
    143     }
    144     vec3(T)& ?/=?(vec3(T)& u, vec3(T) v) {
    145         u = u / v;
    146         return u;
    147     }
    148     }
    149 
     134    forall( | divide( T ) ) {
     135                vec3( T ) ?/?( vec3( T ) v, T scalar ) with ( v ) {
     136                        return [x / scalar, y / scalar, z / scalar];
     137                }
     138                vec3( T ) ?/?( vec3( T ) u, vec3( T ) v ) {
     139                        return [u.x / v.x, u.y / v.y, u.z / v.z];
     140                }
     141                vec3( T )& ?/=?( vec3( T )& v, T scalar ) {
     142                        v = v / scalar;
     143                        return v;
     144                }
     145                vec3( T )& ?/=?( vec3( T )& u, vec3( T ) v ) {
     146                        u = u / v;
     147                        return u;
     148                }
     149    }
     150       
    150151    // %
    151     forall(| { T ?%?(T,T); }) {
    152     vec3(T) ?%?(vec3(T) v, T scalar) with (v) {
    153         return [x % scalar, y % scalar, z % scalar];
    154     }
    155     vec3(T)& ?%=?(vec3(T)& u, T scalar) {
    156         u = u % scalar;
    157         return u;
    158     }
    159     vec3(T) ?%?(vec3(T) u, vec3(T) v) {
    160         return [u.x % v.x, u.y % v.y, u.z % v.z];
    161     }
    162     vec3(T)& ?%=?(vec3(T)& u, vec3(T) v) {
    163         u = u % v;
    164         return u;
    165     }
     152    forall( | { T ?%?( T,T ); }) {
     153                vec3( T ) ?%?( vec3( T ) v, T scalar ) with ( v ) {
     154                        return [x % scalar, y % scalar, z % scalar];
     155                }
     156                vec3( T )& ?%=?( vec3( T )& u, T scalar ) {
     157                        u = u % scalar;
     158                        return u;
     159                }
     160                vec3( T ) ?%?( vec3( T ) u, vec3( T ) v ) {
     161                        return [u.x % v.x, u.y % v.y, u.z % v.z];
     162                }
     163                vec3( T )& ?%=?( vec3( T )& u, vec3( T ) v ) {
     164                        u = u % v;
     165                        return u;
     166                }
    166167    }
    167168
    168169    // &
    169     forall(| { T ?&?(T,T); }) {
    170     vec3(T) ?&?(vec3(T) v, T scalar) with (v) {
    171         return [x & scalar, y & scalar, z & scalar];
    172     }
    173     vec3(T)& ?&=?(vec3(T)& u, T scalar) {
    174         u = u & scalar;
    175         return u;
    176     }
    177     vec3(T) ?&?(vec3(T) u, vec3(T) v) {
    178         return [u.x & v.x, u.y & v.y, u.z & v.z];
    179     }
    180     vec3(T)& ?&=?(vec3(T)& u, vec3(T) v) {
    181         u = u & v;
    182         return u;
    183     }
     170    forall( | { T ?&?( T,T ); }) {
     171                vec3( T ) ?&?( vec3( T ) v, T scalar ) with ( v ) {
     172                        return [x & scalar, y & scalar, z & scalar];
     173                }
     174                vec3( T )& ?&=?( vec3( T )& u, T scalar ) {
     175                        u = u & scalar;
     176                        return u;
     177                }
     178                vec3( T ) ?&?( vec3( T ) u, vec3( T ) v ) {
     179                        return [u.x & v.x, u.y & v.y, u.z & v.z];
     180                }
     181                vec3( T )& ?&=?( vec3( T )& u, vec3( T ) v ) {
     182                        u = u & v;
     183                        return u;
     184                }
    184185    }
    185186
    186187    // |
    187     forall(| { T ?|?(T,T); }) {
    188     vec3(T) ?|?(vec3(T) v, T scalar) with (v) {
    189         return [x | scalar, y | scalar, z | scalar];
    190     }
    191     vec3(T)& ?|=?(vec3(T)& u, T scalar) {
    192         u = u | scalar;
    193         return u;
    194     }
    195     vec3(T) ?|?(vec3(T) u, vec3(T) v) {
    196         return [u.x | v.x, u.y | v.y, u.z | v.z];
    197     }
    198     vec3(T)& ?|=?(vec3(T)& u, vec3(T) v) {
    199         u = u | v;
    200         return u;
    201     }
     188    forall( | { T ?|?( T,T ); }) {
     189                vec3( T ) ?|?( vec3( T ) v, T scalar ) with ( v ) {
     190                        return [x | scalar, y | scalar, z | scalar];
     191                }
     192                vec3( T )& ?|=?( vec3( T )& u, T scalar ) {
     193                        u = u | scalar;
     194                        return u;
     195                }
     196                vec3( T ) ?|?( vec3( T ) u, vec3( T ) v ) {
     197                        return [u.x | v.x, u.y | v.y, u.z | v.z];
     198                }
     199                vec3( T )& ?|=?( vec3( T )& u, vec3( T ) v ) {
     200                        u = u | v;
     201                        return u;
     202                }
    202203    }
    203204
    204205    // ^
    205     forall(| { T ?^?(T,T); }) {
    206     vec3(T) ?^?(vec3(T) v, T scalar) with (v) {
    207         return [x ^ scalar, y ^ scalar, z ^ scalar];
    208     }
    209     vec3(T)& ?^=?(vec3(T)& u, T scalar) {
    210         u = u ^ scalar;
    211         return u;
    212     }
    213     vec3(T) ?^?(vec3(T) u, vec3(T) v) {
    214         return [u.x ^ v.x, u.y ^ v.y, u.z ^ v.z];
    215     }
    216     vec3(T)& ?^=?(vec3(T)& u, vec3(T) v) {
    217         u = u ^ v;
    218         return u;
    219     }
     206    forall( | { T ?^?( T,T ); }) {
     207                vec3( T ) ?^?( vec3( T ) v, T scalar ) with ( v ) {
     208                        return [x ^ scalar, y ^ scalar, z ^ scalar];
     209                }
     210                vec3( T )& ?^=?( vec3( T )& u, T scalar ) {
     211                        u = u ^ scalar;
     212                        return u;
     213                }
     214                vec3( T ) ?^?( vec3( T ) u, vec3( T ) v ) {
     215                        return [u.x ^ v.x, u.y ^ v.y, u.z ^ v.z];
     216                }
     217                vec3( T )& ?^=?( vec3( T )& u, vec3( T ) v ) {
     218                        u = u ^ v;
     219                        return u;
     220                }
    220221    }
    221222
    222223    // <<
    223     forall(| { T ?<<?(T,T); }) {
    224     vec3(T) ?<<?(vec3(T) v, T scalar) with (v) {
    225         return [x << scalar, y << scalar, z << scalar];
    226     }
    227     vec3(T)& ?<<=?(vec3(T)& u, T scalar) {
    228         u = u << scalar;
    229         return u;
    230     }
    231     vec3(T) ?<<?(vec3(T) u, vec3(T) v) {
    232         return [u.x << v.x, u.y << v.y, u.z << v.z];
    233     }
    234     vec3(T)& ?<<=?(vec3(T)& u, vec3(T) v) {
    235         u = u << v;
    236         return u;
    237     }
     224    forall( | { T ?<<?( T,T ); }) {
     225                vec3( T ) ?<<?( vec3( T ) v, T scalar ) with ( v ) {
     226                        return [x << scalar, y << scalar, z << scalar];
     227                }
     228                vec3( T )& ?<<=?( vec3( T )& u, T scalar ) {
     229                        u = u << scalar;
     230                        return u;
     231                }
     232                vec3( T ) ?<<?( vec3( T ) u, vec3( T ) v ) {
     233                        return [u.x << v.x, u.y << v.y, u.z << v.z];
     234                }
     235                vec3( T )& ?<<=?( vec3( T )& u, vec3( T ) v ) {
     236                        u = u << v;
     237                        return u;
     238                }
    238239    }
    239240
    240241    // >>
    241     forall(| { T ?>>?(T,T); }) {
    242     vec3(T) ?>>?(vec3(T) v, T scalar) with (v) {
    243         return [x >> scalar, y >> scalar, z >> scalar];
    244     }
    245     vec3(T)& ?>>=?(vec3(T)& u, T scalar) {
    246         u = u >> scalar;
    247         return u;
    248     }
    249     vec3(T) ?>>?(vec3(T) u, vec3(T) v) {
    250         return [u.x >> v.x, u.y >> v.y, u.z >> v.z];
    251     }
    252     vec3(T)& ?>>=?(vec3(T)& u, vec3(T) v) {
    253         u = u >> v;
    254         return u;
    255     }
     242    forall( | { T ?>>?( T,T ); }) {
     243                vec3( T ) ?>>?( vec3( T ) v, T scalar ) with ( v ) {
     244                        return [x >> scalar, y >> scalar, z >> scalar];
     245                }
     246                vec3( T )& ?>>=?( vec3( T )& u, T scalar ) {
     247                        u = u >> scalar;
     248                        return u;
     249                }
     250                vec3( T ) ?>>?( vec3( T ) u, vec3( T ) v ) {
     251                        return [u.x >> v.x, u.y >> v.y, u.z >> v.z];
     252                }
     253                vec3( T )& ?>>=?( vec3( T )& u, vec3( T ) v ) {
     254                        u = u >> v;
     255                        return u;
     256                }
    256257    }
    257258
    258259    // ~
    259     forall(| { T ~?(T); })
    260     vec3(T) ~?(vec3(T) v) with (v) {
     260    forall( | { T ~?( T ); })
     261                vec3( T ) ~?( vec3( T ) v ) with ( v ) {
    261262        return [~v.x, ~v.y, ~v.z];
    262263    }
    263264
    264265    // relational
    265     forall(| equality(T)) {
    266     bool ?==?(vec3(T) u, vec3(T) v) with (u) {
    267         return x == v.x && y == v.y && z == v.z;
    268     }
    269     bool ?!=?(vec3(T) u, vec3(T) v) {
    270         return !(u == v);
    271     }
     266    forall( | equality( T ) ) {
     267                bool ?==?( vec3( T ) u, vec3( T ) v ) with ( u ) {
     268                        return x == v.x && y == v.y && z == v.z;
     269                }
     270                bool ?!=?( vec3( T ) u, vec3( T ) v ) {
     271                        return !( u == v );
     272                }
    272273    }
    273274
    274275    // Geometric functions
    275     forall(| add(T) | multiply(T))
    276     T dot(vec3(T) u, vec3(T) v) {
     276    forall( | add( T ) | multiply( T ) )
     277                T dot( vec3( T ) u, vec3( T ) v ) {
    277278        return u.x * v.x + u.y * v.y + u.z * v.z;
    278279    }
    279280
    280     forall(| subtract(T) | multiply(T))
    281     vec3(T) cross(vec3(T) u, vec3(T) v) {
    282         return (vec3(T)){ u.y * v.z - v.y * u.z,
    283                           u.z * v.x - v.z * u.x,
    284                           u.x * v.y - v.x * u.y };
    285     }
    286 
    287     } // static inline
     281    forall( | subtract( T ) | multiply( T ) )
     282                vec3( T ) cross( vec3( T ) u, vec3( T ) v ) {
     283        return ( vec3( T ) ){ u.y * v.z - v.y * u.z,
     284                        u.z * v.x - v.z * u.x,
     285                        u.x * v.y - v.x * u.y };
     286    }
    288287}
    289288
    290 forall(ostype &, T | writeable(T, ostype)) {
    291     ostype & ?|?(ostype & os, vec3(T) v) with (v) {
     289forall( ostype &, T | writeable( T, ostype ) ) {
     290    ostype & ?|?( ostype & os, vec3( T ) v ) with ( v ) {
    292291        return os | '<' | x | ',' | y | ',' | z | '>';
    293292    }
    294         OSTYPE_VOID_IMPL( os, vec3(T) )
     293        OSTYPE_VOID_IMPL( os, vec3( T ) )
    295294}
Note: See TracChangeset for help on using the changeset viewer.