亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? epr_bitmask.h

?? Insar圖像處理軟件
?? H
字號:
/* * $Id: epr_bitmask.h,v 1.1.1.1 2003/03/05 17:36:43 hartmut Exp $ * * Copyright (C) 2002 by Brockmann Consult (info@brockmann-consult.de) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation. This program is distributed in the hope it will * be useful, but WITHOUT ANY WARRANTY; without even the implied warranty * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. */#ifndef EPR_BITMASK_H_INCL#define EPR_BITMASK_H_INCL#ifdef __cplusplusextern "C" {#endif#define FLAG_MASK_NOT_COMPUTED ((ulong) -1)typedef struct EPR_BmTerm               EPR_SBmTerm;typedef struct EPR_BmEvalContext        EPR_SBmEvalContext;typedef struct EPR_BmFlagDataset        EPR_SBmFlagDataset;typedef enum   EPR_BmOpCode             EPR_EBmOpCode;/* private implementations */enum EPR_BmOpCode {    BMT_UNKNOWN = 0,    BMT_REF,    BMT_AND,    BMT_OR,    BMT_NOT};enum EPR_Tok {    BME_UNKNOWN = 0,    BME_EOS,    BME_SPECIAL,    BME_NAME};/** * The <code>EPR_BmTerm</code> structure is the union of structures: * each of them can contain either the subject (operand) for the logic operators * or this operators itself with referd operand(s). Thus they are recursive. * The example of term: <code>flags.WATER or flags.LAND</code> * here: <i>'flags'</i> is a band_name; <i>'WATER'</i> and <i>'LAND'</i> - flag_name's; <i>'or'</i> - logical operator. * * @see EPR_SRaster */struct EPR_BmTerm {    EPR_EBmOpCode op_code;    union {        struct /*BMT_REF*/ {            char* band_name;            char* flag_name;            ulong flag_mask;            EPR_SRaster* flag_raster;        } ref;        struct /*BMT_NOT*/ {            EPR_SBmTerm* arg;        } unary;        struct /*BMT_AND and BMT_OR*/ {            EPR_SBmTerm* arg1;            EPR_SBmTerm* arg2;        } binary;    } op;};/** * The <code>EPR_BmEvalContext</code> structure represents an evaluation context for bitmask * expressions. It is used internally only. * <p> * An instance of this structure holds the product ID, references to all flag datasets * required to evaluate the expression as well as information about the bitmask raster beeing * created. *  * @see EPR_SProductId * @see EPR_SRaster * @see EPR_SPtrArray */      struct EPR_BmEvalContext {    /**     * The ID of the product to which this band belongs to.     */        EPR_SProductId* product_id;     /**     * X-coordinate in pixel co-ordinates (zero-based) of the upper right corner raster.     */     int offset_x;     /**     * Y-coordinate in pixel co-ordinates (zero-based) of the upper right corner raster.     */     int offset_y;    /**     * The result 0/1 bit mask raster for all flag bands     */     EPR_SRaster* bitmask_raster;    /**     * The band_id of flags (can be 0, 1 or 4 - for AATSR)     */     EPR_SPtrArray* flag_band_ids;     /**     * The corresponding 0/1 bit mask raster for each flag bands     */     EPR_SPtrArray* flag_rasters;};/** * Represents a flag-field within a flag-record. *  */struct EPR_BmFlagDataset {    /*The name of bitmask dataset*/    char* name;    /*The value of bitmask dataset (the number of the relevant bit in bitmask)*/    uint bit_index;    /*The description of bitmask dataset*/    char* description;};/** * Creates bit-mask evaluation context * for the given raster and offsets of start corner * * @param product_id the product ID * @param offset_x X-coordinate in pixel co-ordinates (zero-based) of the upper right corner raster to search * @param offset_y Y-coordinate in pixel co-ordinates (zero-based) of the upper right corner raster to search * @param raster the bitmask_raster * * @return bit-mask evaluated context for success, and error code otherwise */EPR_SBmEvalContext* epr_create_bm_eval_context(EPR_SProductId* product_id,                                                int offset_x,                                                int offset_y,                                                EPR_SRaster* raster);/** * Release the memory allocated through a EPR_SBmEvalContext. *  * @param context the bit mask context, if <code>NULL</code> the function *        immediately returns zero. * @return zero for success, an error code otherwise */void epr_free_bm_eval_context(EPR_SBmEvalContext* context);/** * Reads bit-mask pixels of the given product for the given bit-mask expression  * for the given region and and with the given sub-sampling. * * <blockquote> * <p><i>bit-mask-expression :=</i><br> * &nbsp;&nbsp;&nbsp;&nbsp;<i>or-expression</i> * * <p><i>or-expression :=</i><br> * &nbsp;&nbsp;&nbsp;&nbsp;<i>and-expression</i><br> * &nbsp;&nbsp;&nbsp;&nbsp;<i>or-expression</i> <b><code>or</code></b> <i>and-expression</i> * * <p><i>and-expression :=</i><br> * &nbsp;&nbsp;&nbsp;&nbsp;<i>not-expression</i><br> * &nbsp;&nbsp;&nbsp;&nbsp;<i>and-expression</i> <b><code>and</code></b> <i>not-expression</i> * * <p><i>not-expression :=</i><br> * &nbsp;&nbsp;&nbsp;&nbsp;<i>primary-expression</i><br> * &nbsp;&nbsp;&nbsp;&nbsp;<b><code>not</code></b> <i>not-expression</i> * * <p><i>primary-expression :=</i><br> * &nbsp;&nbsp;&nbsp;&nbsp;<i>flag-reference</i><br> * &nbsp;&nbsp;&nbsp;&nbsp;<b><code>(</code></b> <i>bit-mask-expression</i> <b><code>)</code></b> * * <p><i>flag-reference :=</i><br> * &nbsp;&nbsp;&nbsp;&nbsp;<i>dataset-name</i><b><code>.</code></b><i>flag-name</i></b> * </blockquote> * * <p>Where <i>dataset-name</i> and <i>flag-name</i> are names specific for a particular data product. * Names are in general resolved case-insenitively. The parser also accepts an alternate notation for * the boolean operators: * <blockquote> * The <b><code>|</code></b> character for the <b><code>or</code></b> operator,<br> * the <b><code>&</code></b> character for the <b><code>and</code></b> operator and finally<br> * the <b><code>!</code></b> character for the <b><code>not</code></b> operator. * </blockquote> * * @param product_id the product ID * @param bm_expr the bit-mask expression * @param xo X-coordinate in pixel co-ordinates (zero-based) of the upper right corner raster to search * @param yo Y-coordinate in pixel co-ordinates (zero-based) of the upper right corner raster to search * @param raster_width  the width in pixel co-ordinates of the raster to search * @param raster_height the height in pixel co-ordinates of raster to search * @param s_x X-step in pixel co-ordinates to get the next raster to search * @param s_y Y-step in pixel co-ordinates to get the next raster to search * @param raster_buffer [BYTE] the memory buffer to save information was read * * @return zero for success, and error code otherwise */int epr_read_bitmask_data(const EPR_SProductId* product_id,                           const char* bm_expr,                          int xo,                           int yo,                           int raster_width,                           int raster_height,                           int s_x,                           int s_y,                           void* raster_buffer);/** * Evaluates the given bitmask expression. * * @param term the bitmask term * @param x the x co-ordinate in pixels * @param y the y co-ordinate in pixels */boolean epr_eval_bm_term(EPR_SBmEvalContext* context,                          EPR_SBmTerm* term,                          int x,                          int y);/** * Parses a bitmask expression string. * * <p>The bit-mask expressions recognized by this parser must have the following syntax: * * <blockquote> * <p><i>bit-mask-expression :=</i><br> * &nbsp;&nbsp;&nbsp;&nbsp;<i>or-expression</i> * * <p><i>or-expression :=</i><br> * &nbsp;&nbsp;&nbsp;&nbsp;<i>and-expression</i><br> * &nbsp;&nbsp;&nbsp;&nbsp;<i>or-expression</i> <b><code>or</code></b> <i>and-expression</i> * * <p><i>and-expression :=</i><br> * &nbsp;&nbsp;&nbsp;&nbsp;<i>not-expression</i><br> * &nbsp;&nbsp;&nbsp;&nbsp;<i>and-expression</i> <b><code>and</code></b> <i>not-expression</i> * * <p><i>not-expression :=</i><br> * &nbsp;&nbsp;&nbsp;&nbsp;<i>primary-expression</i><br> * &nbsp;&nbsp;&nbsp;&nbsp;<b><code>not</code></b> <i>not-expression</i> * * <p><i>primary-expression :=</i><br> * &nbsp;&nbsp;&nbsp;&nbsp;<i>flag-reference</i><br> * &nbsp;&nbsp;&nbsp;&nbsp;<b><code>(</code></b> <i>bit-mask-expression</i> <b><code>)</code></b> * * <p><i>flag-reference :=</i><br> * &nbsp;&nbsp;&nbsp;&nbsp;<i>dataset-name</i><b><code>.</code></b><i>flag-name</i></b> * </blockquote> * * <p>Where <i>dataset-name</i> and <i>flag-name</i> are names specific for a particular data product. * Names are in general resolved case-insenitively. The parser also accepts an alternate notation for * the boolean operators: * <blockquote> * The <b><code>|</code></b> character for the <b><code>or</code></b> operator,<br> * the <b><code>&</code></b> character for the <b><code>and</code></b> operator and finally<br> * the <b><code>!</code></b> character for the <b><code>not</code></b> operator. * </blockquote> * * <p>For example, the following parseBitmaskExpression request will perform without errors: * <pre> *     BitmaskTerm term = BitmaskExpressionParser.parse("flags.LAND and not flags.DDV"); * </pre> * <p>Another example for a valid expression in alternatate notation is: * <pre> *     BitmaskTerm term = BitmaskExpressionParser.parse("flags.LAND | (flags.COASTLINE & !flags.CLOUD)"); * </pre> * * <p>The terms created in the examples above could successfully be evaluated in an evaluation context * provided by an ENVISAT MERIS Level 2 data product. * * @param bm_expr the bitmask expression * @return the bitmask term representing the given expression */EPR_SBmTerm* epr_parse_bm_expr_str(const char* bm_expr);struct EPR_ParseInfo {    const char* bm_expr;    int bm_expr_pos;    boolean pushed_back;    int token_type;    char* token;    char* err_message;};typedef struct EPR_ParseInfo EPR_SParseInfo;/**  * This group of functions is for parsing the expression.  * * @param parse_info parse_info structure * @param term_required the boolean value expression. * * @return the bit mask term (see EPR_BmTerm). *//*@{*/ EPR_SBmTerm* epr_parse_bm_expr(EPR_SParseInfo* parse_info, boolean term_required);EPR_SBmTerm* epr_parse_bm_OR_expr(EPR_SParseInfo* parse_info, boolean term_required);EPR_SBmTerm* epr_parse_bm_AND_expr(EPR_SParseInfo* parse_info, boolean term_required);EPR_SBmTerm* epr_parse_bm_unary_expr(EPR_SParseInfo* parse_info, boolean term_required);EPR_SBmTerm* epr_parse_bm_primary_expr(EPR_SParseInfo* parse_info, boolean term_required);/*@}*//**  * This group of functions is for recognizing the keyword.  * * @param parse_info parse_info structure * * @return TRUE or FALSE. *//*@{*/ boolean epr_is_bm_OR_keyword(EPR_SParseInfo* parse_info);boolean epr_is_bm_AND_keyword(EPR_SParseInfo* parse_info);boolean epr_is_bm_NOT_keyword(EPR_SParseInfo* parse_info);/*@}*//**  * This group of functions is for recognizing the operator.  * * @param parse_info parse_info structure * * @return TRUE or FALSE. *//*@{*/ boolean epr_is_bm_AND_operator(EPR_SParseInfo* parse_info);boolean epr_is_bm_OR_operator(EPR_SParseInfo* parse_info);boolean epr_is_bm_NOT_operator(EPR_SParseInfo* parse_info);/*@}*//** * Tests the given expression for operand name only (not operator). * * @param parse_info parse_info structure *  * @return TRUE if the term is not NULL and an operand, or FALSE otherwise */boolean epr_is_bm_name_token(EPR_SParseInfo* parse_info);/** * Tests the given expression for the end of string. * * @param parse_info parse_info structure *  * @return TRUE if the EOS occurs, or FALSE otherwise */boolean epr_is_bm_EOS_token(EPR_SParseInfo* parse_info);/** * Tests the given expression for errors. * * @param parse_info parse_info structure *  * @return TRUE if no error occurs, or FALSE otherwise */boolean epr_is_bm_expr_error(EPR_SParseInfo* parse_info);/** * Gets the first character of token for the given expression or EOS. * * @param parse_info parse_info structure *  * @return '(' , ')', '.' , '&' , '|' ,'!', or '\0' otherwise */int epr_get_token_char(EPR_SParseInfo* parse_info);/** * Releases the actual token given expression. * * @param parse_info parse_info structure *  * @return token */char* epr_consume_token(EPR_SParseInfo* parse_info);/** * Selectss the next token given expression. * * @param parse_info parse_info structure */void epr_next_bm_expr_token(EPR_SParseInfo* parse_info);void epr_push_back_bm_expr_token(EPR_SParseInfo* parse_info);void epr_set_bm_expr_error(EPR_SParseInfo* parse_info, const char* message);int epr_tokenize_bm_expr(const char* bm_expr, int* bm_expr_pos, char** token);/** * Creates a new bitmask term instance. */EPR_SBmTerm* epr_create_bm_term(EPR_EBmOpCode op_code);/** * Creates a new bitmask reference term instance. */EPR_SBmTerm* epr_create_bm_REF_term(char* ds_name, char* flag_name);/** * Creates a new bitmask NOT term instance. */EPR_SBmTerm* epr_create_bm_NOT_term(EPR_SBmTerm* arg);/** * Creates a new bitmask OR term instance. */EPR_SBmTerm* epr_create_bm_OR_term(EPR_SBmTerm* arg1, EPR_SBmTerm* arg2);/** * Creates a new bitmask reference AND term instance. */EPR_SBmTerm* epr_create_bm_AND_term(EPR_SBmTerm* arg1, EPR_SBmTerm* arg2);/** * Releases a new bitmask term instance. */void epr_free_bm_term(EPR_SBmTerm* term);/** * Creates a new bitmask expression from the given bitmask term. * <p>The expression returned is a valid in the sense that the epr_parse_bm_expr()  * applied to the returned string would return an equivalent term. * * @param term the term to be converted */char* epr_create_bm_expr(EPR_SBmTerm* term);/** * Prints the given term as an expression to the console. */void epr_print_bm_term(EPR_SBmTerm* term);/** * Writes the given term as an expression to the given output stream. */void epr_write_bm_term(EPR_SBmTerm* term, FILE* ostream);/** * Creates the coding flag info  * * @param str the local path to dddb * * @return the the pointer at the coding flag information. */EPR_SPtrArray* epr_create_flag_coding(EPR_SProductId* product_id, const char* str);/** * Creates the coding flag definition  * * @return the the pointer at the coding flag definition information. */EPR_SFlagDef* epr_create_flag_def();/** * Releases the coding flag definition  */void epr_free_flag_def(EPR_SFlagDef* flag_def);/** * Releases the coding flag info  */void epr_free_flag_coding(EPR_SPtrArray* flag_coding);#ifdef __cplusplus} /* extern "C" */#endif#endif /* #ifndef EPR_BITMASK_H_INCL */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99国产欧美久久久精品| 国产亚洲视频系列| 久久中文字幕电影| 亚洲午夜电影网| 国产高清精品网站| 777午夜精品视频在线播放| 国产精品免费aⅴ片在线观看| 日韩精品电影在线| 91影视在线播放| 久久色成人在线| 蜜臀av一区二区三区| 欧美性淫爽ww久久久久无| 欧美激情在线一区二区| 久久精品国产**网站演员| 欧美日本免费一区二区三区| 中文字幕在线观看不卡| 国产精品18久久久久久久久 | 精品国产麻豆免费人成网站| 亚洲综合成人网| 色av一区二区| 亚洲免费观看视频| 99精品一区二区三区| 国产精品毛片久久久久久| 国产精品综合视频| 久久久www免费人成精品| 麻豆免费看一区二区三区| 欧美剧在线免费观看网站 | 国产精品久久久久影视| 国产一区二区三区免费观看| 日韩女优电影在线观看| 人人精品人人爱| 欧美日韩成人在线| 午夜激情一区二区| 欧美日韩精品一区二区三区蜜桃 | 欧美欧美欧美欧美首页| 亚洲bt欧美bt精品| 欧美精品xxxxbbbb| 免费在线一区观看| 欧美一级片免费看| 狠狠色丁香久久婷婷综合_中| 日韩免费看的电影| 精品一区二区久久久| 精品卡一卡二卡三卡四在线| 国产乱子伦视频一区二区三区| 日韩欧美久久久| 国产精品白丝jk黑袜喷水| 欧美国产禁国产网站cc| 成人av午夜电影| 亚洲精品菠萝久久久久久久| 在线观看精品一区| 日韩av电影免费观看高清完整版在线观看| 欧美日韩精品一区二区三区 | 精品黑人一区二区三区久久| 黄网站免费久久| 国产精品美女久久久久aⅴ| 91视频在线观看| 视频在线观看一区| 久久精品亚洲麻豆av一区二区| 国产高清在线精品| 夜夜爽夜夜爽精品视频| 欧美大片在线观看一区二区| 成人综合激情网| 亚洲va欧美va人人爽| 国产日韩精品视频一区| 色狠狠综合天天综合综合| 免费的国产精品| 国产精品午夜免费| 欧美在线免费观看视频| 国产中文一区二区三区| 亚洲欧美日韩国产综合在线| 在线播放国产精品二区一二区四区| 久久成人免费电影| 悠悠色在线精品| 久久免费看少妇高潮| 欧美最猛黑人xxxxx猛交| 国产精品伊人色| 亚洲二区在线观看| 欧美国产精品一区二区三区| 欧美一区二区视频在线观看2020 | 综合网在线视频| 日韩欧美高清dvd碟片| 一本一本大道香蕉久在线精品 | 欧美视频第二页| 国产成人午夜视频| 三级不卡在线观看| 亚洲欧美激情在线| 欧美极品aⅴ影院| 日韩欧美卡一卡二| 69堂国产成人免费视频| zzijzzij亚洲日本少妇熟睡| 久久福利视频一区二区| 香蕉av福利精品导航| 亚洲精品久久久蜜桃| 国产欧美视频一区二区| 欧美不卡一区二区三区| 欧美写真视频网站| 91福利视频在线| 成人av小说网| 成人动漫一区二区在线| 成人深夜在线观看| 九九视频精品免费| 蜜臀av一级做a爰片久久| 亚洲五码中文字幕| 一区二区三区日韩精品视频| 中文字幕欧美日本乱码一线二线 | 一区二区三区在线观看国产| 国产人成亚洲第一网站在线播放| 日韩午夜电影av| 欧美一区二区三区免费观看视频 | av午夜精品一区二区三区| 国产麻豆视频精品| 国产在线观看一区二区| 久久丁香综合五月国产三级网站| 五月激情综合色| 天天影视涩香欲综合网| 青青草国产成人av片免费| 免费欧美日韩国产三级电影| 天堂影院一区二区| 日本亚洲视频在线| 久久99久久久欧美国产| 韩国女主播成人在线观看| 久久激情五月婷婷| 国产一区欧美二区| 国产毛片一区二区| 成人av网站免费| 色综合天天视频在线观看| 色狠狠色噜噜噜综合网| 欧美性一二三区| 91精品国产综合久久精品麻豆| 日韩欧美三级在线| 欧美国产一区二区在线观看| 国产精品久久久久久久久久久免费看 | 国产乱淫av一区二区三区| 国产传媒日韩欧美成人| 91在线国产观看| 欧美日韩激情在线| 精品国产乱码久久久久久影片| 久久综合999| 亚洲免费观看在线观看| 免费日本视频一区| 成人h版在线观看| 欧美精品在线视频| 久久精品一区二区三区不卡牛牛| 中文字幕中文字幕一区二区| 一区二区三国产精华液| 美国十次综合导航| aaa欧美日韩| 欧美大片顶级少妇| 亚洲欧美一区二区三区国产精品 | 亚洲高清不卡在线| 国产精品一区二区免费不卡 | 成人动漫一区二区三区| 欧美精品久久99久久在免费线 | 欧美极品美女视频| 五月婷婷激情综合| 成人精品免费视频| 91精品国产aⅴ一区二区| 国产精品九色蝌蚪自拍| 美国十次了思思久久精品导航| 99在线精品观看| 欧美大胆人体bbbb| 亚洲免费毛片网站| 福利一区二区在线| 欧美va亚洲va在线观看蝴蝶网| 亚洲免费在线观看视频| 国内国产精品久久| 欧美日韩一区二区三区四区五区| 精品国产一区二区三区久久久蜜月 | 奇米精品一区二区三区四区| 99久久精品一区二区| 精品精品国产高清a毛片牛牛 | 亚洲日穴在线视频| 国产一区亚洲一区| 欧美一级片在线看| 亚洲成精国产精品女| 91免费在线看| 国产精品蜜臀在线观看| 国产激情精品久久久第一区二区 | 精品国产精品网麻豆系列| 亚洲资源中文字幕| 91在线观看高清| 国产欧美日韩在线| 韩国欧美一区二区| 精品少妇一区二区三区在线播放| 亚洲一区二区在线观看视频| 97精品电影院| 亚洲国产精品传媒在线观看| 国产裸体歌舞团一区二区| 日韩女同互慰一区二区| 美国欧美日韩国产在线播放| 欧美日韩情趣电影| 日韩精品亚洲一区二区三区免费| 欧美性xxxxxxxx| 亚洲成人一区二区在线观看| 欧美日韩一区不卡| 午夜精品久久久久久久久| 欧美日韩精品欧美日韩精品一综合| 亚洲一区二区三区国产| 欧美午夜视频网站| 亚洲成av人片一区二区三区|