CD2DGeometry – třída
Obálka pro ID2D1Geometry.
Syntaxe
class CD2DGeometry : public CD2DResource;
Členové
Veřejné konstruktory
Název | Popis |
---|---|
CD2DGeometry::CD2DGeometry | Vytvoří OBJEKT CD2DGeometry. |
CD2DGeometry::~CD2DGeometry | Destruktor. Volá se při zničení objektu geometrie D2D. |
Veřejné metody
Název | Popis |
---|---|
CD2DGeometry::Attach | Připojí existující rozhraní prostředků k objektu. |
CD2DGeometry::CombineWithGeometry | Zkombinuje tuto geometrii se zadanou geometrií a uloží výsledek do prvku ID2D1SimplifiedGeometrySink. |
CD2DGeometry::CompareWithGeometry | Popisuje průnik mezi touto geometrií a zadanou geometrií. Porovnání se provádí pomocí zadané tolerance zploštělování. |
CD2DGeometry::ComputeArea | Vypočítá oblast geometrie po transformaci zadanou maticí a zploštěnou pomocí zadané tolerance. |
CD2DGeometry::ComputeLength | Vypočítá délku geometrie, jako by byl každý segment neveřený do čáry. |
CD2DGeometry::ComputePointAtLength | Vypočítá bodový a tangens vektor na zadané vzdálenosti podél geometrie poté, co byla transformována zadanou maticí a zploštěná pomocí zadané tolerance. |
CD2DGeometry::D estroy | Zničí objekt CD2DGeometry. (Přepsání CD2DResource::D estroy.) |
CD2DGeometry::D etach | Odpojte rozhraní prostředků od objektu. |
CD2DGeometry::FillContainsPoint | Určuje, zda oblast vyplněná geometrií by obsahovala zadaný bod vzhledem k zadané tolerance zploštělení. |
CD2DGeometry::Get | Vrátí rozhraní ID2D1Geometry. |
CD2DGeometry::GetBounds | |
CD2DGeometry::GetWidenedBounds | Získá hranice geometrie po rozšíření podle zadané šířky a stylu tahu a transformované zadanou maticí. |
CD2DGeometry::IsValid | Kontroluje platnost prostředku (přepisuje CD2DResource::IsValid.) |
CD2DGeometry::Outline | Vypočítá obrys geometrie a zapíše výsledek do prvku ID2D1SimplifiedGeometrySink. |
CD2DGeometry::Zjednodušení | Vytvoří zjednodušenou verzi geometrie, která obsahuje pouze čáry a (volitelně) krychlové bezierové křivky a zapíše výsledek do identifikátoru ID2D1SimplifiedGeometrySink. |
CD2DGeometry::StrokeContainsPoint | Určuje, zda tah geometrie obsahuje zadaný bod vzhledem k zadané tloušťkě, stylu a transformaci tahu. |
CD2DGeometry::Tessellate | Vytvoří sadu trojúhelníků v směru hodinových ručiček, které po transformaci zakryjí geometrii pomocí zadané matice a zploštěné pomocí zadané tolerance. |
CD2DGeometry::Rozšíření | Rozšíří geometrii zadaným tahem a zapíše výsledek na id2D1SimplifiedGeometrySink po transformaci pomocí zadané matice a zploštěná pomocí zadané tolerance. |
Veřejné operátory
Název | Popis |
---|---|
CD2DGeometry::operator ID2D1Geometry* | Vrátí rozhraní ID2D1Geometry. |
Chráněné datové členy
Název | Popis |
---|---|
CD2DGeometry::m_pGeometry | Ukazatel na ID2D1Geometry. |
Hierarchie dědičnosti
CD2DGeometry
Požadavky
Hlavička: afxrendertarget.h
CD2DGeometry::~CD2DGeometry
Destruktor. Volá se při zničení objektu geometrie D2D.
virtual ~CD2DGeometry();
CD2DGeometry::Attach
Připojí existující rozhraní prostředků k objektu.
void Attach(ID2D1Geometry* pResource);
Parametry
pResource
Existující rozhraní prostředků. Nemůže mít hodnotu NULL.
CD2DGeometry::CD2DGeometry
Vytvoří OBJEKT CD2DGeometry.
CD2DGeometry(
CRenderTarget* pParentTarget,
BOOL bAutoDestroy = TRUE);
Parametry
pParentTarget
Ukazatel na cíl vykreslení.
bAutoDestroy
Označuje, že objekt bude zničen vlastníkem (pParentTarget).
CD2DGeometry::CombineWithGeometry
Zkombinuje tuto geometrii se zadanou geometrií a uloží výsledek do prvku ID2D1SimplifiedGeometrySink.
BOOL CombineWithGeometry(
CD2DGeometry& inputGeometry,
D2D1_COMBINE_MODE combineMode,
const D2D1_MATRIX_3X2_F& inputGeometryTransform,
ID2D1SimplifiedGeometrySink* geometrySink,
FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;
Parametry
inputGeometry
Geometrie, která se má s touto instancí kombinovat.
combineMode
Typ operace kombinování, která se má provést.
inputGeometryTransform
Transformace, která se má použít na inputGeometry před kombinováním.
geometrySink
Výsledek operace kombinování
flatteningTolerance
Maximální mez vzdálenosti mezi body v polygonální aproximaci geometrie. Menší hodnoty vytvářejí přesnější výsledky, ale způsobují pomalejší provádění.
Návratová hodnota
Pokud je metoda úspěšná, vrátí hodnotu TRUE. V opačném případě vrátí hodnotu FALSE.
CD2DGeometry::CompareWithGeometry
Popisuje průnik mezi touto geometrií a zadanou geometrií. Porovnání se provádí pomocí zadané tolerance zploštělování.
D2D1_GEOMETRY_RELATION CompareWithGeometry(
CD2DGeometry& inputGeometry,
const D2D1_MATRIX_3X2_F& inputGeometryTransform,
FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;
Parametry
inputGeometry
Geometrie, která se má testovat.
inputGeometryTransform
Transformace, která se použije na inputGeometry.
flatteningTolerance
Maximální mez vzdálenosti mezi body v polygonální aproximaci geometrie. Menší hodnoty vytvářejí přesnější výsledky, ale způsobují pomalejší provádění.
Návratová hodnota
Pokud je metoda úspěšná, vrátí hodnotu TRUE. V opačném případě vrátí hodnotu FALSE.
CD2DGeometry::ComputeArea
Vypočítá oblast geometrie po transformaci zadanou maticí a zploštěnou pomocí zadané tolerance.
BOOL ComputeArea(
const D2D1_MATRIX_3X2_F& worldTransform,
FLOAT& area,
FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;
Parametry
worldTransform
Transformace, která se použije na tuto geometrii před výpočtem její oblasti.
oblast
Pokud tato metoda vrátí, obsahuje ukazatel na oblast transformované, zploštěné verze této geometrie. Pro tento parametr musíte přidělit úložiště.
flatteningTolerance
Maximální mez vzdálenosti mezi body v polygonální aproximaci geometrie. Menší hodnoty vytvářejí přesnější výsledky, ale způsobují pomalejší provádění.
Návratová hodnota
Pokud je metoda úspěšná, vrátí hodnotu TRUE. V opačném případě vrátí hodnotu FALSE.
CD2DGeometry::ComputeLength
Vypočítá délku geometrie, jako by byl každý segment neveřený do čáry.
BOOL ComputeLength(
const D2D1_MATRIX_3X2_F& worldTransform,
FLOAT& length,
FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;
Parametry
worldTransform
Transformace, která se použije na geometrii před výpočtem jeho délky.
length
Pokud tato metoda vrátí, obsahuje ukazatel na délku geometrie. U uzavřených geometrií zahrnuje délka implicitní uzavírací segment. Pro tento parametr musíte přidělit úložiště.
flatteningTolerance
Maximální mez vzdálenosti mezi body v polygonální aproximaci geometrie. Menší hodnoty vytvářejí přesnější výsledky, ale způsobují pomalejší provádění.
Návratová hodnota
Pokud je metoda úspěšná, vrátí hodnotu TRUE. V opačném případě vrátí hodnotu FALSE.
CD2DGeometry::ComputePointAtLength
Vypočítá bodový a tangens vektor na zadané vzdálenosti podél geometrie poté, co byla transformována zadanou maticí a zploštěná pomocí zadané tolerance.
BOOL ComputePointAtLength(
FLOAT length,
const D2D1_MATRIX_3X2_F& worldTransform,
CD2DPointF& point,
CD2DPointF& unitTangentVector,
FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;
Parametry
length
Vzdálenost podél geometrie bodu a tangensu, která se má najít. Pokud je tato vzdálenost menší než 0, vypočítá tato metoda první bod v geometrii. Pokud je tato vzdálenost větší než délka geometrie, vypočítá tato metoda poslední bod v geometrii.
worldTransform
Transformace, která se použije na geometrii před výpočtem zadaného bodu a tangensu.
bod
Umístění v zadané vzdálenosti podél geometrie. Pokud je geometrie prázdná, obsahuje tento bod hodnotu NaN jako hodnoty x a y.
unitTangentVector
Pokud tato metoda vrátí, obsahuje ukazatel na tangens vektor v zadané vzdálenosti podél geometrie. Pokud je geometrie prázdná, obsahuje tento vektor hodnotu NaN jako hodnoty x a y. Pro tento parametr musíte přidělit úložiště.
flatteningTolerance
Maximální mez vzdálenosti mezi body v polygonální aproximaci geometrie. Menší hodnoty vytvářejí přesnější výsledky, ale způsobují pomalejší provádění.
Návratová hodnota
Pokud je metoda úspěšná, vrátí hodnotu TRUE. V opačném případě vrátí hodnotu FALSE.
CD2DGeometry::D estroy
Zničí objekt CD2DGeometry.
virtual void Destroy();
CD2DGeometry::D etach
Odpojte rozhraní prostředků od objektu.
ID2D1Geometry* Detach();
Návratová hodnota
Ukazatel na odpojené rozhraní prostředků
CD2DGeometry::FillContainsPoint
Určuje, zda oblast vyplněná geometrií by obsahovala zadaný bod vzhledem k zadané tolerance zploštělení.
BOOL FillContainsPoint(
CD2DPointF point,
const D2D1_MATRIX_3X2_F& worldTransform,
BOOL* contains,
FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;
Parametry
bod
Bod k otestování.
worldTransform
Transformace, která se použije na geometrii před testováním pro zahrnutí.
obsahuje
Pokud tato metoda vrátí, obsahuje logickou hodnotu, která je PRAVDA, pokud oblast vyplněná geometrií obsahuje bod; jinak NEPRAVDA. Pro tento parametr musíte přidělit úložiště.
flatteningTolerance
Číselná přesnost, s jakou se vypočítá přesná geometrická cesta a průsečík cesty. Body, u které chybí výplň menší než tolerance, se stále považují za vnitřní. Menší hodnoty vytvářejí přesnější výsledky, ale způsobují pomalejší provádění.
Návratová hodnota
Pokud je metoda úspěšná, vrátí hodnotu TRUE. V opačném případě vrátí hodnotu FALSE.
CD2DGeometry::Get
Vrátí rozhraní ID2D1Geometry.
ID2D1Geometry* Get();
Návratová hodnota
Ukazatel na rozhraní ID2D1Geometry nebo NULL, pokud objekt ještě není inicializován.
CD2DGeometry::GetBounds
BOOL GetBounds(
const D2D1_MATRIX_3X2_F& worldTransform,
CD2DRectF& bounds) const;
Parametry
worldTransform
hranice
Návratová hodnota
CD2DGeometry::GetWidenedBounds
Získá hranice geometrie po rozšíření podle zadané šířky a stylu tahu a transformované zadanou maticí.
BOOL GetWidenedBounds(
FLOAT strokeWidth,
ID2D1StrokeStyle* strokeStyle,
const D2D1_MATRIX_3X2_F& worldTransform,
CD2DRectF& bounds,
FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;
Parametry
strokeWidth
Množství, o které chcete rozšířit geometrii tím, že postrouháte jeho obrys.
strokeStyle
Styl tahu, který rozšiřuje geometrii.
worldTransform
Transformace, která se použije na geometrii po transformaci geometrie a po tahu geometrie.
hranice
Pokud tato metoda vrátí, obsahuje hranice rozšířené geometrie. Pro tento parametr musíte přidělit úložiště.
flatteningTolerance
Maximální mez vzdálenosti mezi body v polygonální aproximaci geometrie. Menší hodnoty vytvářejí přesnější výsledky, ale způsobují pomalejší provádění.
Návratová hodnota
Pokud je metoda úspěšná, vrátí hodnotu TRUE. V opačném případě vrátí hodnotu FALSE.
CD2DGeometry::IsValid
Kontroluje platnost prostředku.
virtual BOOL IsValid() const;
Návratová hodnota
TRUE, pokud je prostředek platný; jinak NEPRAVDA.
CD2DGeometry::m_pGeometry
Ukazatel na ID2D1Geometry.
ID2D1Geometry* m_pGeometry;
CD2DGeometry::operator ID2D1Geometry*
Vrátí rozhraní ID2D1Geometry.
operator ID2D1Geometry*();
Návratová hodnota
Ukazatel na rozhraní ID2D1Geometry nebo NULL, pokud objekt ještě není inicializován.
CD2DGeometry::Outline
Vypočítá obrys geometrie a zapíše výsledek do prvku ID2D1SimplifiedGeometrySink.
BOOL Outline(
const D2D1_MATRIX_3X2_F& worldTransform,
ID2D1SimplifiedGeometrySink* geometrySink,
FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;
Parametry
worldTransform
Transformace, která se použije na obrys geometrie.
geometrySink
Id2D1SimplifiedGeometrySink, ke kterému je připojen geometrický transformovaný obrys.
flatteningTolerance
Maximální mez vzdálenosti mezi body v polygonální aproximaci geometrie. Menší hodnoty vytvářejí přesnější výsledky, ale způsobují pomalejší provádění.
Návratová hodnota
Pokud je metoda úspěšná, vrátí hodnotu TRUE. V opačném případě vrátí hodnotu FALSE.
CD2DGeometry::Zjednodušení
Vytvoří zjednodušenou verzi geometrie, která obsahuje pouze čáry a (volitelně) krychlové bezierové křivky a zapíše výsledek do identifikátoru ID2D1SimplifiedGeometrySink.
BOOL Simplify(
D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption,
const D2D1_MATRIX_3X2_F& worldTransform,
ID2D1SimplifiedGeometrySink* geometrySink,
FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;
Parametry
zjednodušeníOption
Hodnota, která určuje, zda má zjednodušená geometrie obsahovat křivky.
worldTransform
Transformace, která se použije na zjednodušenou geometrii.
geometrySink
ID2D1SimplifiedGeometrySink, ke kterému je připojena zjednodušená geometrie.
flatteningTolerance
Maximální mez vzdálenosti mezi body v polygonální aproximaci geometrie. Menší hodnoty vytvářejí přesnější výsledky, ale způsobují pomalejší provádění.
Návratová hodnota
Pokud je metoda úspěšná, vrátí hodnotu TRUE. V opačném případě vrátí hodnotu FALSE.
CD2DGeometry::StrokeContainsPoint
Určuje, zda tah geometrie obsahuje zadaný bod vzhledem k zadané tloušťkě, stylu a transformaci tahu.
BOOL StrokeContainsPoint(
CD2DPointF point,
FLOAT strokeWidth,
ID2D1StrokeStyle* strokeStyle,
const D2D1_MATRIX_3X2_F& worldTransform,
BOOL* contains,
FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;
Parametry
bod
Bod k otestování pro zahrnutí.
strokeWidth
Tloušťka tahu, který se má použít.
strokeStyle
Styl tahu, který chcete použít.
worldTransform
Transformace, která se použije na geometrii tahů.
obsahuje
Pokud tato metoda vrátí, obsahuje logickou hodnotu nastavenou na HODNOTU TRUE, pokud tah geometrie obsahuje zadaný bod; jinak NEPRAVDA. Pro tento parametr musíte přidělit úložiště.
flatteningTolerance
Číselná přesnost, s jakou se vypočítá přesná geometrická cesta a průsečík cesty. Body, u které chybí tah menší než tolerance, se stále považují za vnitřní. Menší hodnoty vytvářejí přesnější výsledky, ale způsobují pomalejší provádění.
Návratová hodnota
Pokud je metoda úspěšná, vrátí hodnotu TRUE. V opačném případě vrátí hodnotu FALSE.
CD2DGeometry::Tessellate
Vytvoří sadu trojúhelníků v směru hodinových ručiček, které po transformaci zakryjí geometrii pomocí zadané matice a zploštěné pomocí zadané tolerance.
BOOL Tessellate(
const D2D1_MATRIX_3X2_F& worldTransform,
ID2D1TessellationSink* tessellationSink,
FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;
Parametry
worldTransform
Transformace, která se má použít pro tuto geometrii, nebo NULL.
tessellationSink
ID2D1TessellationSink, ke kterému je připojen tessellated.
flatteningTolerance
Maximální mez vzdálenosti mezi body v polygonální aproximaci geometrie. Menší hodnoty vytvářejí přesnější výsledky, ale způsobují pomalejší provádění.
Návratová hodnota
Pokud je metoda úspěšná, vrátí hodnotu TRUE. V opačném případě vrátí hodnotu FALSE.
CD2DGeometry::Rozšíření
Rozšíří geometrii zadaným tahem a zapíše výsledek na id2D1SimplifiedGeometrySink po transformaci pomocí zadané matice a zploštěná pomocí zadané tolerance.
BOOL Widen(
FLOAT strokeWidth,
ID2D1StrokeStyle* strokeStyle,
const D2D1_MATRIX_3X2_F& worldTransform,
ID2D1SimplifiedGeometrySink* geometrySink,
FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;
Parametry
strokeWidth
Množství, o které chcete rozšířit geometrii.
strokeStyle
Styl tahu, který se má použít na geometrii, nebo NULL.
worldTransform
Transformace, která se použije na geometrii po rozšíření.
geometrySink
ID2D1SimplifiedGeometrySink, ke kterému je připojena rozšířená geometrie.
flatteningTolerance
Maximální mez vzdálenosti mezi body v polygonální aproximaci geometrie. Menší hodnoty vytvářejí přesnější výsledky, ale způsobují pomalejší provádění.
Návratová hodnota
Pokud je metoda úspěšná, vrátí hodnotu TRUE. V opačném případě vrátí hodnotu FALSE.