Macros de comando *

As macros de comando fornecem atalhos nomeados para conjuntos de comandos.

$ *name*$

name Nome da macro

As macros são definidas em arquivos separados de definição de macro, que podem ser anexados a catálogos de materiais ou ao catálogo padrão.

name não diferencia maiúsculas de minúsculas e pode consistir de qualquer combinação de letras ASCII, números , '-', '_' e '.' caracteres.

Chame macros em qualquer lugar em uma solicitação depois de '?' ou em qualquer lugar dentro de um campo vignette::Modifier. As macros só podem representar um ou mais comandos completos de Renderização de Imagem e devem ser separadas de outros comandos com separadores '&'.

As invocações de macro são substituídas por suas sequências de substituição precocemente durante a análise. Os comandos em macros substituem os mesmos comandos na solicitação se ocorrerem antes da chamada de macro na solicitação. Isso é diferente de vignette::Modifier, onde os comandos na cadeia de caracteres de solicitação sempre substituirão os comandos na cadeia de caracteres vignette::Modifier, independentemente da posição na solicitação.

As macros de comando não podem ter valores de argumento, mas variáveis personalizadas podem ser usadas para transmitir valores da solicitação para a macro.

As macros podem não estar aninhadas.

Exemplo

As macros podem ser úteis se os mesmos comandos ou atributos forem aplicados a imagens renderizadas diferentes.

http://server/ir/render/cat/vig0?fmt=jpeg&qlt=80&sharpen=1&src=cat/matA&res=40 http://server/ir/render/cat/vig1?fmt=jpeg&qlt=80&sharpen=1&src=cat/matB&res=40 http://server/ir/render/cat/vig2?fmt=jpeg&qlt=95&sharpen=1&src=cat/matC&res=40

Você pode definir uma macro para os atributos comuns:

render vignette=cat/$vig$&fmt=jpg&qlt=80&sharpen=1&src=cat/$mat$&res=40

A macro seria usada da seguinte maneira:

http://server/ir/render/cat/vig0?$mat=matc&$render$ http://server/ir/render/cat/vig0?$mat=matc&$render$ http://server/ir/render/cat/vig0?$mat=matc&$render$&qlt=95

Como qlt= é diferente para a terceira solicitação, simplesmente substituímos o valor após a macro ser chamada (especificar qlt=before $render$não teria efeito).

Consulte também

catalog::MacroFile, catalog::Modifier, Referência de definição de macro

Nesta página