期間 - 一次元幾何プリミティブ
see gml schema
オブジェクトの生成
begun : When::TM::Instant
始点
ended : When::TM::Instant
終点
# File when/tmobjects.rb, line 363
363: def initialize(begun, ended)
364: raise ArgumentError, 'Order mismatch: begun > ended' if begun > ended
365: @begin = begun
366: @end = ended
367: @begin.begun_by << self
368: @end.ended_by << self
369: end
他のWhen::TM::GeometricPrimitiveとの時間位置の差の絶対値
other : When::TM::GeometricPrimitive returns : When::TM::Duration
# File when/tmobjects.rb, line 307
307: def distance(other)
308: case other
309: when Instant
310: return other.distance(self)
311: when Period
312: verify = other.begin.position - self.end.position
313: return verify if +verify >= 0
314: return [self.begin.position - other.end.position, When.Duration(0)].max
315: else
316: raise TypeError, "The right operand should be Instant or Period"
317: end
318: end
When::TM::GeometricPrimitive 自身の持続時間
returns : When::TM::Duration
# File when/tmobjects.rb, line 298
298: def length()
299: @length ||= @end - @begin
300: end
他のPrimitiveとの相対的な時間位置
other : When::TM::Primitive returns : When::TM::RelativePosition
# File when/tmobjects.rb, line 325
325: def relative_position(other)
326: case other
327: when Instant
328: verify = self.end.position <=> other.position
329: return RelativePosition::Before if verify < 0
330: return RelativePosition::EndedBy if verify == 0
331: verify = self.begin.position <=> other.position
332: return RelativePosition::Contains if verify < 0
333: return RelativePosition::BegunBy if verify == 0
334: return RelativePosition::After
335: when Period
336: verify_b = relative_position(other.begin)
337: case verify_b
338: when RelativePosition::Before ; return RelativePosition::Before
339: when RelativePosition::EndedBy ; return RelativePosition::Meets
340: end
341: verify_e = relative_position(other.end)
342: case verify_e
343: when RelativePosition::BegunBy ; return RelativePosition::MetBy
344: when RelativePosition::After ; return RelativePosition::After
345: else ; return RELATIVE_POSITION[verify_b][verify_e]
346: end
347: else
348: raise TypeError, "The right operand should be Instant or Period"
349: end
350: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.