SetFactory("OpenCASCADE");
Rectangle(1) = {-0.7, -0.2, 0, 1, 0.5, 0.1};

//------------------------------------------------------------------------------


// case A: specify a value, only to be changed later 
Point(9) = {-0.39, 0.21, 0, 1.0};
Point(10) = {-0.25, 0.14, 0, 1.0};
Point(11) = {-0.12, -0.05, 0, 1.0};
Point(12) = {-0.03, 0.12, 0, 1.0};
Point(13) = {0.14, 0.12, 0, 1.0};

Spline(9) = {9, 10, 11, 12, 13};

// works even if the characteristic length was set initialization ^
Characteristic Length { PointsOf{ Curve{9}; } } = 0.01;


//------------------------------------------------------------------------------

/*
// case B: don't specify the characteristic lengths 
Point(9) = {-0.39, 0.21, 0};
Point(10) = {-0.25, 0.14, 0};
Point(11) = {-0.12, -0.05, 0};
Point(12) = {-0.03, 0.12, 0};
Point(13) = {0.14, 0.12, 0};

Spline(9) = {9, 10, 11, 12, 13};

// only works if the characteristic length wasn't set on initialization
Characteristic Length { 9,10,11,12,13 } = 0.01;
*/

// maybe a subtle difference between PointsOf and directly specifying tags?

//------------------------------------------------------------------------------

/*
// case C: specify the characteristic lengths then use the tags directly 
// DOESN'T WORK 
Point(9) = {-0.39, 0.21, 0, 1.0};
Point(10) = {-0.25, 0.14, 0, 1.0};
Point(11) = {-0.12, -0.05, 0, 1.0};
Point(12) = {-0.03, 0.12, 0, 1.0};
Point(13) = {0.14, 0.12, 0, 1.0};

Spline(9) = {9, 10, 11, 12, 13};

// only works if the characteristic length wasn't set on initialization
Characteristic Length { 9,10,11,12,13 } = 0.01;
*/

//------------------------------------------------------------------------------

BooleanFragments{ Surface{1}; Delete; }{ Curve{9}; Delete; }


