FastUIDraw
|
Base class to describe how to interpolate from one point of a PathContour to the next, i.e. describes the shape of an edge. More...
#include <path.hpp>
Public Member Functions | |
interpolator_base (PathContour &contour, const vec2 &end, enum PathEnums::edge_type_t tp) | |
virtual enum return_code | add_to_builder (ShaderFilledPath::Builder *builder, float tol) const |
virtual void | approximate_bounding_box (Rect *out_bb) const =0 |
virtual reference_counted_ptr< interpolator_base > | deep_copy (PathContour &contour) const =0 |
enum PathEnums::edge_type_t | edge_type (void) const |
const vec2 & | end_pt (void) const |
virtual bool | is_flat (void) const =0 |
virtual reference_counted_ptr< tessellation_state > | produce_tessellation (const TessellatedPath::TessellationParams &tess_params, TessellatedPath::SegmentStorage *out_data, float *out_max_distance) const =0 |
const vec2 & | start_pt (void) const |
Public Member Functions inherited from fastuidraw::reference_counted_base< T, Counter > | |
reference_counted_base (void) | |
Friends | |
class | PathContour |
Additional Inherited Members | |
Static Public Member Functions inherited from fastuidraw::reference_counted_base< T, Counter > | |
static void | add_reference (const reference_counted_base< T, Counter > *p) |
static void | remove_reference (const reference_counted_base< T, Counter > *p) |
Base class to describe how to interpolate from one point of a PathContour to the next, i.e. describes the shape of an edge.
fastuidraw::PathContour::interpolator_base::interpolator_base | ( | PathContour & | contour, |
const vec2 & | end, | ||
enum PathEnums::edge_type_t | tp | ||
) |
Ctor.
contour | PathContour to which to add the interpolator. The interpolator is added to the contour at the interpolator's construction. The start point is computed from the current state of the PathContour. |
end | end point of the edge of this interpolator |
tp | nature the edge represented by this interpolator_base |
|
virtual |
To be optionally implemented by a derived class to add this interpolator to a ShaderFilledPath::Builder. A return code of routine_fail means that the interpolator cannot be realized in such a way to be added and a Path that includes such an interpolator in a closed contour will be unable to realized a ShaderFilledPath value and Path::shader_filled_path() will return a null handle. Default implementation is to return routine_fail.
builder | object to which to add interpolator. |
tol | error goal between the interpolator and how it is realized on the ShaderFilledPath::Builder |
Reimplemented in fastuidraw::PathContour::arc, fastuidraw::PathContour::bezier, and fastuidraw::PathContour::flat.
|
pure virtual |
To be implemented by a derived class to return a fast (and approximate) bounding box for the interpolator.
out_bb | (output) location to which to write the bounding box value |
Implemented in fastuidraw::PathContour::arc, fastuidraw::PathContour::bezier, and fastuidraw::PathContour::flat.
|
pure virtual |
To be implemented by a derived class to create and return a deep copy of the interpolator object.
Implemented in fastuidraw::PathContour::arc, fastuidraw::PathContour::bezier, and fastuidraw::PathContour::flat.
enum PathEnums::edge_type_t fastuidraw::PathContour::interpolator_base::edge_type | ( | void | ) | const |
Returns the edge type.
const vec2& fastuidraw::PathContour::interpolator_base::end_pt | ( | void | ) | const |
Returns the ending point of this interpolator
|
pure virtual |
To be implemented by a derived class to return true if the interpolator is flat, i.e. is just a line segment connecting start_pt() to end_pt().
Implemented in fastuidraw::PathContour::arc, fastuidraw::PathContour::bezier, and fastuidraw::PathContour::flat.
|
pure virtual |
To be implemented by a derived class to produce the arc-tessellation from start_pt() to end_pt(). In addition, for recursive tessellation, returns the tessellation state to be queried for recursion depth and reused to refine the tessellation. If the tessellation routine is not recursive in nature, return nullptr.
tess_params | tessellation parameters |
out_data | location to which to write the tessellations |
out_max_distance | location to which to write an upperbound for the distance between the curve and the tesseallation approximation. |
Implemented in fastuidraw::PathContour::arc, fastuidraw::PathContour::interpolator_generic, and fastuidraw::PathContour::flat.
const vec2& fastuidraw::PathContour::interpolator_base::start_pt | ( | void | ) | const |
Returns the starting point of this interpolator.