LCOV - code coverage report
Current view: top level - pencil/include/draw - draw_classifier_contour.inl (source / functions) Hit Total Coverage
Test: crystal-facet-uml_v1.56.1_covts Lines: 7 38 18.4 %
Date: 2024-03-23 04:33:35 Functions: 1 3 33.3 %

          Line data    Source code
       1             : /* File: draw_classifier_contour.inl; Copyright and License: see below */
       2             : 
       3             : #include "u8/u8_log.h"
       4             : #include <assert.h>
       5             : 
       6           8 : static inline void draw_classifier_contour_init( draw_classifier_contour_t *this_ )
       7             : {
       8           8 :     (*this_).dummy = 0;  /* prevent warnings on uninitialized usage */
       9             : }
      10             : 
      11             : static inline void draw_classifier_contour_destroy( draw_classifier_contour_t *this_ )
      12             : {
      13             : 
      14             : }
      15             : 
      16         576 : static inline bool draw_classifier_contour_has_contour ( const draw_classifier_contour_t *this_, data_classifier_type_t classifier_type )
      17             : {
      18         576 :     bool no_contour;
      19        1152 :     no_contour = (( DATA_CLASSIFIER_TYPE_ACTOR == classifier_type )
      20         576 :              || ( DATA_CLASSIFIER_TYPE_DYN_INITIAL_NODE == classifier_type )
      21             :              || ( DATA_CLASSIFIER_TYPE_DYN_FINAL_NODE == classifier_type )
      22             :              || ( DATA_CLASSIFIER_TYPE_DYN_FORK_NODE == classifier_type )
      23             :              || ( DATA_CLASSIFIER_TYPE_DYN_JOIN_NODE == classifier_type )
      24             :              || ( DATA_CLASSIFIER_TYPE_DYN_SHALLOW_HISTORY == classifier_type )
      25             :              || ( DATA_CLASSIFIER_TYPE_DYN_DEEP_HISTORY == classifier_type )
      26             :              || ( DATA_CLASSIFIER_TYPE_DYN_ACCEPT_TIME_EVENT == classifier_type )
      27             :              || ( DATA_CLASSIFIER_TYPE_IMAGE == classifier_type ));
      28             : 
      29         576 :     return ( ! no_contour );
      30             : }
      31             : 
      32           0 : static inline void draw_classifier_contour_draw_rect ( const draw_classifier_contour_t *this_,
      33             :                                                        const geometry_rectangle_t *outer_bounds,
      34             :                                                        const pencil_size_t *pencil_size,
      35             :                                                        cairo_t *cr )
      36             : {
      37           0 :     assert ( NULL != outer_bounds );
      38           0 :     assert ( NULL != pencil_size );
      39           0 :     assert ( NULL != cr );
      40           0 :     const double left = geometry_rectangle_get_left ( outer_bounds );
      41           0 :     const double top = geometry_rectangle_get_top ( outer_bounds );
      42           0 :     const double width = geometry_rectangle_get_width ( outer_bounds );
      43           0 :     const double height = geometry_rectangle_get_height ( outer_bounds );
      44           0 :     const double gap = pencil_size_get_standard_object_border( pencil_size );
      45           0 :     cairo_rectangle ( cr, left+gap, top+gap, width-gap-gap, height-gap-gap );
      46           0 :     cairo_stroke (cr);
      47           0 : }
      48             : 
      49           0 : static inline void draw_classifier_contour_draw_cornerless ( const draw_classifier_contour_t *this_,
      50             :                                                              const geometry_rectangle_t *outer_bounds,
      51             :                                                              const pencil_size_t *pencil_size,
      52             :                                                              cairo_t *cr
      53             :                                                            )
      54             : {
      55           0 :     assert ( NULL != outer_bounds );
      56           0 :     assert ( NULL != pencil_size );
      57           0 :     assert ( NULL != cr );
      58           0 :     const double left = geometry_rectangle_get_left ( outer_bounds );
      59           0 :     const double top = geometry_rectangle_get_top ( outer_bounds );
      60           0 :     const double bottom = geometry_rectangle_get_bottom ( outer_bounds );
      61           0 :     const double right = geometry_rectangle_get_right ( outer_bounds );
      62           0 :     const double gap = pencil_size_get_standard_object_border( pencil_size );
      63           0 :     cairo_move_to ( cr, left + 3.0 * gap, top + gap );
      64           0 :     cairo_line_to ( cr, right - 3.0 * gap, top + gap );
      65           0 :     cairo_move_to ( cr, right - gap, top + 3.0 * gap );
      66           0 :     cairo_line_to ( cr, right - gap, bottom - 3.0 * gap );
      67           0 :     cairo_move_to ( cr, right - 3.0 * gap, bottom - gap );
      68           0 :     cairo_line_to ( cr, left + 3.0 * gap, bottom - gap );
      69           0 :     cairo_move_to ( cr, left + gap, bottom - 3.0 * gap );
      70           0 :     cairo_line_to ( cr, left + gap, top + 3.0 * gap );
      71           0 :     cairo_stroke (cr);
      72           0 : }
      73             : 
      74             : 
      75             : /*
      76             : Copyright 2019-2024 Andreas Warnke
      77             : 
      78             : Licensed under the Apache License, Version 2.0 (the "License");
      79             : you may not use this file except in compliance with the License.
      80             : You may obtain a copy of the License at
      81             : 
      82             :     http://www.apache.org/licenses/LICENSE-2.0
      83             : 
      84             : Unless required by applicable law or agreed to in writing, software
      85             : distributed under the License is distributed on an "AS IS" BASIS,
      86             : WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
      87             : See the License for the specific language governing permissions and
      88             : limitations under the License.
      89             : */

Generated by: LCOV version 1.16