<commit_before>part of index_geometry;

/// A fan of connected triangles described by an [VertexArray] and an
/// [IndexList].
///
/// The indices in the [IndexList] must be valid indices for vertices in the
/// [VertexArray]. Each index uniquely identifies a vertex in the [VertexArray].
///
/// Suppose `v0` is the vertex identified by the first index, `v1` is the vertex
/// identified by the second index, `v2` is the vertex identified by the third
/// index, etc. A [TriangleFan] will then combine these vertices into the
/// following sequence of triangles:
///
/// - Triangle `0`: (`a`:`v0`, `b`:`v1`, `c`:`v2`)
/// - Triangle `1`: (`a`:`v0`, `b`:`v2`, `c`:`v3`)
/// - Triangle `2`: (`a`:`v0`, `b`:`v3`, `c`:`v4`)
/// - Triangle `3`: (`a`:`v0`, `b`:`v4`, `c`:`v5`)
/// - Triangle `4`: (`a`:`v0`, `b`:`v5`, `c`:`v6`)
/// - Triangle `5`: ...
///
///     // The connectedness of the vertices a triangle fan:
///     //
///     //      v4--------v3
///     //     / \       / \
///     //    /   \     /   \
///     //   /     \   /     \
///     //  /       \ /       \
///     // v5--------v0-------v2
///     //  \       / \       /
///     //   \     /   \     /
///     //    \   /     \   /
///     //     \ /       \ /
///     //      v6        v1
///
/// See also [Triangles] and [TriangleFan].
class TriangleFan extends IterableBase<TriangleFanTriangleView>
    implements IndexGeometry<TriangleFanTriangleView> {
  final topology = Topology.triangleFan;

  final VertexArray vertices;

  final Uint16List indices;

  final int length;
<commit_msg>Docfix<commit_after>part of index_geometry;

/// A fan of connected triangles described by an [VertexArray] and an
/// [IndexList].
///
/// The indices in the [IndexList] must be valid indices for vertices in the
/// [VertexArray]. Each index uniquely identifies a vertex in the [VertexArray].
///
/// Suppose `v0` is the vertex identified by the first index, `v1` is the vertex
/// identified by the second index, `v2` is the vertex identified by the third
/// index, etc. A [TriangleFan] will then combine these vertices into the
/// following sequence of triangles:
///
/// - Triangle `0`: (`a`:`v0`, `b`:`v1`, `c`:`v2`)
/// - Triangle `1`: (`a`:`v0`, `b`:`v2`, `c`:`v3`)
/// - Triangle `2`: (`a`:`v0`, `b`:`v3`, `c`:`v4`)
/// - Triangle `3`: (`a`:`v0`, `b`:`v4`, `c`:`v5`)
/// - Triangle `4`: (`a`:`v0`, `b`:`v5`, `c`:`v6`)
/// - Triangle `5`: ...
///
///     // The connectedness of the vertices a triangle fan:
///     //
///     //      v4--------v3
///     //     / \       / \
///     //    /   \     /   \
///     //   /     \   /     \
///     //  /       \ /       \
///     // v5--------v0-------v2
///     //  \       / \       /
///     //   \     /   \     /
///     //    \   /     \   /
///     //     \ /       \ /
///     //      v6        v1
///
/// See also [Triangles] and [TriangleStrip].
class TriangleFan extends IterableBase<TriangleFanTriangleView>
    implements IndexGeometry<TriangleFanTriangleView> {
  final topology = Topology.triangleFan;

  final VertexArray vertices;

  final Uint16List indices;

  final int length;

{'fraction_non_alphanumeric': 0.22407704654895666, 'fraction_numerical': 0.02118780096308186, 'mean_word_length': 1.5901911886949294, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '355406', 'n_tokens_mistral': 1105, 'n_tokens_neox': 1054, 'n_words': 284}