Поделиться через


Класс CD2DGeometry

Оболочка для ID2D1Geometry.

Синтаксис

class CD2DGeometry : public CD2DResource;

Участники

Открытые конструкторы

Имя Описание
CD2DGeometry::CD2DGeometry Создает объект CD2DGeometry.
CD2DGeometry::~CD2DGeometry Деструктор Вызывается при уничтожении объекта геометрии D2D.

Открытые методы

Имя Описание
CD2DGeometry::Attach Присоединение существующего интерфейса ресурса к объекту
CD2DGeometry::CombineWithGeometry Объединяет эту геометрию с указанной геометрией и сохраняет результат в идентификаторе ID2D1SimplifiedGeometrySink.
CD2DGeometry::CompareWithGeometry Описывает пересечение этой геометрии и указанной геометрии. Сравнение выполняется с помощью указанной плоской допуска.
CD2DGeometry::ComputeArea Вычисляет область геометрии после преобразования указанной матрицы и с помощью указанной допустимости.
CD2DGeometry::ComputeLength Вычисляет длину геометрии, как если бы каждый сегмент был отложен в линию.
CD2DGeometry::ComputePointAtLength Вычисляет вектор точки и тангенса по указанному расстоянию вдоль геометрии после преобразования указанной матрицы и с помощью указанной допустимости.
CD2DGeometry::D emetry Уничтожает объект CD2DGeometry. (Переопределения CD2DResource::D eтяж.)
CD2DGeometry::D etach Отсоединяет интерфейс ресурсов от объекта
CD2DGeometry::FillContainsPoint Указывает, будет ли область, заполненная геометрией, содержать указанную точку, учитывая указанную погрешность с плоской.
CD2DGeometry::Get Возвращает интерфейс ID2D1Geometry
CD2DGeometry::GetBounds
CD2DGeometry::GetWidenedBounds Получает границы геометрии после того, как она была расширена заданной шириной и стилем штрихов и преобразована указанной матрицей.
CD2DGeometry::IsValid Проверяет допустимость ресурсов (переопределяет CD2DResource::IsValid.)
CD2DGeometry::Outline Вычисляет структуру геометрии и записывает результат в идентификатор ID2D1SimplifiedGeometrySink.
CD2DGeometry::Упрощение Создает упрощенную версию геометрии, которая содержит только линии и (необязательно) кубические кривые Bezier и записывает результат в идентификатор ID2D1SimplifiedGeometrySink.
CD2DGeometry::StrokeContainsPoint Определяет, содержит ли штрих геометрии указанную точку с заданной толщиной, стилем и преобразованием.
CD2DGeometry::Tessellate Создает набор треугольников по часовой стрелке, охватывающих геометрию после преобразования с помощью указанной матрицы и плоской с помощью указанной допустимости.
CD2DGeometry::Widen Расширяет геометрию по указанному штриху и записывает результат в идентификатор ID2D1SimplifiedGeometrySink после его преобразования с помощью указанной матрицы и сплощенного с помощью указанной допустимости.

Открытые операторы

Имя Описание
CD2DGeometry::operator ID2D1Geometry* Возвращает интерфейс ID2D1Geometry

Защищенные члены данных

Имя Описание
CD2DGeometry::m_pGeometry Указатель на идентификатор ID2D1Geometry.

Иерархия наследования

CObject

CD2DResource

CD2DGeometry

Requirements

Заголовок: afxrendertarget.h

CD2DGeometry::~CD2DGeometry

Деструктор Вызывается при уничтожении объекта геометрии D2D.

virtual ~CD2DGeometry();

CD2DGeometry::Attach

Присоединение существующего интерфейса ресурса к объекту

void Attach(ID2D1Geometry* pResource);

Параметры

pResource
Существующий интерфейс ресурсов. Не удается иметь значение NULL

CD2DGeometry::CD2DGeometry

Создает объект CD2DGeometry.

CD2DGeometry(
    CRenderTarget* pParentTarget,
    BOOL bAutoDestroy = TRUE);

Параметры

pParentTarget
Указатель на целевой объект отрисовки.

bAutoDesk
Указывает, что объект будет уничтожен владельцем (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 emetry

Уничтожает объект 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, если область, заполненная геометрией, содержит точку; в противном случае — ЗНАЧЕНИЕ 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
Границ

Возвращаемое значение

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
Преобразование, применяемое к геометрии после преобразования геометрии, и после того, как геометрия была выполнена.

Границ
Когда этот метод возвращается, содержит границы расширенных геометрий. Необходимо выделить хранилище для этого параметра.

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
Идентификатор 2D1SimplifiedGeometrySink, к которому добавляется преобразуемая геометрическая структура.

flatteningTolerance
Максимальные границы расстояния между точками в многоугольном приближении геометрии. Меньшие значения создают более точные результаты, но приводят к более медленному выполнению.

Возвращаемое значение

Если метод выполнен успешно, возвращает значение TRUE. В противном случае возвращает значение FALSE.

CD2DGeometry::Упрощение

Создает упрощенную версию геометрии, которая содержит только линии и (необязательно) кубические кривые Bezier и записывает результат в идентификатор ID2D1SimplifiedGeometrySink.

BOOL Simplify(
    D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption,
    const D2D1_MATRIX_3X2_F& worldTransform,
    ID2D1SimplifiedGeometrySink* geometrySink,
    FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;

Параметры

упрощениеOption
Значение, указывающее, должна ли упрощенная геометрия содержать кривые.

worldTransform
Преобразование, применяемое к упрощенной геометрии.

geometrySink
Идентификатор 2D1SimplifiedGeometrySink, к которому добавляется упрощенная геометрия.

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.

tessellationSink
Идентификатор 2D1TessellationSink, к которому добавляется тесселлированный элемент.

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
Идентификатор 2D1SimplifiedGeometrySink, к которому добавляется расширенная геометрия.

flatteningTolerance
Максимальные границы расстояния между точками в многоугольном приближении геометрии. Меньшие значения создают более точные результаты, но приводят к более медленному выполнению.

Возвращаемое значение

Если метод выполнен успешно, возвращает значение TRUE. В противном случае возвращает значение FALSE.

См. также

Классы