Flutter Impeller
impeller::FillPathGeometry Class Reference

A geometry that is created from a filled path object. More...

#include <fill_path_geometry.h>

Inheritance diagram for impeller::FillPathGeometry:
impeller::Geometry

Public Member Functions

 FillPathGeometry (const Path &path, std::optional< Rect > inner_rect=std::nullopt)
 
 ~FillPathGeometry ()
 
bool CoversArea (const Matrix &transform, const Rect &rect) const override
 Determines if this geometry, transformed by the given transform, will completely cover all surface area of the given rect. More...
 
- Public Member Functions inherited from impeller::Geometry
 Geometry ()
 
virtual ~Geometry ()
 

Additional Inherited Members

- Static Public Member Functions inherited from impeller::Geometry
static std::unique_ptr< GeometryMakeFillPath (const Path &path, std::optional< Rect > inner_rect=std::nullopt)
 
static std::unique_ptr< GeometryMakeStrokePath (const Path &path, Scalar stroke_width=0.0, Scalar miter_limit=4.0, Cap stroke_cap=Cap::kButt, Join stroke_join=Join::kMiter)
 
static std::unique_ptr< GeometryMakeCover ()
 
static std::unique_ptr< GeometryMakeRect (Rect rect)
 
static std::unique_ptr< GeometryMakePointField (std::vector< Point > points, Scalar radius, bool round)
 

Detailed Description

A geometry that is created from a filled path object.

Definition at line 15 of file fill_path_geometry.h.

Constructor & Destructor Documentation

◆ FillPathGeometry()

impeller::FillPathGeometry::FillPathGeometry ( const Path path,
std::optional< Rect inner_rect = std::nullopt 
)
explicit

Definition at line 10 of file fill_path_geometry.cc.

12  : path_(path), inner_rect_(inner_rect) {}

◆ ~FillPathGeometry()

impeller::FillPathGeometry::~FillPathGeometry ( )
default

Member Function Documentation

◆ CoversArea()

bool impeller::FillPathGeometry::CoversArea ( const Matrix transform,
const Rect rect 
) const
overridevirtual

Determines if this geometry, transformed by the given transform, will completely cover all surface area of the given rect.

This is a conservative estimate useful for certain optimizations.

Returns
true if the transformed geometry is guaranteed to cover the given rect. May return false in many undetected cases where the transformed geometry does in fact cover the rect.

Reimplemented from impeller::Geometry.

Definition at line 161 of file fill_path_geometry.cc.

162  {
163  if (!inner_rect_.has_value()) {
164  return false;
165  }
166  if (!transform.IsTranslationScaleOnly()) {
167  return false;
168  }
169  Rect coverage = inner_rect_->TransformBounds(transform);
170  return coverage.Contains(rect);
171 }

References impeller::TRect< T >::Contains(), impeller::Matrix::IsTranslationScaleOnly(), and impeller::TRect< T >::TransformBounds().


The documentation for this class was generated from the following files:
impeller::Rect
TRect< Scalar > Rect
Definition: rect.h:306