description | title | ms.date | f1_keywords | helpviewer_keywords | ms.assetid | ||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Learn more about: CD2DGeometry Class |
CD2DGeometry Class |
11/04/2016 |
|
|
3f95054b-fdb8-4e87-87f2-9fc3df7279ec |
A wrapper for ID2D1Geometry.
class CD2DGeometry : public CD2DResource;
Name | Description |
---|---|
CD2DGeometry::CD2DGeometry | Constructs a CD2DGeometry object. |
CD2DGeometry::~CD2DGeometry | The destructor. Called when a D2D geometry object is being destroyed. |
Name | Description |
---|---|
CD2DGeometry::Attach | Attaches existing resource interface to the object |
CD2DGeometry::CombineWithGeometry | Combines this geometry with the specified geometry and stores the result in an ID2D1SimplifiedGeometrySink. |
CD2DGeometry::CompareWithGeometry | Describes the intersection between this geometry and the specified geometry. The comparison is performed using the specified flattening tolerance. |
CD2DGeometry::ComputeArea | Computes the area of the geometry after it has been transformed by the specified matrix and flattened using the specified tolerance. |
CD2DGeometry::ComputeLength | Calculates the length of the geometry as though each segment were unrolled into a line. |
CD2DGeometry::ComputePointAtLength | Calculates the point and tangent vector at the specified distance along the geometry after it has been transformed by the specified matrix and flattened using the specified tolerance. |
CD2DGeometry::Destroy | Destroys a CD2DGeometry object. (Overrides CD2DResource::Destroy.) |
CD2DGeometry::Detach | Detaches resource interface from the object |
CD2DGeometry::FillContainsPoint | Indicates whether the area filled by the geometry would contain the specified point given the specified flattening tolerance. |
CD2DGeometry::Get | Returns ID2D1Geometry interface |
CD2DGeometry::GetBounds | |
CD2DGeometry::GetWidenedBounds | Gets the bounds of the geometry after it has been widened by the specified stroke width and style and transformed by the specified matrix. |
CD2DGeometry::IsValid | Checks resource validity (Overrides CD2DResource::IsValid.) |
CD2DGeometry::Outline | Computes the outline of the geometry and writes the result to an ID2D1SimplifiedGeometrySink. |
CD2DGeometry::Simplify | Creates a simplified version of the geometry that contains only lines and (optionally) cubic Bezier curves and writes the result to an ID2D1SimplifiedGeometrySink. |
CD2DGeometry::StrokeContainsPoint | Determines whether the geometry's stroke contains the specified point given the specified stroke thickness, style, and transform. |
CD2DGeometry::Tessellate | Creates a set of clockwise-wound triangles that cover the geometry after it has been transformed using the specified matrix and flattened using the specified tolerance. |
CD2DGeometry::Widen | Widens the geometry by the specified stroke and writes the result to an ID2D1SimplifiedGeometrySink after it has been transformed by the specified matrix and flattened using the specified tolerance. |
Name | Description |
---|---|
CD2DGeometry::operator ID2D1Geometry* | Returns ID2D1Geometry interface |
Name | Description |
---|---|
CD2DGeometry::m_pGeometry | A pointer to an ID2D1Geometry. |
CD2DGeometry
Header: afxrendertarget.h
The destructor. Called when a D2D geometry object is being destroyed.
virtual ~CD2DGeometry();
Attaches existing resource interface to the object
void Attach(ID2D1Geometry* pResource);
pResource
Existing resource interface. Cannot be NULL
Constructs a CD2DGeometry object.
CD2DGeometry(
CRenderTarget* pParentTarget,
BOOL bAutoDestroy = TRUE);
pParentTarget
A pointer to the render target.
bAutoDestroy
Indicates that the object will be destroyed by owner (pParentTarget).
Combines this geometry with the specified geometry and stores the result in an 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
The geometry to combine with this instance.
combineMode
The type of combine operation to perform.
inputGeometryTransform
The transform to apply to inputGeometry before combining.
geometrySink
The result of the combine operation.
flatteningTolerance
The maximum bounds on the distance between points in the polygonal approximation of the geometries. Smaller values produce more accurate results but cause slower execution.
If the method succeeds, it returns TRUE. Otherwise, it returns FALSE.
Describes the intersection between this geometry and the specified geometry. The comparison is performed using the specified flattening tolerance.
D2D1_GEOMETRY_RELATION CompareWithGeometry(
CD2DGeometry& inputGeometry,
const D2D1_MATRIX_3X2_F& inputGeometryTransform,
FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;
inputGeometry
The geometry to test.
inputGeometryTransform
The transform to apply to inputGeometry.
flatteningTolerance
The maximum bounds on the distance between points in the polygonal approximation of the geometries. Smaller values produce more accurate results but cause slower execution.
If the method succeeds, it returns TRUE. Otherwise, it returns FALSE.
Computes the area of the geometry after it has been transformed by the specified matrix and flattened using the specified tolerance.
BOOL ComputeArea(
const D2D1_MATRIX_3X2_F& worldTransform,
FLOAT& area,
FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;
worldTransform
The transform to apply to this geometry before computing its area.
area
When this method returns, contains a pointer to the area of the transformed, flattened version of this geometry. You must allocate storage for this parameter.
flatteningTolerance
The maximum bounds on the distance between points in the polygonal approximation of the geometry. Smaller values produce more accurate results but cause slower execution.
If the method succeeds, it returns TRUE. Otherwise, it returns FALSE.
Calculates the length of the geometry as though each segment were unrolled into a line.
BOOL ComputeLength(
const D2D1_MATRIX_3X2_F& worldTransform,
FLOAT& length,
FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;
worldTransform
The transform to apply to the geometry before calculating its length.
length
When this method returns, contains a pointer to the length of the geometry. For closed geometries, the length includes an implicit closing segment. You must allocate storage for this parameter.
flatteningTolerance
The maximum bounds on the distance between points in the polygonal approximation of the geometry. Smaller values produce more accurate results but cause slower execution.
If the method succeeds, it returns TRUE. Otherwise, it returns FALSE.
Calculates the point and tangent vector at the specified distance along the geometry after it has been transformed by the specified matrix and flattened using the specified tolerance.
BOOL ComputePointAtLength(
FLOAT length,
const D2D1_MATRIX_3X2_F& worldTransform,
CD2DPointF& point,
CD2DPointF& unitTangentVector,
FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;
length
The distance along the geometry of the point and tangent to find. If this distance is less then 0, this method calculates the first point in the geometry. If this distance is greater than the length of the geometry, this method calculates the last point in the geometry.
worldTransform
The transform to apply to the geometry before calculating the specified point and tangent.
point
The location at the specified distance along the geometry. If the geometry is empty, this point contains NaN as its x and y values.
unitTangentVector
When this method returns, contains a pointer to the tangent vector at the specified distance along the geometry. If the geometry is empty, this vector contains NaN as its x and y values. You must allocate storage for this parameter.
flatteningTolerance
The maximum bounds on the distance between points in the polygonal approximation of the geometry. Smaller values produce more accurate results but cause slower execution.
If the method succeeds, it returns TRUE. Otherwise, it returns FALSE.
Destroys a CD2DGeometry object.
virtual void Destroy();
Detaches resource interface from the object
ID2D1Geometry* Detach();
Pointer to detached resource interface.
Indicates whether the area filled by the geometry would contain the specified point given the specified flattening tolerance.
BOOL FillContainsPoint(
CD2DPointF point,
const D2D1_MATRIX_3X2_F& worldTransform,
BOOL* contains,
FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;
point
The point to test.
worldTransform
The transform to apply to the geometry prior to testing for containment.
contains
When this method returns, contains a bool value that is TRUE if the area filled by the geometry contains point; otherwise, FALSE. You must allocate storage for this parameter.
flatteningTolerance
The numeric accuracy with which the precise geometric path and path intersection is calculated. Points missing the fill by less than the tolerance are still considered inside. Smaller values produce more accurate results but cause slower execution.
If the method succeeds, it returns TRUE. Otherwise, it returns FALSE.
Returns ID2D1Geometry interface
ID2D1Geometry* Get();
Pointer to an ID2D1Geometry interface or NULL if object is not initialized yet.
BOOL GetBounds(
const D2D1_MATRIX_3X2_F& worldTransform,
CD2DRectF& bounds) const;
worldTransform
bounds
Gets the bounds of the geometry after it has been widened by the specified stroke width and style and transformed by the specified matrix.
BOOL GetWidenedBounds(
FLOAT strokeWidth,
ID2D1StrokeStyle* strokeStyle,
const D2D1_MATRIX_3X2_F& worldTransform,
CD2DRectF& bounds,
FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;
strokeWidth
The amount by which to widen the geometry by stroking its outline.
strokeStyle
The style of the stroke that widens the geometry.
worldTransform
A transform to apply to the geometry after the geometry is transformed and after the geometry has been stroked.
bounds
When this method returns, contains the bounds of the widened geometry. You must allocate storage for this parameter.
flatteningTolerance
The maximum bounds on the distance between points in the polygonal approximation of the geometries. Smaller values produce more accurate results but cause slower execution.
If the method succeeds, it returns TRUE. Otherwise, it returns FALSE.
Checks resource validity
virtual BOOL IsValid() const;
TRUE if resource is valid; otherwise FALSE.
A pointer to an ID2D1Geometry.
ID2D1Geometry* m_pGeometry;
Returns ID2D1Geometry interface
operator ID2D1Geometry*();
Pointer to an ID2D1Geometry interface or NULL if object is not initialized yet.
Computes the outline of the geometry and writes the result to an ID2D1SimplifiedGeometrySink.
BOOL Outline(
const D2D1_MATRIX_3X2_F& worldTransform,
ID2D1SimplifiedGeometrySink* geometrySink,
FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;
worldTransform
The transform to apply to the geometry outline.
geometrySink
The ID2D1SimplifiedGeometrySink to which the geometry transformed outline is appended.
flatteningTolerance
The maximum bounds on the distance between points in the polygonal approximation of the geometry. Smaller values produce more accurate results but cause slower execution.
If the method succeeds, it returns TRUE. Otherwise, it returns FALSE.
Creates a simplified version of the geometry that contains only lines and (optionally) cubic Bezier curves and writes the result to an ID2D1SimplifiedGeometrySink.
BOOL Simplify(
D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption,
const D2D1_MATRIX_3X2_F& worldTransform,
ID2D1SimplifiedGeometrySink* geometrySink,
FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;
simplificationOption
A value that specifies whether the simplified geometry should contain curves.
worldTransform
The transform to apply to the simplified geometry.
geometrySink
The ID2D1SimplifiedGeometrySink to which the simplified geometry is appended.
flatteningTolerance
The maximum bounds on the distance between points in the polygonal approximation of the geometry. Smaller values produce more accurate results but cause slower execution.
If the method succeeds, it returns TRUE. Otherwise, it returns FALSE.
Determines whether the geometry's stroke contains the specified point given the specified stroke thickness, style, and transform.
BOOL StrokeContainsPoint(
CD2DPointF point,
FLOAT strokeWidth,
ID2D1StrokeStyle* strokeStyle,
const D2D1_MATRIX_3X2_F& worldTransform,
BOOL* contains,
FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;
point
The point to test for containment.
strokeWidth
The thickness of the stroke to apply.
strokeStyle
The style of the stroke to apply.
worldTransform
The transform to apply to the stroked geometry.
contains
When this method returns, contains a boolean value set to TRUE if the geometry's stroke contains the specified point; otherwise, FALSE. You must allocate storage for this parameter.
flatteningTolerance
The numeric accuracy with which the precise geometric path and path intersection is calculated. Points missing the stroke by less than the tolerance are still considered inside. Smaller values produce more accurate results but cause slower execution.
If the method succeeds, it returns TRUE. Otherwise, it returns FALSE.
Creates a set of clockwise-wound triangles that cover the geometry after it has been transformed using the specified matrix and flattened using the specified tolerance.
BOOL Tessellate(
const D2D1_MATRIX_3X2_F& worldTransform,
ID2D1TessellationSink* tessellationSink,
FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;
worldTransform
The transform to apply to this geometry, or NULL.
tessellationSink
The ID2D1TessellationSink to which the tessellated is appended.
flatteningTolerance
The maximum bounds on the distance between points in the polygonal approximation of the geometry. Smaller values produce more accurate results but cause slower execution.
If the method succeeds, it returns TRUE. Otherwise, it returns FALSE.
Widens the geometry by the specified stroke and writes the result to an ID2D1SimplifiedGeometrySink after it has been transformed by the specified matrix and flattened using the specified tolerance.
BOOL Widen(
FLOAT strokeWidth,
ID2D1StrokeStyle* strokeStyle,
const D2D1_MATRIX_3X2_F& worldTransform,
ID2D1SimplifiedGeometrySink* geometrySink,
FLOAT flatteningTolerance = D2D1_DEFAULT_FLATTENING_TOLERANCE) const;
strokeWidth
The amount by which to widen the geometry.
strokeStyle
The style of stroke to apply to the geometry, or NULL.
worldTransform
The transform to apply to the geometry after widening it.
geometrySink
The ID2D1SimplifiedGeometrySink to which the widened geometry is appended.
flatteningTolerance
The maximum bounds on the distance between points in the polygonal approximation of the geometry. Smaller values produce more accurate results but cause slower execution.
If the method succeeds, it returns TRUE. Otherwise, it returns FALSE.