Compartilhar via


Classe CD2DGeometry

Um wrapper para ID2D1Geometry.

Sintaxe

class CD2DGeometry : public CD2DResource;

Membros

Construtores públicos

Nome Descrição
CD2DGeometry::CD2DGeometry Constrói um objeto CD2DGeometry.
CD2DGeometry::~CD2DGeometry O destruidor. Chamado quando um objeto de geometria D2D está sendo destruído.

Métodos públicos

Nome Descrição
CD2DGeometry::Attach Anexa a interface de recurso ao objeto
CD2DGeometry::CombineWithGeometry Combina essa geometria com a geometria especificada e armazena o resultado em um ID2D1SimplifiedGeometrySink.
CD2DGeometry::CompareWithGeometry Descreve a interseção entre essa geometria e a geometria especificada. A comparação é executada usando a tolerância de mesclagem especificada.
CD2DGeometry::ComputeArea Calcula a área da geometria depois de ser ela transformada pela matriz especificada e mesclada com a tolerância especificada.
CD2DGeometry::ComputeLength Calcula o comprimento da geometria como se cada segmento fosse distribuído em uma linha.
CD2DGeometry::ComputePointAtLength Calcula o vetor de ponto e tangente na distância especificada ao longo da geometria depois de ter ela sido transformada pela matriz especificada e mesclada usando a tolerância especificada.
CD2DGeometry::Destroy Destrói um objeto CD2DGeometry. (Substitui CD2DResource::Destroy.)
CD2DGeometry::Detach Desanexa a interface do recurso do objeto
CD2DGeometry::FillContainsPoint Indica se a área preenchida pela geometria conteria o ponto especificado, dada a tolerância de mesclagem especificada.
CD2DGeometry::Get Retorna a interface ID2D1Geometry
CD2DGeometry::GetBounds
CD2DGeometry::GetWidenedBounds Obtém os limites da geometria depois que ela foi ampliada pela largura e estilo do traço especificados e transformada pela matriz especificada.
CD2DGeometry::IsValid Verifica a validade do recurso (substitui CD2DResource::IsValid.)
CD2DGeometry::Outline Calcula o contorno da geometria e grava o resultado em um ID2D1SimplifiedGeometrySink.
CD2DGeometry::Simplify Cria uma versão simplificada da geometria que contém apenas linhas e (opcionalmente) curvas cúbicas de Bezier e grava o resultado em um ID2D1SimplifiedGeometrySink.
CD2DGeometry::StrokeContainsPoint Determina se o traço da geometria contém o ponto especificado, dada a espessura, o estilo e a transformação do traço especificados.
CD2DGeometry::Tessellate Cria um conjunto de triângulos enrolados no sentido horário que cobrem a geometria depois que ela foi transformada usando a matriz especificada e planificada usando a tolerância especificada.
CD2DGeometry::Widen Amplia a geometria pelo traço especificado e grava o resultado em um ID2D1SimplifiedGeometrySink depois de ter ela sido transformada pela matriz especificada e mesclada usando a tolerância especificada.

Operadores públicos

Nome Descrição
CD2DGeometry::operator ID2D1Geometry* Retorna a interface ID2D1Geometry

Membros de dados protegidos

Nome Descrição
CD2DGeometry::m_pGeometry Um ponteiro para um ID2D1Geometry.

Hierarquia de herança

CObject

CD2DResource

CD2DGeometry

Requisitos

Cabeçalho: afxrendertarget.h

CD2DGeometry::~CD2DGeometry

O destruidor. Chamado quando um objeto de geometria D2D está sendo destruído.

virtual ~CD2DGeometry();

CD2DGeometry::Attach

Anexa a interface de recurso ao objeto

void Attach(ID2D1Geometry* pResource);

Parâmetros

pResource
Interface de recurso existente. Não pode ser NULL

CD2DGeometry::CD2DGeometry

Constrói um objeto CD2DGeometry.

CD2DGeometry(
    CRenderTarget* pParentTarget,
    BOOL bAutoDestroy = TRUE);

Parâmetros

pParentTarget
Um ponteiro para o destino de renderização.

bAutoDestroy
Indica que o objeto será destruído pelo proprietário (pParentTarget).

CD2DGeometry::CombineWithGeometry

Combina essa geometria com a geometria especificada e armazena o resultado em um ID2D1SimplifiedGeometrySink.

