reflexion 0.1.47 → 0.1.48
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/ChangeLog.md +5 -0
- data/VERSION +1 -1
- data/src/shape.cpp +62 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f3d0609202b8620c5b7e5390dab43005bd7638529aaf8ea0b70e59f89590776e
|
4
|
+
data.tar.gz: 90739081a2547266e5393593524655eca4964e6d6c038655df675eac812a2622
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 58cc9b938687a48640c9874ac9267fa9937012656350d378c55175a3b6cb229562535e48ffb4136c81927c32aca913c9c2ab55bc300e8ab11a78d7cb2d2dad44
|
7
|
+
data.tar.gz: 3fe06d4cbfcecd5c61caa472d6ab8598335cb78dcb19ae8a3b16f84c2392bd341313ba6ae67dbd0196804668e532a13f0a3d75ab657030d2be528efab2c773b5
|
data/ChangeLog.md
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.48
|
data/src/shape.cpp
CHANGED
@@ -793,6 +793,68 @@ namespace Reflex
|
|
793
793
|
|
794
794
|
uint nsegment = 0;
|
795
795
|
|
796
|
+
Fixture* create_fixtures (Shape* shape) override
|
797
|
+
{
|
798
|
+
if (!has_rounds())
|
799
|
+
return create_rect_fixture(shape);
|
800
|
+
else if (nsegment <= 1)
|
801
|
+
return create_rect_fixture_without_division(shape);
|
802
|
+
else
|
803
|
+
return Super::create_fixtures(shape);
|
804
|
+
}
|
805
|
+
|
806
|
+
Fixture* create_rect_fixture (Shape* shape)
|
807
|
+
{
|
808
|
+
assert(shape);
|
809
|
+
|
810
|
+
if (!owner)
|
811
|
+
invalid_state_error(__FILE__, __LINE__);
|
812
|
+
|
813
|
+
Bounds f = get_frame();
|
814
|
+
float ppm = owner->meter2pixel();
|
815
|
+
|
816
|
+
coord l = to_b2coord(f.x, ppm);
|
817
|
+
coord t = to_b2coord(f.y, ppm);
|
818
|
+
coord r = to_b2coord(f.x + f.w, ppm);
|
819
|
+
coord b = to_b2coord(f.x + f.h, ppm);
|
820
|
+
b2Vec2 b2points[] = {{l, t}, {l, b}, {r, b}, {r, t}};
|
821
|
+
|
822
|
+
b2PolygonShape b2shape;
|
823
|
+
b2shape.Set(&b2points[0], 4);
|
824
|
+
|
825
|
+
return FixtureBuilder(shape, &b2shape).fixtures();
|
826
|
+
}
|
827
|
+
|
828
|
+
Fixture* create_rect_fixture_without_division (Shape* shape)
|
829
|
+
{
|
830
|
+
assert(shape);
|
831
|
+
|
832
|
+
if (!owner)
|
833
|
+
invalid_state_error(__FILE__, __LINE__);
|
834
|
+
|
835
|
+
Bounds f = get_frame();
|
836
|
+
float ppm = owner->meter2pixel();
|
837
|
+
|
838
|
+
Polygon polygon = Rays::create_rect(
|
839
|
+
f.x, f.y, f.width, f.height,
|
840
|
+
round_left_top, round_right_top,
|
841
|
+
round_left_bottom, round_right_bottom,
|
842
|
+
1);
|
843
|
+
assert(polygon.size() == 1);
|
844
|
+
|
845
|
+
const Polyline& polyline = polygon[0];
|
846
|
+
assert(polyline[0].size() <= 8);
|
847
|
+
|
848
|
+
b2Vec2 b2points[8];
|
849
|
+
for (size_t i = 0; i < polyline.size(); ++i)
|
850
|
+
b2points[i] = to_b2vec2(polyline[i], ppm);
|
851
|
+
|
852
|
+
b2PolygonShape b2shape;
|
853
|
+
b2shape.Set(&b2points[0], polyline.size());
|
854
|
+
|
855
|
+
return FixtureBuilder(shape, &b2shape).fixtures();
|
856
|
+
}
|
857
|
+
|
796
858
|
Polygon get_polygon_for_shape () const override
|
797
859
|
{
|
798
860
|
return Rays::create_rect(
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: reflexion
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.48
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- xordog
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-07-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: xot
|