Intervals - HiStructClient/femcad-doc GitHub Wiki

Intervals in FemCad

  Fcs.Math.IntervalSet(number, number)

Interval properties:

Count

int :=  Fcs.Math.IntervalSet(-1,6)
int.Count = 1

End values

int :=  Fcs.Math.IntervalSet(-1,6)
int.Intervals[0].Min = -1
int.Intervals[0].Max = 6

Interval contains

 Fcs.Math.IntervalSet(number, number).Contains( value:double,precision:double )

or

 Fcs.Math.IntervalSet(number, number).Contains( value:interval,precision:double )

returns bool

Example

int :=  Fcs.Math.IntervalSet(-1,6)
val := 2
isValInInt := int.Contains( val, 0.001 )
>> isValInInt = True

Example

intA := Fcs.Math.IntervalSet(-1,6)
intB := Fcs.Math.IntervalSet( 2,8)
isIntBInIntA := intA.Contains( intB.Intervals[0], 0.001 )
>> isIntBInIntA = False

Interval subtraction

Fcs.Math.Subtraction(firstInterval, secondInterval)

example:

celyStrudl  := Fcs.Math.IntervalSet(-1,6)
sezralJirka := Fcs.Math.IntervalSet(2,3)
strudlPoJirkovi := Fcs.Math.Subtraction(celyStrudl ,sezralJirka )
strudlPoJirkovi = <-1,2>,<3,6>

sezralRichard := Fcs.Math.IntervalSet(3.5,4)
strudlPoRichardovi := Fcs.Math.Subtraction(strudlPoJirkovi,sezralRichard)
strudlPoRichardovi = <-1,2>,<3,3.5>,<4,6>

tips:

How to get the result of above "strudl-eating" into usable array:

kouskyStrudlu := Fcs.Converters.EnumerableRange(strudlPoRichardovi.Count).Select(i => 
                    {start := c.Intervals[i].Min, 
                     end := c.Intervals[i].Max})

[
   {start = -1, end = 2},
   {start = 3, end = 3.5},
   {start = 4, end = 6}
]
⚠️ **GitHub.com Fallback** ⚠️