From 0fafc7385f0836af5dad7373febb5eebc9a66cf0 Mon Sep 17 00:00:00 2001 From: Hans-Joerg Schurr Date: Mon, 9 Aug 2021 22:52:05 +0200 Subject: [PATCH] Add function declarations to inspect shapes (but not transformers) --- src/hvif-light.h | 81 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) diff --git a/src/hvif-light.h b/src/hvif-light.h index 85faf13..f2bd50f 100644 --- a/src/hvif-light.h +++ b/src/hvif-light.h @@ -248,6 +248,87 @@ typedef enum hvif_transformer_type HVIF_TRANSFORMER_TYPE_MAX = 24 } hvif_transformer_type; +/** + * \brief Returns the style used by a shape. + * \param[in] file A valid image. + * \param[in] shape The index of the shape. + * \param[out] style The index of the style. + * \return ERROR_SHAPE if this style does not exist. + */ +hvif_status hvif_shape_style( + hvif_image* image, uint8_t shape, uint8_t* style); + +/** + * \brief Returns the number of paths used by a shape. + * \param[in] file A valid image. + * \param[in] shape The index of the shape. + * \param[out] num_paths The number of paths. + * \return ERROR_SHAPE if this style does not exist. + */ +hvif_status hvif_shape_num_paths( + hvif_image* image, uint8_t shape, uint8_t* num_paths); + +/** + * \brief Returns the index of a path used by a shape. + * \param[in] file A valid image. + * \param[in] shape The index of the shape. + * \param[in] path_idx The index of the path. + * \param[out] path The index of the path. + * \return ERROR_SHAPE if this style or path does not exist. + */ +hvif_status hvif_shape_path( + hvif_image* image, uint8_t shape, uint8_t path_idx, uint8_t* path); + +/** + * \brief Returns if hinting is enabled for this shape. + * \param[in] file A valid image. + * \param[in] shape The index of the shape. + * \param[out] hinting True if hinting es enabled. + * \return ERROR_SHAPE if this style does not exist. + */ +hvif_status hvif_shape_hinting( + hvif_image* image, uint8_t shape, bool* hinting); + +/** + * \brief Returns the transformation applied to a shape. + * \param[in] file A valid image. + * \param[in] shape The index of the shape. + * \param[out] transformation The transformation matrix. + * \return ERROR_SHAPE if this shape does not exist. + */ +hvif_status hvif_shape_transformation( + hvif_image* image, uint8_t shape, hvif_matrix* transformation); + +/** + * \brief Returns minimal visibility distance for this shape. + * \param[in] file A valid image. + * \param[in] shape The index of the shape. + * \param[out] min_visibility The minimal visibility as a scale, 0 if always visible. + * \return ERROR_SHAPE if this style does not exist. + */ +hvif_status hvif_shape_min_visibility( + hvif_image* image, uint8_t shape, float* min_visibility); + +/** + * \brief Returns maximal visibility distance for this shape. + * \param[in] file A valid image. + * \param[in] shape The index of the shape. + * \param[out] max_visibility The maximal visibility as a scale, >=4.0 if always visible. + * \return ERROR_SHAPE if this style does not exist. + */ +hvif_status hvif_shape_max_visibility( + hvif_image* image, uint8_t shape, float* max_visibility); + +/** + * \brief Returns the number of transformers used by a shape. + * \param[in] file A valid image. + * \param[in] shape The index of the shape. + * \param[out] num_transformers The number of transformers. + * \return ERROR_SHAPE if this style does not exist. + */ +hvif_status hvif_shape_num_transformers( + hvif_image* image, uint8_t shape, uint8_t* num_transformers); + /**@}*/ #endif /* HVIF_LIGHT_H */