BOOL CombineWithGeometry(
    CD2DGeometry& inputGeometry,
    D2D1_COMBINE_MODE combineMode,
    const D2D1_MATRIX_3X2_F& inputGeometryTransform,
    ID2D1SimplifiedGeometrySink* geometrySink,
    FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;

Parâmetros

inputGeometry
A geometria a ser combinada com essa instância.

combineMode
O tipo de operação de combinação a ser executada.

inputGeometryTransform
A transformação a ser aplicada a inputGeometry antes de fazer a combinação.

geometrySink
O resultado da operação de combinação.

flatteningTolerance
Os limites máximos na distância entre pontos na aproximação poligonal das geometrias. Valores menores produzem resultados mais precisos, mas causam a execução lenta.

Valor de retorno

Se o método for bem-sucedido, retornará TRUE. Caso contrário, retornará FALSE.

CD2DGeometry::CompareWithGeometry

Descreve a interseção entre essa geometria e a geometria especificada. A comparação é executada usando a tolerância de mesclagem especificada.

D2D1_GEOMETRY_RELATION CompareWithGeometry(
    CD2DGeometry& inputGeometry,
    const D2D1_MATRIX_3X2_F& inputGeometryTransform,
    FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;

Parâmetros

inputGeometry
A geometria a ser testada.

inputGeometryTransform
A transformação a ser aplicada à inputGeometry.

flatteningTolerance
Os limites máximos na distância entre pontos na aproximação poligonal das geometrias. Valores menores produzem resultados mais precisos, mas causam a execução lenta.

Valor de retorno

Se o método for bem-sucedido, retornará TRUE. Caso contrário, retornará FALSE.

CD2DGeometry::ComputeArea

Calcula a área da geometria depois de ser ela transformada pela matriz especificada e mesclada com a tolerância especificada.

BOOL ComputeArea(
    const D2D1_MATRIX_3X2_F& worldTransform,
    FLOAT& area,
    FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;

Parâmetros

worldTransform
A transformação a ser aplicada a essa geometria antes de calcular sua área.

area
Quando esse método retorna, contém um ponteiro para a área da versão transformada e mesclada dessa geometria. Você deve alocar armazenamento para esse parâmetro.

flatteningTolerance
Os limites máximos na distância entre pontos na aproximação poligonal da geometria. Valores menores produzem resultados mais precisos, mas causam a execução lenta.

Valor de retorno

Se o método for bem-sucedido, retornará TRUE. Caso contrário, retornará FALSE.

CD2DGeometry::ComputeLength

Calcula o comprimento da geometria como se cada segmento fosse distribuído em uma linha.

BOOL ComputeLength(
    const D2D1_MATRIX_3X2_F& worldTransform,
    FLOAT& length,
    FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;

Parâmetros

worldTransform
A transformação a ser aplicada à geometria antes de calcular seu comprimento.

length
Quando esse método retorna, contém um ponteiro para o comprimento da geometria. Para geometrias fechadas, o comprimento inclui um segmento de fechamento implícito. Você deve alocar armazenamento para esse parâmetro.

flatteningTolerance
Os limites máximos na distância entre pontos na aproximação poligonal da geometria. Valores menores produzem resultados mais precisos, mas causam a execução lenta.

Valor de retorno

Se o método for bem-sucedido, retornará TRUE. Caso contrário, retornará FALSE.

CD2DGeometry::ComputePointAtLength

Calcula o vetor de ponto e tangente na distância especificada ao longo da geometria depois de ter ela sido transformada pela matriz especificada e mesclada usando a tolerância especificada.

BOOL ComputePointAtLength(
    FLOAT length,
    const D2D1_MATRIX_3X2_F& worldTransform,
    CD2DPointF& point,
    CD2DPointF& unitTangentVector,
    FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;

Parâmetros

length
A distância ao longo da geometria do ponto e tangente a ser encontrada. Se essa distância for menor que 0, esse método calculará o primeiro ponto na geometria. Se essa distância for maior que o comprimento da geometria, esse método calculará o último ponto na geometria.

worldTransform
A transformação a ser aplicada à geometria antes de calcular o ponto e a tangente especificados.

point
O local na distância especificada ao longo da geometria. Se a geometria estiver vazia, esse ponto conterá NaN como seus valores x e y.

unitTangentVector
Quando esse método retorna, contém um ponteiro para o vetor da tangente na distância especificada ao longo da geometria. Se a geometria estiver vazia, esse vetor conterá NaN como seus valores x e y. Você deve alocar armazenamento para esse parâmetro.

flatteningTolerance
Os limites máximos na distância entre pontos na aproximação poligonal da geometria. Valores menores produzem resultados mais precisos, mas causam a execução lenta.

Valor de retorno

Se o método for bem-sucedido, retornará TRUE. Caso contrário, retornará FALSE.

CD2DGeometry::Destroy

Destrói um objeto CD2DGeometry.

virtual void Destroy();

CD2DGeometry::Detach

Desanexa a interface do recurso do objeto

ID2D1Geometry* Detach();

Valor de retorno

Ponteiro para a interface de recurso desanexada.

CD2DGeometry::FillContainsPoint

Indica se a área preenchida pela geometria conteria o ponto especificado, dada a tolerância de mesclagem especificada.

BOOL FillContainsPoint(
    CD2DPointF point,
    const D2D1_MATRIX_3X2_F& worldTransform,
    BOOL* contains,
    FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;

Parâmetros

point
O ponto a ser testado.

worldTransform
A transformação a ser aplicada à geometria antes do teste de independência.

contains
Quando esse método retorna, contém um valor booliano que é TRUE se a área preenchida pela geometria contiver ponto; caso contrário, FALSE. Você deve alocar armazenamento para esse parâmetro.

flatteningTolerance
A precisão numérica com a qual o caminho geométrico preciso e a interseção de caminho são calculados. Pontos faltando o preenchimento por menos do que a tolerância ainda são considerados dentro. Valores menores produzem resultados mais precisos, mas causam a execução lenta.

Valor de retorno

Se o método for bem-sucedido, retornará TRUE. Caso contrário, retornará FALSE.

CD2DGeometry::Get

Retorna a interface ID2D1Geometry

ID2D1Geometry* Get();

Valor de retorno

Ponteiro para uma interface ID2D1Geometry ou NULL se o objeto ainda não estiver inicializado.

CD2DGeometry::GetBounds

BOOL GetBounds(
const D2D1_MATRIX_3X2_F& worldTransform,
CD2DRectF& bounds) const;

Parâmetros

worldTransform
bounds

Valor de retorno

CD2DGeometry::GetWidenedBounds

Obtém os limites da geometria depois que ela foi ampliada pela largura e estilo do traço especificados e transformada pela matriz especificada.

BOOL GetWidenedBounds(
    FLOAT strokeWidth,
    ID2D1StrokeStyle* strokeStyle,
    const D2D1_MATRIX_3X2_F& worldTransform,
    CD2DRectF& bounds,
    FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;

Parâmetros

strokeWidth
A quantidade pela qual ampliar a geometria traçando seu contorno.

strokeStyle
O estilo do traço que amplia a geometria.

worldTransform
Uma transformação a ser aplicada à geometria depois que ela for transformada e depois ela for traçada.

bounds
Quando esse método retorna, contém os limites da geometria ampliada. Você deve alocar armazenamento para esse parâmetro.

flatteningTolerance
Os limites máximos na distância entre pontos na aproximação poligonal das geometrias. Valores menores produzem resultados mais precisos, mas causam a execução lenta.

Valor de retorno

Se o método for bem-sucedido, retornará TRUE. Caso contrário, retornará FALSE.

CD2DGeometry::IsValid

Verifica a validade do recurso

virtual BOOL IsValid() const;

Valor de retorno

TRUE se o recurso for válido; caso contrário, FALSE.

CD2DGeometry::m_pGeometry

Um ponteiro para um ID2D1Geometry.

ID2D1Geometry* m_pGeometry;

CD2DGeometry::operator ID2D1Geometry*

Retorna a interface ID2D1Geometry

operator ID2D1Geometry*();

Valor de retorno

Ponteiro para uma interface ID2D1Geometry ou NULL se o objeto ainda não estiver inicializado.

CD2DGeometry::Outline

Calcula o contorno da geometria e grava o resultado em um ID2D1SimplifiedGeometrySink.

BOOL Outline(
    const D2D1_MATRIX_3X2_F& worldTransform,
    ID2D1SimplifiedGeometrySink* geometrySink,
    FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;

Parâmetros

worldTransform
A transformação a ser aplicada ao contorno da geometria.

geometrySink
O ID2D1SimplifiedGeometrySink ao qual o contorno transformado da geometria é acrescentado.

flatteningTolerance
Os limites máximos na distância entre pontos na aproximação poligonal da geometria. Valores menores produzem resultados mais precisos, mas causam a execução lenta.

Valor de retorno

Se o método for bem-sucedido, retornará TRUE. Caso contrário, retornará FALSE.

CD2DGeometry::Simplify

Cria uma versão simplificada da geometria que contém apenas linhas e (opcionalmente) curvas cúbicas de Bezier e grava o resultado em um ID2D1SimplifiedGeometrySink.

BOOL Simplify(
    D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption,
    const D2D1_MATRIX_3X2_F& worldTransform,
    ID2D1SimplifiedGeometrySink* geometrySink,
    FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;

Parâmetros

simplificationOption
Um valor que especifica se a geometria simplificada deve conter curvas.

worldTransform
A transformação a ser aplicada à geometria simplificada.

geometrySink
O ID2D1SimplifiedGeometrySink ao qual a geometria simplificada é acrescentada.

flatteningTolerance
Os limites máximos na distância entre pontos na aproximação poligonal da geometria. Valores menores produzem resultados mais precisos, mas causam a execução lenta.

Valor de retorno

Se o método for bem-sucedido, retornará TRUE. Caso contrário, retornará FALSE.

CD2DGeometry::StrokeContainsPoint

Determina se o traço da geometria contém o ponto especificado, dada a espessura, o estilo e a transformação do traço especificados.

BOOL StrokeContainsPoint(
    CD2DPointF point,
    FLOAT strokeWidth,
    ID2D1StrokeStyle* strokeStyle,
    const D2D1_MATRIX_3X2_F& worldTransform,
    BOOL* contains,
    FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;

Parâmetros

point
O ponto a ser testado quanto ao confinamento.

strokeWidth
A espessura do traço a ser aplicado.

strokeStyle
O estilo do traço a ser aplicado.

worldTransform
A transformação a ser aplicada à geometria traçada.

contains
Quando esse método retorna, contém um valor booliano definido como TRUE se o traço da geometria contiver o ponto especificado; caso contrário, FALSE. Você deve alocar armazenamento para esse parâmetro.

flatteningTolerance
A precisão numérica com a qual o caminho geométrico preciso e a interseção de caminho são calculados. Pontos que não têm o traço por menos do que a tolerância ainda são considerados dentro. Valores menores produzem resultados mais precisos, mas causam a execução lenta.

Valor de retorno

Se o método for bem-sucedido, retornará TRUE. Caso contrário, retornará FALSE.

CD2DGeometry::Tessellate

Cria um conjunto de triângulos enrolados no sentido horário que cobrem a geometria depois que ela foi transformada usando a matriz especificada e planificada usando a tolerância especificada.

BOOL Tessellate(
    const D2D1_MATRIX_3X2_F& worldTransform,
    ID2D1TessellationSink* tessellationSink,
    FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;

Parâmetros

worldTransform
A transformação a ser aplicada a essa geometria ou NULL.

tessellationSink
O ID2D1TessellationSink ao qual o conjunto é acrescentado.

flatteningTolerance
Os limites máximos na distância entre pontos na aproximação poligonal da geometria. Valores menores produzem resultados mais precisos, mas causam a execução lenta.

Valor de retorno

Se o método for bem-sucedido, retornará TRUE. Caso contrário, retornará FALSE.

CD2DGeometry::Widen

Amplia a geometria pelo traço especificado e grava o resultado em um ID2D1SimplifiedGeometrySink depois de ter ela sido transformada pela matriz especificada e mesclada usando a tolerância especificada.

BOOL Widen(
    FLOAT strokeWidth,
    ID2D1StrokeStyle* strokeStyle,
    const D2D1_MATRIX_3X2_F& worldTransform,
    ID2D1SimplifiedGeometrySink* geometrySink,
    FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;

Parâmetros

strokeWidth
A quantidade pela qual ampliar a geometria.

strokeStyle
O estilo de traço a ser aplicado à geometria ou NULL.

worldTransform
A transformação a ser aplicada à geometria depois de ampliá-la.

geometrySink
O ID2D1SimplifiedGeometrySink ao qual a geometria ampliada é acrescentada.

flatteningTolerance
Os limites máximos na distância entre pontos na aproximação poligonal da geometria. Valores menores produzem resultados mais precisos, mas causam a execução lenta.

Valor de retorno

Se o método for bem-sucedido, retornará TRUE. Caso contrário, retornará FALSE.

Confira também

Classes