diff --git a/include/bounce/garment/garment.h b/include/bounce/garment/garment.h index 6631f43..742ace0 100644 --- a/include/bounce/garment/garment.h +++ b/include/bounce/garment/garment.h @@ -35,6 +35,40 @@ struct b3Garment b3SewingLine* sewingLines; }; +struct b3RectangleGarment : public b3Garment +{ + b3RectanglePattern rectangle; + b3SewingPattern* rectanglePatterns[1]; + + b3RectangleGarment(float32 ex = 1.0f, float32 ey = 1.0f) : rectangle(ex, ey) + { + rectanglePatterns[0] = &rectangle; + + patternCount = 1; + patterns = rectanglePatterns; + + sewingCount = 0; + sewingLines = nullptr; + } +}; + +struct b3CircleGarment : public b3Garment +{ + b3CirclePattern<> circle; + b3SewingPattern* circlePatterns[1]; + + b3CircleGarment(float32 r = 1.0f) : circle(r) + { + circlePatterns[0] = &circle; + + patternCount = 1; + patterns = circlePatterns; + + sewingCount = 0; + sewingLines = nullptr; + } +}; + struct b3ShirtGarment : public b3Garment { b3RectanglePattern frontBody; diff --git a/include/bounce/garment/sewing_pattern.h b/include/bounce/garment/sewing_pattern.h index df176e5..3d2ee57 100644 --- a/include/bounce/garment/sewing_pattern.h +++ b/include/bounce/garment/sewing_pattern.h @@ -55,8 +55,10 @@ struct b3CirclePattern : public b3SewingPattern { b3Vec2 circleVertices[E]; - b3CirclePattern(b3Vec2 center = b3Vec2_zero, float32 radius = 1.0f) + b3CirclePattern(float32 radius = 1.0f) { + b3Vec2 center = b3Vec2_zero; + float32 x = 2.0f * B3_PI / float32(E); float32 c = cos(x); float32 s = sin(x);