EILOrientedLineSegment Class Reference

Inherits from NSObject
Conforms to NSCoding
Declared in EILOrientedLineSegment.h
EILOrientedLineSegment.m

Overview

Represents a geometrical line segment with additional information about orientation. Object is immutable.

Other Methods

  point1

Coordinates of the first end point of the line segment.

@property (nonatomic, strong, readonly) EILPoint *point1

Declared In

EILOrientedLineSegment.h

  point2

Coordinates of the second end point of the line segment.

@property (nonatomic, strong, readonly) EILPoint *point2

Declared In

EILOrientedLineSegment.h

  orientation

Orientation associated with the line segment. If not defined takes EIL_ORIENTATION_UNDEFINED value. Value is in degrees, counted clockwise.

@property (nonatomic, assign, readonly) double orientation

Declared In

EILOrientedLineSegment.h

Creating and Initializing Line Segments

– initWithPoint1:point2:orientation:

Returns a new oriented line segment object.

- (instancetype)initWithPoint1:(EILPoint *)point1 point2:(EILPoint *)point2 orientation:(double)orientation

Parameters

point1

An EILPoint object representing first end point of the line segment.

point2

An EILPoint object representing second end point of the line segment.

orientation

Orientation of the line segment.

Return Value

A line segment initialized with (point1, point2, orientation).

Declared In

EILOrientedLineSegment.h

+ lineWithPoint1:point2:orientation:

Returns a new oriented line segment object.

+ (instancetype)lineWithPoint1:(EILPoint *)point1 point2:(EILPoint *)point2 orientation:(double)orientation

Parameters

point1

An EILPoint object representing first end point of the line segment.

point2

An EILPoint object representing second end point of the line segment.

orientation

Orientation of the line segment.

Return Value

A line segment initialized with (point1, point2, orientation).

Declared In

EILOrientedLineSegment.h

+ lineWithX1:y1:x2:y2:orientation:

Returns a new oriented line segment object.

+ (instancetype)lineWithX1:(double)x1 y1:(double)y1 x2:(double)x2 y2:(double)y2 orientation:(double)orientation

Parameters

x1

A x coordinate of the first end point of the line segment.

y1

An y coordinate of the first end point of the line segment.

x2

A x coordinate of the second end point of the line segment.

y2

An y coordinate of the second end point of the line segment.

orientation

Orientation of the line segment.

Return Value

A line segment initialized with ((x1,y1), (x2,y2), orientation).

Declared In

EILOrientedLineSegment.h

+ lineWithLine:

Returns a new oriented line segment object based on the given oriented line segment.

+ (instancetype)lineWithLine:(EILOrientedLineSegment *)line

Parameters

line

An oriented line segment.

Return Value

An oriented line initialized with (line.point1, line.point2, line.orientation).

Declared In

EILOrientedLineSegment.h

Operations on line segment

– centerPoint

Calculates a center point of the line. Has the same orientation as the line segment.

- (EILOrientedPoint *)centerPoint

Return Value

A new oriented point representing center of the line segment.

Declared In

EILOrientedLineSegment.h

– leftPoint

Calculates left point of the line.

- (EILOrientedPoint *)leftPoint

Return Value

An oriented point representing left point of the line. It will have the same orientation as the line.

Discussion

If the orientation of the line is pointing at you, the left point will be on the left.

If the line does not have an orientation nil will be returned.

Declared In

EILOrientedLineSegment.h

– rightPoint

Calculates right point of the line.

- (EILOrientedPoint *)rightPoint

Return Value

An oriented point representing right point of the line. It will have the same orientation as the line.

Discussion

If the orientation of the line is pointing at you, the right point will be on the right.

If the line does not have an orientation nil will be returned.

Declared In

EILOrientedLineSegment.h

– length

Calculates length of the line segment.

- (double)length

Return Value

A length of the line.

Declared In

EILOrientedLineSegment.h

– lineTranslatedBydX:dY:

Translates the line segment by a given vector (dX, dY) and returns a new line segment.

- (EILOrientedLineSegment *)lineTranslatedBydX:(double)dX dY:(double)dY

Parameters

dX

Value of translation on X axis.

dY

Value of translation on Y axis.

Return Value

A new line segment translated by (dX, dY).

Declared In

EILOrientedLineSegment.h

Serialization

+ lineFromDictionary:

Deserializes an oriented line segment from NSDictionary.

+ (nullable EILOrientedLineSegment *)lineFromDictionary:(NSDictionary *)dict

Parameters

dict

NSDictionary to deserialize from.

Return Value

An oriented line segment created from NSDictionary.

Declared In

EILOrientedLineSegment.h

– toDictionary

Serializes the oriented line segment to NSDictionary.

- (NSDictionary *)toDictionary

Return Value

An oriented line segment representation in NSDictionary.

Declared In

EILOrientedLineSegment.h

Identifying and Comparing Objects

– isEqual:

Returns a boolean value that indicates whether given oriented line segment is equal to this one.

- (BOOL)isEqual:(nullable id)other

Parameters

other

The object to be compared to this oriented line segment. May be nil.

Return Value

YES if oriented line segments are equal, otherwise NO.

Declared In

EILOrientedLineSegment.h

– isEqualToOrientedLine:

- (BOOL)isEqualToOrientedLine:(nullable EILOrientedLineSegment *)line

See Also

Declared In

EILOrientedLineSegment.h

– hash

Returns an integer that can be used as a table address in a hash table structure.

- (NSUInteger)hash

Declared In

EILOrientedLineSegment.h

Describing Objects

– description

Returns a string representation of the receiver.

- (NSString *)description

Return Value

A string representation of the oriented line segment in form of ((x1,y1),(x2,y2), orientation)

Declared In

EILOrientedLineSegment.h

Encoding and Decoding

– initWithCoder:

Returns an oriented line segment initialized from data in a given unarchiver.

- (nullable instancetype)initWithCoder:(NSCoder *)decoder

Parameters

decoder

An unarchiver object.

Return Value

A new oriented line segment initialized using the data in decoder.

Declared In

EILOrientedLineSegment.h

– encodeWithCoder:

Encodes the oriented line segment using a given archiver.

- (void)encodeWithCoder:(NSCoder *)coder

Parameters

An

archiver object.

Declared In

EILOrientedLineSegment.h