# LibBoard::GouraudTriangle Struct Reference

A triangle with shaded filling according to colors given for each vertex. More...

`#include <Shapes.h>`

Inheritance diagram for LibBoard::GouraudTriangle:

List of all members.

## Public Member Functions

| GouraudTriangle (const Point &p0, const Color &color0, const Point &p1, const Color &color1, const Point &p2, const Color &color2, int subdivisions, int depth=-1)
| GouraudTriangle (const Point &p0, float brightness0, const Point &p1, float brightness1, const Point &p2, float brightness2, const Color &fillColor, int subdivisions, int depth=-1)
const std::string & | name () const
Point | center () const
GouraudTriangle & | rotate (double angle, const Point &center)
GouraudTriangle | rotated (double angle, const Point &center) const
GouraudTriangle & | rotate (double angle)
GouraudTriangle | rotated (double angle) const
GouraudTriangle | translated (double dx, double dy) const
GouraudTriangle | scaled (double sx, double sy) const
GouraudTriangle | scaled (double s) const
void | scaleAll (double s)
void | flushPostscript (std::ostream &stream, const TransformEPS &transform) const
void | flushFIG (std::ostream &stream, const TransformFIG &transform, std::map< Color, int > &colormap) const
void | flushSVG (std::ostream &stream, const TransformSVG &transform) const
GouraudTriangle * | clone () const

## Protected Attributes

Color | _color0
Color | _color1
Color | _color2
int | _subdivisions

## Detailed Description

A triangle with shaded filling according to colors given for each vertex.

The GouraudTriangle structure.

## Member Function Documentation

Point LibBoard::GouraudTriangle::center | ( |  | ) | const`[virtual]`

Returns the gravity center of the shape.

Returns:
  The center of the shape.

Reimplemented from LibBoard::Polyline.

Referenced by rotate(), and rotated().

GouraudTriangle * LibBoard::GouraudTriangle::clone | ( |  | ) | const`[virtual]`

Return a copy of the shape.

Returns:

Reimplemented from LibBoard::Polyline.

void LibBoard::GouraudTriangle::flushFIG | ( | std::ostream & | stream,
|  | const TransformFIG & | transform,
|  | std::map< Color, int > & | colormap |
| ) |  |  | const`[virtual]`

Sends the Triangle to a FIG file format stream.

Warning! Because shading would generally require more colors in the colormap than allowed by the FIG file format, rendering a Gouraud triangle in an XFig file is the same as rendering a simple triangle whose filling color is the average of the vertex colors.

Parameters:

  | stream |
  | transform |
  | Color |
  | colormap |

Reimplemented from LibBoard::Polyline.

void LibBoard::GouraudTriangle::flushPostscript | ( | std::ostream & | stream,
|  | const TransformEPS & | transform |
| ) |  |  | const`[virtual]`

Sends the triangle to a Postscript document.

Parameters:

  | stream |
  | transform |

Reimplemented from LibBoard::Polyline.

References LibBoard::Shape::_depth, LibBoard::Point::x, and LibBoard::Point::y.

void LibBoard::GouraudTriangle::flushSVG | ( | std::ostream & | stream,
|  | const TransformSVG & | transform |
| ) |  |  | const`[virtual]`

Writes the SVG code of the shape in a stream according to a transform.

Parameters:

  | stream | The output stream.
  | transform | A 2D transform to be applied.

Reimplemented from LibBoard::Polyline.

References LibBoard::Shape::_depth, LibBoard::Point::x, and LibBoard::Point::y.

const std::string & LibBoard::GouraudTriangle::name | ( |  | ) | const`[virtual]`

Returns the generic name of the shape (e.g., Circle, Rectangle, etc.)

Returns:

Reimplemented from LibBoard::Polyline.

GouraudTriangle & LibBoard::GouraudTriangle::rotate | ( | double | angle | ) | `[virtual]`

Rotate the shape around its center.

Parameters:

  | angle | The rotation angle in radian.

Returns:
  A reference to the shape itself.

Reimplemented from LibBoard::Polyline.

References center(), and rotate().

GouraudTriangle & LibBoard::GouraudTriangle::rotate | ( | double | angle,
|  | const Point & | center |
| ) |  |  | `[virtual]`

Rotate the shape around a given center of rotation.

Parameters:

  | angle | The rotation angle in radian.
  | center | The center of rotation.

Returns:
  A reference to the shape itself.

Reimplemented from LibBoard::Polyline.

References LibBoard::Path::rotate().

Referenced by rotate(), and rotated().

GouraudTriangle LibBoard::GouraudTriangle::rotated | ( | double | angle | ) | const

Parameters:

  | angle |

Returns:

Reimplemented from LibBoard::Polyline.

References center(), and rotate().

GouraudTriangle LibBoard::GouraudTriangle::rotated | ( | double | angle,
|  | const Point & | center |
| ) |  |  | const

Parameters:

  | angle |
  | center |

Returns:

Reimplemented from LibBoard::Polyline.

References rotate().

void LibBoard::GouraudTriangle::scaleAll | ( | double | s | ) | `[virtual]`

Scales all the values (positions, dimensions, etc.) associated with the shape.

Parameters:

  | s | The scaling factor.

Reimplemented from LibBoard::Polyline.

References LibBoard::Path::scaleAll().

GouraudTriangle LibBoard::GouraudTriangle::scaled | ( | double | sx,
|  | double | sy |
| ) |  |  | const

Returns a scaled copy of the triangle.

Parameters:

  | sx | Scale factor along the x axis.
  | sy | Scale factor along the y axis.

Returns:
  A scaled copy of the arrow.

Reimplemented from LibBoard::Polyline.

GouraudTriangle LibBoard::GouraudTriangle::translated | ( | double | dx,
|  | double | dy |
| ) |  |  | const

Returns a translated copy of the triangle.

Parameters:

  | dx | The shift along the x axis.
  | dy | The shift along the y axis.

Returns:
  A translated copy of the line.

Reimplemented from LibBoard::Polyline.

The documentation for this struct was generated from the following files:

- include/board/Shapes.h
- src/Shapes.cpp