Condividi tramite


Classe CD2DGeometry

Wrapper per ID2D1Geometry.

Sintassi

class CD2DGeometry : public CD2DResource;

Membri

Costruttori pubblici

Nome Descrizione
CD2DGeometry::CD2DGeometry Costruisce un oggetto CD2DGeometry.
CD2DGeometry::~CD2DGeometry Distruttore. Chiamato quando un oggetto geometry D2D viene eliminato definitivamente.

Metodi pubblici

Nome Descrizione
CD2DGeometry::Attach Collega l'interfaccia di risorsa esistente all'oggetto
CD2DGeometry::CombineWithGeometry Combina questa geometria con la geometria specificata e archivia il risultato in un ID2D1SimplifiedGeometrySink.
CD2DGeometry::CompareWithGeometry Descrive l'intersezione tra questa geometria e la geometria specificata. Il confronto viene eseguito utilizzando la tolleranza flat specificata.
CD2DGeometry::ComputeArea Calcola l'area della geometria dopo che è stata trasformata dalla matrice specificata e appiattita usando la tolleranza specificata.
CD2DGeometry::ComputeLength Calcola la lunghezza della geometria come se ogni segmento fosse stato decomilato in una linea.
CD2DGeometry::ComputePointAtLength Calcola il vettore di punto e tangente alla distanza specificata lungo la geometria dopo che è stata trasformata dalla matrice specificata e appiattita utilizzando la tolleranza specificata.
CD2DGeometry::D estroy Elimina definitivamente un oggetto CD2DGeometry. (sostituzioni )CD2DResource::D estroy.
CD2DGeometry::D etach Scollega l'interfaccia della risorsa dall'oggetto
CD2DGeometry::FillContainsPoint Indica se l'area riempita dalla geometria conterrà il punto specificato in base alla tolleranza di flattening specificata.
CD2DGeometry::Get Restituisce l'interfaccia ID2D1Geometry
CD2DGeometry::GetBounds
CD2DGeometry::GetWidenedBounds Ottiene i limiti della geometria dopo che è stata ampliata in base alla larghezza e allo stile del tratto specificati e trasformati dalla matrice specificata.
CD2DGeometry::IsValid Verifica la validità della risorsa (esegue l'override di CD2DResource::IsValid).
CD2DGeometry::Outline Calcola la struttura della geometria e scrive il risultato in un ID2D1SimplifiedGeometrySink.
CD2DGeometry::Simplify Crea una versione semplificata della geometria che contiene solo linee e (facoltativamente) curve di Bézier cubiche e scrive il risultato in un ID2D1SimplifiedGeometrySink.
CD2DGeometry::StrokeContainsPoint Determina se il tratto della geometria contiene il punto specificato in base allo spessore, allo stile e alla trasformazione del tratto specificati.
CD2DGeometry::Tessellate Crea un set di triangoli a ferita in senso orario che coprono la geometria dopo che è stata trasformata utilizzando la matrice specificata e appiattita utilizzando la tolleranza specificata.
CD2DGeometry::Widen Estende la geometria in base al tratto specificato e scrive il risultato in un ID2D1SimplifiedGeometrySink dopo che è stato trasformato dalla matrice specificata e appiattito usando la tolleranza specificata.

Operatori pubblici

Nome Descrizione
CD2DGeometry::operator ID2D1Geometry* Restituisce l'interfaccia ID2D1Geometry

Membri dati protetti

Nome Descrizione
CD2DGeometry::m_pGeometry Puntatore a un ID2D1Geometry.

Gerarchia di ereditarietà

CObject

CD2DResource

CD2DGeometry

Requisiti

Intestazione: afxrendertarget.h

CD2DGeometry::~CD2DGeometry

Distruttore. Chiamato quando un oggetto geometry D2D viene eliminato definitivamente.

virtual ~CD2DGeometry();

CD2DGeometry::Attach

Collega l'interfaccia di risorsa esistente all'oggetto

void Attach(ID2D1Geometry* pResource);

Parametri

pResource
Interfaccia della risorsa esistente. Non può essere NULL

CD2DGeometry::CD2DGeometry

Costruisce un oggetto CD2DGeometry.

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

Parametri

pParentTarget
Puntatore alla destinazione di rendering.

bAutoDestroy
Indica che l'oggetto verrà eliminato definitivamente dal proprietario (pParentTarget).

CD2DGeometry::CombineWithGeometry

Combina questa geometria con la geometria specificata e archivia il risultato in un ID2D1SimplifiedGeometrySink.

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

Parametri

inputGeometry
Geometria da combinare con questa istanza.

combineMode
Tipo di operazione di combinazione da eseguire.

inputGeometryTransform
Trasformazione da applicare a inputGeometry prima della combinazione.

geometrySink
Risultato dell'operazione di combinazione.

flatteningTolerance
Limiti massimi sulla distanza tra i punti nell'approssimazione poligonale delle geometrie. I valori più piccoli producono risultati più accurati, ma causano un'esecuzione più lenta.

Valore restituito

Se il metodo ha esito positivo, restituisce TRUE. In caso contrario, restituisce FALSE.

CD2DGeometry::CompareWithGeometry

Descrive l'intersezione tra questa geometria e la geometria specificata. Il confronto viene eseguito utilizzando la tolleranza flat specificata.

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

Parametri

inputGeometry
Geometria da testare.

inputGeometryTransform
Trasformazione da applicare a inputGeometry.

flatteningTolerance
Limiti massimi sulla distanza tra i punti nell'approssimazione poligonale delle geometrie. I valori più piccoli producono risultati più accurati, ma causano un'esecuzione più lenta.

Valore restituito

Se il metodo ha esito positivo, restituisce TRUE. In caso contrario, restituisce FALSE.

CD2DGeometry::ComputeArea

Calcola l'area della geometria dopo che è stata trasformata dalla matrice specificata e appiattita usando la tolleranza specificata.

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

Parametri

worldTransform
Trasformazione da applicare a questa geometria prima di calcolarne l'area.

area
Quando termina, questo metodo contiene un puntatore all'area della versione trasformata e bidimensionale di questa geometria. È necessario allocare spazio di archiviazione per questo parametro.

flatteningTolerance
Limiti massimi sulla distanza tra i punti nell'approssimazione poligonale della geometria. I valori più piccoli producono risultati più accurati, ma causano un'esecuzione più lenta.

Valore restituito

Se il metodo ha esito positivo, restituisce TRUE. In caso contrario, restituisce FALSE.

CD2DGeometry::ComputeLength

Calcola la lunghezza della geometria come se ogni segmento fosse stato decomilato in una linea.

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

Parametri

worldTransform
Trasformazione da applicare alla geometria prima di calcolarne la lunghezza.

length
Quando termina, questo metodo contiene un puntatore alla lunghezza della geometria. Per le geometrie chiuse, la lunghezza include un segmento di chiusura implicito. È necessario allocare spazio di archiviazione per questo parametro.

flatteningTolerance
Limiti massimi sulla distanza tra i punti nell'approssimazione poligonale della geometria. I valori più piccoli producono risultati più accurati, ma causano un'esecuzione più lenta.

Valore restituito

Se il metodo ha esito positivo, restituisce TRUE. In caso contrario, restituisce FALSE.

CD2DGeometry::ComputePointAtLength

Calcola il vettore di punto e tangente alla distanza specificata lungo la geometria dopo che è stata trasformata dalla matrice specificata e appiattita utilizzando la tolleranza specificata.

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

Parametri

length
Distanza lungo la geometria del punto e della tangente da trovare. Se questa distanza è minore di 0, questo metodo calcola il primo punto della geometria. Se questa distanza è maggiore della lunghezza della geometria, questo metodo calcola l'ultimo punto nella geometria.

worldTransform
Trasformazione da applicare alla geometria prima di calcolare il punto e la tangente specificati.

point
Posizione in corrispondenza della distanza specificata lungo la geometria. Se la geometria è vuota, questo punto contiene NaN come valori x e y.

unitTangentVector
Quando termina, questo metodo contiene un puntatore al vettore tangente alla distanza specificata lungo la geometria. Se la geometria è vuota, questo vettore contiene NaN come valori x e y. È necessario allocare spazio di archiviazione per questo parametro.

flatteningTolerance
Limiti massimi sulla distanza tra i punti nell'approssimazione poligonale della geometria. I valori più piccoli producono risultati più accurati, ma causano un'esecuzione più lenta.

Valore restituito

Se il metodo ha esito positivo, restituisce TRUE. In caso contrario, restituisce FALSE.

CD2DGeometry::D estroy

Elimina definitivamente un oggetto CD2DGeometry.

virtual void Destroy();

CD2DGeometry::D etach

Scollega l'interfaccia della risorsa dall'oggetto

ID2D1Geometry* Detach();

Valore restituito

Puntatore all'interfaccia della risorsa scollegata.

CD2DGeometry::FillContainsPoint

Indica se l'area riempita dalla geometria conterrà il punto specificato in base alla tolleranza di flattening specificata.

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

Parametri

point
Punto da testare.

worldTransform
Trasformazione da applicare alla geometria prima di testare il contenimento.

contains
Quando termina, questo metodo contiene un valore bool true se l'area riempita dalla geometria contiene il punto; in caso contrario, FALSE. È necessario allocare spazio di archiviazione per questo parametro.

flatteningTolerance
Accuratezza numerica con cui viene calcolato il percorso geometrico preciso e l'intersezione del percorso. I punti in cui manca il riempimento di meno della tolleranza vengono comunque considerati all'interno. I valori più piccoli producono risultati più accurati, ma causano un'esecuzione più lenta.

Valore restituito

Se il metodo ha esito positivo, restituisce TRUE. In caso contrario, restituisce FALSE.

CD2DGeometry::Get

Restituisce l'interfaccia ID2D1Geometry

ID2D1Geometry* Get();

Valore restituito

Puntatore a un'interfaccia ID2D1Geometry o NULL se l'oggetto non è ancora inizializzato.

CD2DGeometry::GetBounds

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

Parametri

worldTransform
Limiti

Valore restituito

CD2DGeometry::GetWidenedBounds

Ottiene i limiti della geometria dopo che è stata ampliata in base alla larghezza e allo stile del tratto specificati e trasformati dalla matrice specificata.

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

Parametri

strokeWidth
Quantità in base alla quale ampliare la geometria accarezzandone il contorno.

strokeStyle
Stile del tratto che estende la geometria.

worldTransform
Trasformazione da applicare alla geometria dopo la trasformazione della geometria e dopo il tratto della geometria.

Limiti
Quando termina, questo metodo contiene i limiti della geometria estesa. È necessario allocare spazio di archiviazione per questo parametro.

flatteningTolerance
Limiti massimi sulla distanza tra i punti nell'approssimazione poligonale delle geometrie. I valori più piccoli producono risultati più accurati, ma causano un'esecuzione più lenta.

Valore restituito

Se il metodo ha esito positivo, restituisce TRUE. In caso contrario, restituisce FALSE.

CD2DGeometry::IsValid

Verifica la validità delle risorse

virtual BOOL IsValid() const;

Valore restituito

TRUE se la risorsa è valida; in caso contrario FALSE.

CD2DGeometry::m_pGeometry

Puntatore a un ID2D1Geometry.

ID2D1Geometry* m_pGeometry;

CD2DGeometry::operator ID2D1Geometry*

Restituisce l'interfaccia ID2D1Geometry

operator ID2D1Geometry*();

Valore restituito

Puntatore a un'interfaccia ID2D1Geometry o NULL se l'oggetto non è ancora inizializzato.

CD2DGeometry::Outline

Calcola la struttura della geometria e scrive il risultato in un ID2D1SimplifiedGeometrySink.

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

Parametri

worldTransform
Trasformazione da applicare alla struttura geometrica.

geometrySink
ID2D1SimplifiedGeometrySink a cui viene accodato il contorno trasformato dalla geometria.

flatteningTolerance
Limiti massimi sulla distanza tra i punti nell'approssimazione poligonale della geometria. I valori più piccoli producono risultati più accurati, ma causano un'esecuzione più lenta.

Valore restituito

Se il metodo ha esito positivo, restituisce TRUE. In caso contrario, restituisce FALSE.

CD2DGeometry::Simplify

Crea una versione semplificata della geometria che contiene solo linee e (facoltativamente) curve di Bézier cubiche e scrive il risultato in un ID2D1SimplifiedGeometrySink.

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

Parametri

semplificazioneOpzione
Valore che specifica se la geometria semplificata deve contenere curve.

worldTransform
Trasformazione da applicare alla geometria semplificata.

geometrySink
ID2D1SimplifiedGeometrySink a cui viene aggiunta la geometria semplificata.

flatteningTolerance
Limiti massimi sulla distanza tra i punti nell'approssimazione poligonale della geometria. I valori più piccoli producono risultati più accurati, ma causano un'esecuzione più lenta.

Valore restituito

Se il metodo ha esito positivo, restituisce TRUE. In caso contrario, restituisce FALSE.

CD2DGeometry::StrokeContainsPoint

Determina se il tratto della geometria contiene il punto specificato in base allo spessore, allo stile e alla trasformazione del tratto specificati.

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

Parametri

point
Punto da testare per il contenimento.

strokeWidth
Spessore del tratto da applicare.

strokeStyle
Stile del tratto da applicare.

worldTransform
Trasformazione da applicare alla geometria tracciata.

contains
Quando termina, questo metodo contiene un valore booleano impostato su TRUE se il tratto della geometria contiene il punto specificato; in caso contrario, FALSE. È necessario allocare spazio di archiviazione per questo parametro.

flatteningTolerance
Accuratezza numerica con cui viene calcolato il percorso geometrico preciso e l'intersezione del percorso. I punti che mancano il tratto di meno della tolleranza vengono comunque considerati all'interno. I valori più piccoli producono risultati più accurati, ma causano un'esecuzione più lenta.

Valore restituito

Se il metodo ha esito positivo, restituisce TRUE. In caso contrario, restituisce FALSE.

CD2DGeometry::Tessellate

Crea un set di triangoli a ferita in senso orario che coprono la geometria dopo che è stata trasformata utilizzando la matrice specificata e appiattita utilizzando la tolleranza specificata.

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

Parametri

worldTransform
Trasformazione da applicare a questa geometria o NULL.

tassellaturaSink
ID2D1TessellationSink a cui viene accodato il tassellato.

flatteningTolerance
Limiti massimi sulla distanza tra i punti nell'approssimazione poligonale della geometria. I valori più piccoli producono risultati più accurati, ma causano un'esecuzione più lenta.

Valore restituito

Se il metodo ha esito positivo, restituisce TRUE. In caso contrario, restituisce FALSE.

CD2DGeometry::Widen

Estende la geometria in base al tratto specificato e scrive il risultato in un ID2D1SimplifiedGeometrySink dopo che è stato trasformato dalla matrice specificata e appiattito usando la tolleranza specificata.

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

Parametri

strokeWidth
Quantità in base alla quale ampliare la geometria.

strokeStyle
Stile del tratto da applicare alla geometria o NULL.

worldTransform
Trasformazione da applicare alla geometria dopo averlo ampliato.

geometrySink
ID2D1SimplifiedGeometrySink a cui viene aggiunta la geometria estesa.

flatteningTolerance
Limiti massimi sulla distanza tra i punti nell'approssimazione poligonale della geometria. I valori più piccoli producono risultati più accurati, ma causano un'esecuzione più lenta.

Valore restituito

Se il metodo ha esito positivo, restituisce TRUE. In caso contrario, restituisce FALSE.

Vedi anche

Classi