CD2DGeometry Sınıfı
ID2D1Geometry için bir sarmalayıcı.
class CD2DGeometry : public CD2DResource;
Veri Akışı Adı | Açıklama |
---|---|
CD2DGeometry::CD2DGeometry | CD2DGeometry nesnesi oluşturur. |
CD2DGeometry::~CD2DGeometry | Yok edici. Bir D2D geometri nesnesi yok edilirken çağrılır. |
Veri Akışı Adı | Açıklama |
---|---|
CD2DGeometry::Attach | Var olan kaynak arabirimini nesneye ekler |
CD2DGeometry::CombineWithGeometry | Bu geometriyi belirtilen geometriyle birleştirir ve sonucu bir ID2D1SimplifiedGeometrySink içinde depolar. |
CD2DGeometry::CompareWithGeometry | Bu geometri ile belirtilen geometri arasındaki kesişimi açıklar. Karşılaştırma, belirtilen düzleştirme toleransı kullanılarak gerçekleştirilir. |
CD2DGeometry::ComputeArea | Belirtilen matris tarafından dönüştürüldükten ve belirtilen tolerans kullanılarak düzleştirilmiş geometri alanını hesaplar. |
CD2DGeometry::ComputeLength | Geometrinin uzunluğunu, her segmentin bir çizgiye kaydı kaldırılmış gibi hesaplar. |
CD2DGeometry::ComputePointAtLength | Belirtilen matris tarafından dönüştürüldükten ve belirtilen tolerans kullanılarak düzlendikten sonra geometri boyunca belirtilen mesafedeki nokta ve tanjant vektörünü hesaplar. |
CD2DGeometry::D estroy | CD2DGeometry nesnesini yok eder. (Geçersiz Kılmalar CD2DResource::D estroy.) |
CD2DGeometry::D etach | Kaynak arabirimini nesneden ayırır |
CD2DGeometry::FillContainsPoint | Geometri tarafından doldurulan alanın, belirtilen düzleştirme toleransı verildiğinde belirtilen noktayı içerip içermeyeceğini gösterir. |
CD2DGeometry::Get | ID2D1Geometry arabirimini döndürür |
CD2DGeometry::GetBounds | |
CD2DGeometry::GetWidenedBounds | Belirtilen vuruş genişliği ve stili tarafından genişletildikten ve belirtilen matris tarafından dönüştürüldükten sonra geometrinin sınırlarını alır. |
CD2DGeometry::IsValid | Kaynak geçerliliğini denetler (CD2DResource::IsValid geçersiz kılar.) |
CD2DGeometry::Outline | Geometrinin ana hattını hesaplar ve sonucu bir ID2D1SimplifiedGeometrySink'e yazar. |
CD2DGeometry::Simplify | Geometrinin yalnızca çizgileri ve (isteğe bağlı olarak) bezier küp eğrilerini içeren basitleştirilmiş bir sürümünü oluşturur ve sonucu ID2D1SimplifiedGeometrySink'e yazar. |
CD2DGeometry::StrokeContainsPoint | Geometrinin vuruşunun, belirtilen vuruş kalınlığı, stili ve dönüşümü verilen belirtilen noktayı içerip içermediğini belirler. |
CD2DGeometry::Tessellate | Belirtilen matris kullanılarak dönüştürüldükten ve belirtilen tolerans kullanılarak düzleştirilmiş geometriyi kapsayan saat yönünde yara üçgenleri kümesi oluşturur. |
CD2DGeometry::Widen | Geometriyi belirtilen vuruşa göre genişletip, belirtilen matris tarafından dönüştürüldükten ve belirtilen tolerans kullanılarak düzleştirildikten sonra sonucu ID2D1SimplifiedGeometrySink'e yazar. |
Veri Akışı Adı | Açıklama |
---|---|
CD2DGeometry::operator ID2D1Geometry* | ID2D1Geometry arabirimini döndürür |
Veri Akışı Adı | Açıklama |
---|---|
CD2DGeometry::m_pGeometry | ID2D1Geometry işaretçisi. |
CD2DGeometry
Üst bilgi: afxrendertarget.h
Yok edici. Bir D2D geometri nesnesi yok edilirken çağrılır.
virtual ~CD2DGeometry();
Var olan kaynak arabirimini nesneye ekler
void Attach(ID2D1Geometry* pResource);
pResource
Mevcut kaynak arabirimi. NULL olamaz
CD2DGeometry nesnesi oluşturur.
CD2DGeometry(
CRenderTarget* pParentTarget,
BOOL bAutoDestroy = TRUE);
pParentTarget
İşleme hedefine bir işaretçi.
bAutoDestroy
Nesnenin sahip tarafından yok edildiğini gösterir (pParentTarget).
Bu geometriyi belirtilen geometriyle birleştirir ve sonucu bir ID2D1SimplifiedGeometrySink içinde depolar.
BOOL CombineWithGeometry(
CD2DGeometry& inputGeometry,
D2D1_COMBINE_MODE combineMode,
const D2D1_MATRIX_3X2_F& inputGeometryTransform,
ID2D1SimplifiedGeometrySink* geometrySink,
FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;
inputGeometry
Bu örnekle birleştirecek geometri.
combineMode
Gerçekleştirilecek birleştirme işleminin türü.
inputGeometryTransform
Birleştirmeden önce inputGeometry'ye uygulanacak dönüştürme.
geometrySink
Birleştirme işleminin sonucu.
flatteningTolerance
Geometrilerin çokgen yaklaşık cinsinden noktalar arasındaki uzaklık üzerindeki maksimum sınırdır. Daha küçük değerler daha doğru sonuçlar üretir, ancak yürütmenin yavaşmasına neden olur.
Yöntem başarılı olursa TRUE döndürür. Aksi takdirde YANLIŞ döndürür.
Bu geometri ile belirtilen geometri arasındaki kesişimi açıklar. Karşılaştırma, belirtilen düzleştirme toleransı kullanılarak gerçekleştirilir.
D2D1_GEOMETRY_RELATION CompareWithGeometry(
CD2DGeometry& inputGeometry,
const D2D1_MATRIX_3X2_F& inputGeometryTransform,
FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;
inputGeometry
Test için geometri.
inputGeometryTransform
inputGeometry'ye uygulanacak dönüştürme.
flatteningTolerance
Geometrilerin çokgen yaklaşık cinsinden noktalar arasındaki uzaklık üzerindeki maksimum sınırdır. Daha küçük değerler daha doğru sonuçlar üretir, ancak yürütmenin yavaşmasına neden olur.
Yöntem başarılı olursa TRUE döndürür. Aksi takdirde YANLIŞ döndürür.
Belirtilen matris tarafından dönüştürüldükten ve belirtilen tolerans kullanılarak düzleştirilmiş geometri alanını hesaplar.
BOOL ComputeArea(
const D2D1_MATRIX_3X2_F& worldTransform,
FLOAT& area,
FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;
worldTransform
Alanını hesaplamadan önce bu geometriye uygulanacak dönüşüm.
alan
Bu yöntem döndürdüğünde, bu geometrinin dönüştürülmüş, düzleştirilmiş sürümünün alanına bir işaretçi içerir. Bu parametre için depolama ayırmanız gerekir.
flatteningTolerance
Geometrinin çokgen yaklaşık cinsinden noktaları arasındaki uzaklık üzerindeki maksimum sınırlar. Daha küçük değerler daha doğru sonuçlar üretir, ancak yürütmenin yavaşmasına neden olur.
Yöntem başarılı olursa TRUE döndürür. Aksi takdirde YANLIŞ döndürür.
Geometrinin uzunluğunu, her segmentin bir çizgiye kaydı kaldırılmış gibi hesaplar.
BOOL ComputeLength(
const D2D1_MATRIX_3X2_F& worldTransform,
FLOAT& length,
FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;
worldTransform
Uzunluğunu hesaplamadan önce geometriye uygulanacak dönüştürme.
length
Bu yöntem döndürdüğünde, geometrinin uzunluğuna ilişkin bir işaretçi içerir. Kapalı geometriler için uzunluk örtük bir kapanış segmenti içerir. Bu parametre için depolama ayırmanız gerekir.
flatteningTolerance
Geometrinin çokgen yaklaşık cinsinden noktaları arasındaki uzaklık üzerindeki maksimum sınırlar. Daha küçük değerler daha doğru sonuçlar üretir, ancak yürütmenin yavaşmasına neden olur.
Yöntem başarılı olursa TRUE döndürür. Aksi takdirde YANLIŞ döndürür.
Belirtilen matris tarafından dönüştürüldükten ve belirtilen tolerans kullanılarak düzlendikten sonra geometri boyunca belirtilen mesafedeki nokta ve tanjant vektörünü hesaplar.
BOOL ComputePointAtLength(
FLOAT length,
const D2D1_MATRIX_3X2_F& worldTransform,
CD2DPointF& point,
CD2DPointF& unitTangentVector,
FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;
length
Noktanın geometrisi ve tanjant boyunca bulunan mesafe. Bu uzaklık 0'dan küçükse, bu yöntem geometrideki ilk noktayı hesaplar. Bu uzaklık geometrinin uzunluğundan büyükse, bu yöntem geometrideki son noktayı hesaplar.
worldTransform
Belirtilen nokta ve tanjant hesaplamadan önce geometriye uygulanacak dönüştürme.
nokta
Geometri boyunca belirtilen mesafedeki konum. Geometri boşsa bu nokta, x ve y değerleri olarak NaN içerir.
unitTangentVector
Bu yöntem döndürdüğünde, geometri boyunca belirtilen uzaklıkta tanjant vektöre yönelik bir işaretçi içerir. Geometri boşsa bu vektör, x ve y değerleri olarak NaN içerir. Bu parametre için depolama ayırmanız gerekir.
flatteningTolerance
Geometrinin çokgen yaklaşık cinsinden noktaları arasındaki uzaklık üzerindeki maksimum sınırlar. Daha küçük değerler daha doğru sonuçlar üretir, ancak yürütmenin yavaşmasına neden olur.
Yöntem başarılı olursa TRUE döndürür. Aksi takdirde YANLIŞ döndürür.
CD2DGeometry nesnesini yok eder.
virtual void Destroy();
Kaynak arabirimini nesneden ayırır
ID2D1Geometry* Detach();
Ayrılmış kaynak arabirimi işaretçisi.
Geometri tarafından doldurulan alanın, belirtilen düzleştirme toleransı verildiğinde belirtilen noktayı içerip içermeyeceğini gösterir.
BOOL FillContainsPoint(
CD2DPointF point,
const D2D1_MATRIX_3X2_F& worldTransform,
BOOL* contains,
FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;
nokta
Test etmek için gereken nokta.
worldTransform
Kapsama testi öncesinde geometriye uygulanacak dönüştürme.
Içerir
Bu yöntem döndürdüğünde, geometri tarafından doldurulan alan nokta içeriyorsa TRUE olan bir bool değeri içerir; aksi takdirde YANLIŞ. Bu parametre için depolama ayırmanız gerekir.
flatteningTolerance
Hassas geometrik yol ve yol kesişiminin hesaplandığı sayısal doğruluk. Dolguyu toleranstan daha az eksik olan noktalar yine de içinde dikkate alınır. Daha küçük değerler daha doğru sonuçlar üretir, ancak yürütmenin yavaşmasına neden olur.
Yöntem başarılı olursa TRUE döndürür. Aksi takdirde YANLIŞ döndürür.
ID2D1Geometry arabirimini döndürür
ID2D1Geometry* Get();
Bir ID2D1Geometry arabiriminin işaretçisi veya nesne henüz başlatılmadıysa NULL.
BOOL GetBounds(
const D2D1_MATRIX_3X2_F& worldTransform,
CD2DRectF& bounds) const;
worldTransform
Sınır -ları
Belirtilen vuruş genişliği ve stili tarafından genişletildikten ve belirtilen matris tarafından dönüştürüldükten sonra geometrinin sınırlarını alır.
BOOL GetWidenedBounds(
FLOAT strokeWidth,
ID2D1StrokeStyle* strokeStyle,
const D2D1_MATRIX_3X2_F& worldTransform,
CD2DRectF& bounds,
FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;
strokeWidth
Ana hatlarını kullanarak geometriyi genişletme miktarı.
strokeStyle
Geometriyi genişleten vuruşun stili.
worldTransform
Geometri dönüştürüldükten sonra ve geometri konturlandıktan sonra geometriye uygulanacak bir dönüşüm.
Sınır -ları
Bu yöntem döndürdüğünde, genişletilen geometrinin sınırlarını içerir. Bu parametre için depolama ayırmanız gerekir.
flatteningTolerance
Geometrilerin çokgen yaklaşık cinsinden noktalar arasındaki uzaklık üzerindeki maksimum sınırdır. Daha küçük değerler daha doğru sonuçlar üretir, ancak yürütmenin yavaşmasına neden olur.
Yöntem başarılı olursa TRUE döndürür. Aksi takdirde YANLIŞ döndürür.
Kaynak geçerliliğini denetler
virtual BOOL IsValid() const;
Kaynak geçerliyse TRUE; aksi takdirde YANLIŞ.
ID2D1Geometry işaretçisi.
ID2D1Geometry* m_pGeometry;
ID2D1Geometry arabirimini döndürür
operator ID2D1Geometry*();
Bir ID2D1Geometry arabiriminin işaretçisi veya nesne henüz başlatılmadıysa NULL.
Geometrinin ana hattını hesaplar ve sonucu bir ID2D1SimplifiedGeometrySink'e yazar.
BOOL Outline(
const D2D1_MATRIX_3X2_F& worldTransform,
ID2D1SimplifiedGeometrySink* geometrySink,
FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;
worldTransform
Geometri ana hattına uygulanacak dönüştürme.
geometrySink
Geometrinin dönüştürdüğü ana hattın eklendiği ID2D1SimplifiedGeometrySink.
flatteningTolerance
Geometrinin çokgen yaklaşık cinsinden noktaları arasındaki uzaklık üzerindeki maksimum sınırlar. Daha küçük değerler daha doğru sonuçlar üretir, ancak yürütmenin yavaşmasına neden olur.
Yöntem başarılı olursa TRUE döndürür. Aksi takdirde YANLIŞ döndürür.
Geometrinin yalnızca çizgileri ve (isteğe bağlı olarak) bezier küp eğrilerini içeren basitleştirilmiş bir sürümünü oluşturur ve sonucu ID2D1SimplifiedGeometrySink'e yazar.
BOOL Simplify(
D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption,
const D2D1_MATRIX_3X2_F& worldTransform,
ID2D1SimplifiedGeometrySink* geometrySink,
FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;
simplificationOption
Basitleştirilmiş geometrinin eğriler içerip içermediğini belirten bir değer.
worldTransform
Basitleştirilmiş geometriye uygulanacak dönüştürme.
geometrySink
Basitleştirilmiş geometrinin eklendiği ID2D1SimplifiedGeometrySink.
flatteningTolerance
Geometrinin çokgen yaklaşık cinsinden noktaları arasındaki uzaklık üzerindeki maksimum sınırlar. Daha küçük değerler daha doğru sonuçlar üretir, ancak yürütmenin yavaşmasına neden olur.
Yöntem başarılı olursa TRUE döndürür. Aksi takdirde YANLIŞ döndürür.
Geometrinin vuruşunun, belirtilen vuruş kalınlığı, stili ve dönüşümü verilen belirtilen noktayı içerip içermediğini belirler.
BOOL StrokeContainsPoint(
CD2DPointF point,
FLOAT strokeWidth,
ID2D1StrokeStyle* strokeStyle,
const D2D1_MATRIX_3X2_F& worldTransform,
BOOL* contains,
FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;
nokta
Kapsama için test edilmesi gereken nokta.
strokeWidth
Uygulanacak vuruşun kalınlığı.
strokeStyle
Uygulanacak vuruşun stili.
worldTransform
Vuruşlu geometriye uygulanacak dönüştürme.
Içerir
Bu yöntem döndürdüğünde, geometrinin vuruşu belirtilen noktayı içeriyorsa TRUE olarak ayarlanmış bir boole değeri içerir; aksi takdirde YANLIŞ. Bu parametre için depolama ayırmanız gerekir.
flatteningTolerance
Hassas geometrik yol ve yol kesişiminin hesaplandığı sayısal doğruluk. Vuruşu toleranstan daha az eksik olan noktalar yine de içinde dikkate alınır. Daha küçük değerler daha doğru sonuçlar üretir, ancak yürütmenin yavaşmasına neden olur.
Yöntem başarılı olursa TRUE döndürür. Aksi takdirde YANLIŞ döndürür.
Belirtilen matris kullanılarak dönüştürüldükten ve belirtilen tolerans kullanılarak düzleştirilmiş geometriyi kapsayan saat yönünde yara üçgenleri kümesi oluşturur.
BOOL Tessellate(
const D2D1_MATRIX_3X2_F& worldTransform,
ID2D1TessellationSink* tessellationSink,
FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;
worldTransform
Bu geometriye uygulanacak dönüştürme veya NULL.
tessellationSink
Tessellated öğesinin eklendiği ID2D1TessellationSink.
flatteningTolerance
Geometrinin çokgen yaklaşık cinsinden noktaları arasındaki uzaklık üzerindeki maksimum sınırlar. Daha küçük değerler daha doğru sonuçlar üretir, ancak yürütmenin yavaşmasına neden olur.
Yöntem başarılı olursa TRUE döndürür. Aksi takdirde YANLIŞ döndürür.
Geometriyi belirtilen vuruşa göre genişletip, belirtilen matris tarafından dönüştürüldükten ve belirtilen tolerans kullanılarak düzleştirildikten sonra sonucu ID2D1SimplifiedGeometrySink'e yazar.
BOOL Widen(
FLOAT strokeWidth,
ID2D1StrokeStyle* strokeStyle,
const D2D1_MATRIX_3X2_F& worldTransform,
ID2D1SimplifiedGeometrySink* geometrySink,
FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;
strokeWidth
Geometrinin genişletildiği miktar.
strokeStyle
Geometriye uygulanacak vuruş stili veya NULL.
worldTransform
Genişletildikten sonra geometriye uygulanacak dönüşüm.
geometrySink
Genişleyen geometrinin eklendiği ID2D1SimplifiedGeometrySink.
flatteningTolerance
Geometrinin çokgen yaklaşık cinsinden noktaları arasındaki uzaklık üzerindeki maksimum sınırlar. Daha küçük değerler daha doğru sonuçlar üretir, ancak yürütmenin yavaşmasına neden olur.
Yöntem başarılı olursa TRUE döndürür. Aksi takdirde YANLIŞ döndürür.