CD2DGeometry 類別
ID2D1Geometry 的包裝函式。
語法
class CD2DGeometry : public CD2DResource;
成員
公用建構函式
名稱 | 描述 |
---|---|
CD2DGeometry::CD2DGeometry | 建構 CD2DGeometry 物件。 |
CD2DGeometry::~CD2DGeometry | 解構函式。 當 D2D geometry 對象被終結時呼叫。 |
公用方法
名稱 | 描述 |
---|---|
CD2DGeometry::Attach | 將現有的資源介面附加至物件 |
CD2DGeometry::CombineWithGeometry | 將此幾何與指定的幾何結合,並將結果儲存在ID2D1SimplifiedGeometrySink 中。 |
CD2DGeometry::CompareWithGeometry | 描述這個幾何與指定幾何之間的交集。 比較是使用指定的扁平化容錯來執行。 |
CD2DGeometry::ComputeArea | 在指定的矩陣轉換幾何區域,並使用指定的容錯進行扁平化之後,計算幾何的區域。 |
CD2DGeometry::ComputeLength | 計算幾何的長度,就好像每個線段都取消卷標成一條線。 |
CD2DGeometry::ComputePointAtLength | 在指定的矩陣轉換到指定的矩陣,並使用指定的容錯扁平化之後,計算沿著幾何的指定距離的點和正切向量。 |
CD2DGeometry::D estroy | 終結 CD2DGeometry 物件。 (覆寫 CD2DResource::D estroy.) |
CD2DGeometry::D etach | 從物件中斷鏈接資源介面 |
CD2DGeometry::FillContainsPoint | 指出幾何所填滿的區域是否包含指定的扁平化容錯指定的點。 |
CD2DGeometry::Get | 傳回ID2D1Geometry介面 |
CD2DGeometry::GetBounds | |
CD2DGeometry::GetWidenedBounds | 取得幾何的界限之後,它已由指定的筆劃寬度和樣式擴展,並由指定的矩陣轉換。 |
CD2DGeometry::IsValid | 檢查資源有效性 (覆寫 CD2DResource::IsValid.) |
CD2DGeometry::Outline | 計算幾何的外框,並將結果寫入ID2D1SimplifiedGeometrySink。 |
CD2DGeometry::簡化 | 建立只包含線條和 (選擇性) 立方貝塞爾曲線的簡化幾何版本,並將結果寫入ID2D1SimplifiedGeometrySink。 |
CD2DGeometry::StrokeContainsPoint | 判斷幾何筆劃是否包含指定筆劃粗細、樣式和轉換的指定點。 |
CD2DGeometry::Tessellate | 建立一組順時針形三角形,其會在使用指定的矩陣進行轉換后覆蓋幾何,並使用指定的容錯壓平。 |
CD2DGeometry::Widen | 透過指定的筆劃擴大幾何,並將結果寫入ID2D1SimplifiedGeometrySink之後,由指定的矩陣轉換,並使用指定的容錯扁平化。 |
公用運算子
名稱 | 描述 |
---|---|
CD2DGeometry::operator ID2D1Geometry* | 傳回ID2D1Geometry介面 |
受保護的資料成員
名稱 | 描述 |
---|---|
CD2DGeometry::m_pGeometry | ID2D1Geometry 的指標。 |
繼承階層架構
CD2DGeometry
需求
標頭: afxrendertarget.h
CD2DGeometry::~CD2DGeometry
解構函式。 當 D2D geometry 對象被終結時呼叫。
virtual ~CD2DGeometry();
CD2DGeometry::Attach
將現有的資源介面附加至物件
void Attach(ID2D1Geometry* pResource);
參數
pResource
現有的資源介面。 不可以是 NULL
CD2DGeometry::CD2DGeometry
建構 CD2DGeometry 物件。
CD2DGeometry(
CRenderTarget* pParentTarget,
BOOL bAutoDestroy = TRUE);
參數
pParentTarget
轉譯目標的指標。
bAutoDestroy
表示物件將會由擁有者終結(pParentTarget)。
CD2DGeometry::CombineWithGeometry
將此幾何與指定的幾何結合,並將結果儲存在ID2D1SimplifiedGeometrySink 中。
BOOL CombineWithGeometry(
CD2DGeometry& inputGeometry,
D2D1_COMBINE_MODE combineMode,
const D2D1_MATRIX_3X2_F& inputGeometryTransform,
ID2D1SimplifiedGeometrySink* geometrySink,
FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;
參數
inputGeometry
要與這個實例結合的幾何。
combineMode
要執行的合併作業類型。
inputGeometryTransform
合併之前要套用至 inputGeometry 的轉換。
geometrySink
合併作業的結果。
flatteningTolerance
幾何多邊形近似值中點之間的距離上限。 較小的值會產生更精確的結果,但會導致執行速度較慢。
傳回值
如果方法成功,則會傳回 TRUE。 否則會傳回 FALSE。
CD2DGeometry::CompareWithGeometry
描述這個幾何與指定幾何之間的交集。 比較是使用指定的扁平化容錯來執行。
D2D1_GEOMETRY_RELATION CompareWithGeometry(
CD2DGeometry& inputGeometry,
const D2D1_MATRIX_3X2_F& inputGeometryTransform,
FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;
參數
inputGeometry
要測試的幾何。
inputGeometryTransform
要套用至 inputGeometry 的轉換。
flatteningTolerance
幾何多邊形近似值中點之間的距離上限。 較小的值會產生更精確的結果,但會導致執行速度較慢。
傳回值
如果方法成功,則會傳回 TRUE。 否則會傳回 FALSE。
CD2DGeometry::ComputeArea
在指定的矩陣轉換幾何區域,並使用指定的容錯進行扁平化之後,計算幾何的區域。
BOOL ComputeArea(
const D2D1_MATRIX_3X2_F& worldTransform,
FLOAT& area,
FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;
參數
worldTransform
在計算其區域之前,要套用至此幾何的轉換。
面積
當這個方法傳回時,會包含已轉換、扁平化此幾何區域區域的指標。 您必須設定此參數的記憶體。
flatteningTolerance
幾何多邊形近似值點之間的距離上限。 較小的值會產生更精確的結果,但會導致執行速度較慢。
傳回值
如果方法成功,則會傳回 TRUE。 否則會傳回 FALSE。
CD2DGeometry::ComputeLength
計算幾何的長度,就好像每個線段都取消卷標成一條線。
BOOL ComputeLength(
const D2D1_MATRIX_3X2_F& worldTransform,
FLOAT& length,
FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;
參數
worldTransform
要套用至幾何的轉換,再計算其長度。
length
這個方法傳回時,會包含幾何長度的指標。 對於封閉的幾何,長度包含隱含的結尾線段。 您必須設定此參數的記憶體。
flatteningTolerance
幾何多邊形近似值點之間的距離上限。 較小的值會產生更精確的結果,但會導致執行速度較慢。
傳回值
如果方法成功,則會傳回 TRUE。 否則會傳回 FALSE。
CD2DGeometry::ComputePointAtLength
在指定的矩陣轉換到指定的矩陣,並使用指定的容錯扁平化之後,計算沿著幾何的指定距離的點和正切向量。
BOOL ComputePointAtLength(
FLOAT length,
const D2D1_MATRIX_3X2_F& worldTransform,
CD2DPointF& point,
CD2DPointF& unitTangentVector,
FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;
參數
length
沿著要尋找之點和正切值的幾何距離。 如果這個距離小於 0,這個方法會計算幾何中的第一個點。 如果這個距離大於幾何的長度,這個方法會計算幾何中的最後一個點。
worldTransform
要套用至幾何的轉換,再計算指定的點和正切值。
point
在幾何上指定距離的位置。 如果幾何是空的,這個點就會包含 NaN 作為其 x 和 y 值。
unitTangentVector
當這個方法傳回時,會包含幾何上指定距離的正切向量的指標。 如果幾何是空的,則此向量會包含 NaN 作為其 x 和 y 值。 您必須設定此參數的記憶體。
flatteningTolerance
幾何多邊形近似值點之間的距離上限。 較小的值會產生更精確的結果,但會導致執行速度較慢。
傳回值
如果方法成功,則會傳回 TRUE。 否則會傳回 FALSE。
CD2DGeometry::D estroy
終結 CD2DGeometry 物件。
virtual void Destroy();
CD2DGeometry::D etach
從物件中斷鏈接資源介面
ID2D1Geometry* Detach();
傳回值
卸離資源介面的指標。
CD2DGeometry::FillContainsPoint
指出幾何所填滿的區域是否包含指定的扁平化容錯指定的點。
BOOL FillContainsPoint(
CD2DPointF point,
const D2D1_MATRIX_3X2_F& worldTransform,
BOOL* contains,
FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;
參數
point
要測試的點。
worldTransform
在測試內含專案之前要套用至幾何的轉換。
contains
當這個方法傳回時,如果幾何所填滿的區域包含點,則包含為 TRUE 的 bool 值;否則為 FALSE。 您必須設定此參數的記憶體。
flatteningTolerance
計算精確幾何路徑和路徑交集的數值精確度。 仍然會將遺漏填滿點小於容錯的點納入考慮。 較小的值會產生更精確的結果,但會導致執行速度較慢。
傳回值
如果方法成功,則會傳回 TRUE。 否則會傳回 FALSE。
CD2DGeometry::Get
傳回ID2D1Geometry介面
ID2D1Geometry* Get();
傳回值
如果物件尚未初始化,則為ID2D1Geometry介面的指標或 NULL。
CD2DGeometry::GetBounds
BOOL GetBounds(
const D2D1_MATRIX_3X2_F& worldTransform,
CD2DRectF& bounds) const;
參數
worldTransform
bounds
傳回值
CD2DGeometry::GetWidenedBounds
取得幾何的界限之後,它已由指定的筆劃寬度和樣式擴展,並由指定的矩陣轉換。
BOOL GetWidenedBounds(
FLOAT strokeWidth,
ID2D1StrokeStyle* strokeStyle,
const D2D1_MATRIX_3X2_F& worldTransform,
CD2DRectF& bounds,
FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;
參數
strokeWidth
要透過擷取其外框來擴大幾何的數量。
strokeStyle
擴大幾何之筆劃的樣式。
worldTransform
在幾何轉換和幾何筆劃之後套用至幾何的轉換。
bounds
當這個方法傳回時,會包含擴展幾何的範圍。 您必須設定此參數的記憶體。
flatteningTolerance
幾何多邊形近似值中點之間的距離上限。 較小的值會產生更精確的結果,但會導致執行速度較慢。
傳回值
如果方法成功,則會傳回 TRUE。 否則會傳回 FALSE。
CD2DGeometry::IsValid
檢查資源有效性
virtual BOOL IsValid() const;
傳回值
如果資源有效,則為TRUE;否則為 FALSE。
CD2DGeometry::m_pGeometry
ID2D1Geometry 的指標。
ID2D1Geometry* m_pGeometry;
CD2DGeometry::operator ID2D1Geometry*
傳回ID2D1Geometry介面
operator ID2D1Geometry*();
傳回值
如果物件尚未初始化,則為ID2D1Geometry介面的指標或 NULL。
CD2DGeometry::Outline
計算幾何的外框,並將結果寫入ID2D1SimplifiedGeometrySink。
BOOL Outline(
const D2D1_MATRIX_3X2_F& worldTransform,
ID2D1SimplifiedGeometrySink* geometrySink,
FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;
參數
worldTransform
要套用至幾何外框的轉換。
geometrySink
附加幾何轉換外框的ID2D1SimplifiedGeometrySink。
flatteningTolerance
幾何多邊形近似值點之間的距離上限。 較小的值會產生更精確的結果,但會導致執行速度較慢。
傳回值
如果方法成功,則會傳回 TRUE。 否則會傳回 FALSE。
CD2DGeometry::簡化
建立只包含線條和 (選擇性) 立方貝塞爾曲線的簡化幾何版本,並將結果寫入ID2D1SimplifiedGeometrySink。
BOOL Simplify(
D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption,
const D2D1_MATRIX_3X2_F& worldTransform,
ID2D1SimplifiedGeometrySink* geometrySink,
FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;
參數
simplificationOption
值,指定簡化的幾何是否應該包含曲線。
worldTransform
要套用至簡化幾何的轉換。
geometrySink
附加簡化幾何的ID2D1SimplifiedGeometrySink。
flatteningTolerance
幾何多邊形近似值點之間的距離上限。 較小的值會產生更精確的結果,但會導致執行速度較慢。
傳回值
如果方法成功,則會傳回 TRUE。 否則會傳回 FALSE。
CD2DGeometry::StrokeContainsPoint
判斷幾何筆劃是否包含指定筆劃粗細、樣式和轉換的指定點。
BOOL StrokeContainsPoint(
CD2DPointF point,
FLOAT strokeWidth,
ID2D1StrokeStyle* strokeStyle,
const D2D1_MATRIX_3X2_F& worldTransform,
BOOL* contains,
FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;
參數
point
要測試內含項目的點。
strokeWidth
要套用的筆劃粗細。
strokeStyle
要套用的筆劃樣式。
worldTransform
要套用至筆劃幾何的轉換。
contains
當這個方法傳回時,如果幾何筆劃包含指定的點,則包含設定為 TRUE 的布爾值;否則為 FALSE。 您必須設定此參數的記憶體。
flatteningTolerance
計算精確幾何路徑和路徑交集的數值精確度。 在內部仍會將遺漏筆劃的點視為小於容錯。 較小的值會產生更精確的結果,但會導致執行速度較慢。
傳回值
如果方法成功,則會傳回 TRUE。 否則會傳回 FALSE。
CD2DGeometry::Tessellate
建立一組順時針形三角形,其會在使用指定的矩陣進行轉換后覆蓋幾何,並使用指定的容錯壓平。
BOOL Tessellate(
const D2D1_MATRIX_3X2_F& worldTransform,
ID2D1TessellationSink* tessellationSink,
FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;
參數
worldTransform
要套用至這個幾何的轉換,或 NULL。
鑲嵌式Sink
附加鑲嵌的ID2D1TessellationSink。
flatteningTolerance
幾何多邊形近似值點之間的距離上限。 較小的值會產生更精確的結果,但會導致執行速度較慢。
傳回值
如果方法成功,則會傳回 TRUE。 否則會傳回 FALSE。
CD2DGeometry::Widen
透過指定的筆劃擴大幾何,並將結果寫入ID2D1SimplifiedGeometrySink之後,由指定的矩陣轉換,並使用指定的容錯扁平化。
BOOL Widen(
FLOAT strokeWidth,
ID2D1StrokeStyle* strokeStyle,
const D2D1_MATRIX_3X2_F& worldTransform,
ID2D1SimplifiedGeometrySink* geometrySink,
FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;
參數
strokeWidth
要擴大幾何的量。
strokeStyle
要套用至幾何或 NULL 的筆劃樣式。
worldTransform
在擴大幾何之後要套用至幾何的轉換。
geometrySink
附加擴大幾何的ID2D1SimplifiedGeometrySink。
flatteningTolerance
幾何多邊形近似值點之間的距離上限。 較小的值會產生更精確的結果,但會導致執行速度較慢。
傳回值
如果方法成功,則會傳回 TRUE。 否則會傳回 FALSE。