• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

google / vector_math.dart / 17181727464

04 Aug 2025 07:19PM UTC coverage: 26.702% (+0.3%) from 26.388%
17181727464

push

github

web-flow
Bump min SDK to 3.7, update dependencies, reformat (#348)

496 of 1182 new or added lines in 55 files covered. (41.96%)

18 existing lines in 8 files now uncovered.

4463 of 16714 relevant lines covered (26.7%)

1.18 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/lib/src/vector_math_geometry/generators/circle_generator.dart
1
// Copyright (c) 2015, Google Inc. Please see the AUTHORS file for details.
2
// All rights reserved. Use of this source code is governed by a BSD-style
3
// license that can be found in the LICENSE file.
4

5
part of '../../../vector_math_geometry.dart';
6

7
class CircleGenerator extends GeometryGenerator {
8
  late double _radius;
9
  late int _segments;
10
  late double _thetaStart;
11
  late double _thetaLength;
12

13
  @override
×
14
  int get vertexCount => _segments + 2;
×
15

16
  @override
×
17
  int get indexCount => _segments * 3;
×
18

NEW
19
  MeshGeometry createCircle(
×
20
    double radius, {
21
    GeometryGeneratorFlags? flags,
22
    List<GeometryFilter>? filters,
23
    int segments = 64,
24
    double thetaStart = 0.0,
25
    double thetaLength = math.pi * 2.0,
26
  }) {
27
    _radius = radius;
×
28
    _segments = segments;
×
29
    _thetaStart = thetaStart;
×
30
    _thetaLength = thetaLength;
×
31
    return createGeometry(flags: flags, filters: filters);
×
32
  }
33

34
  @override
×
35
  void generateVertexPositions(Vector3List positions, Uint16List indices) {
36
    final v = Vector3.zero();
×
37
    positions[0] = v;
×
38
    var index = 1;
39
    for (var i = 0; i <= _segments; i++) {
×
40
      final percent = i / _segments;
×
41
      v
42
        ..x = _radius * math.cos(_thetaStart + percent * _thetaLength)
×
43
        ..z = _radius * math.sin(_thetaStart + percent * _thetaLength);
×
44
      positions[index] = v;
×
45
      index++;
×
46
    }
47
    assert(index == vertexCount);
×
48
  }
49

50
  @override
×
51
  void generateVertexTexCoords(
52
    Vector2List texCoords,
53
    Vector3List positions,
54
    Uint16List indices,
55
  ) {
56
    final v = Vector2(0.5, 0.5);
×
57
    texCoords[0] = v;
×
58
    var index = 1;
59
    for (var i = 0; i <= _segments; i++) {
×
60
      final position = positions[index];
×
61
      final x = (position.x / (_radius + 1.0)) * 0.5;
×
62
      final y = (position.z / (_radius + 1.0)) * 0.5;
×
63
      v
64
        ..x = x + 0.5
×
65
        ..y = y + 0.5;
×
66
      texCoords[index] = v;
×
67
      index++;
×
68
    }
69
    assert(index == vertexCount);
×
70
  }
71

72
  @override
×
73
  void generateIndices(Uint16List indices) {
74
    var index = 0;
75
    for (var i = 1; i <= _segments; i++) {
×
76
      indices[index] = i;
×
77
      indices[index + 1] = i + 1;
×
78
      indices[index + 2] = 0;
×
79
      index += 3;
×
80
    }
81
    assert(index == indexCount);
×
82
  }
83
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc