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à
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.