Sdílet prostřednictvím


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

Objekt CObject

CD2DResource

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.

Viz také

Třídy