### Home Classes Methods

### In Files

- lib/geometry.rb

### Parent

Object

### Methods

- ::new
- #<
- #<=
- #==
- #>
- #>=
- #clone
- #eql?
- #hash
- #point
- #transform
- #x
- #y

### Files

- LessThan5BlueLabels.txt
- AtLeast2LargeSegments.txt

### Class Index

Quicksearch

- AddLabelTool
- AllRulesAppliedGoal
- Area
- AreaConstraint
- Array
- BalancedBinaryTree
- BalancedBinaryTreeNode
- CloseObserver
- Constants
- Constraint
- CurrentLabelledShape
- DistinctShapeConstraint
- Execution
- Goal
- Grammar
- Label
- LabelledShape
- LineDescriptor
- LinearLinkedList
- LinearLinkedListNode
- NoLabelsGoal
- NoMoreRulesGoal
- NoScalesConstraint
- Numeric
- Object
- OrderedPoint
- PiList
- Point
- Project
- Robot
- Rule
- RuleGroupsObserver
- RuleLabelledShape
- RuleShapeObserver
- Segment
- ShaDeLayersObserver
- Shade
- ShadeUtils
- UndoObserver

No matching classes.

# OrderedPoint

Author | Manuela Ruiz (mruiz@lcc.uma.es)

Class that establishes a lexicographyc ordering of the points, taking into account a tolerance threshold given by Constants::EPSILON

### Attributes

point[W]

### Public Class Methods

new(point) click to toggle source

point | a 3D point

Initializes the ordered point

        # File lib/geometry.rb, line 22
    22:         def initialize(point)

    23:                 @point = point

    24:         end

### Public Instance Methods

<(other_point) click to toggle source

other_point | another OrderedPoint
returns | true if this point is lesser than other_point

        # File lib/geometry.rb, line 29
    29:         def < (other_point)

    30:                 result = false

    31:                 dif_x = @point.x - other_point.x

    32:                 abs_x = dif_x.abs

    33:                 if (dif_x < 0) && (abs_x > Constants::EPSILON)

    34:                         result = true

    35:                 elsif abs_x < Constants::EPSILON

    36:                         dif_y = @point.y - other_point.y

    37:                         abs_y = dif_y.abs

    38:                         if (dif_y < 0) && (abs_y > Constants::EPSILON)

    39:                                 result = true

    40:                         end

    41:                 end

    42:                 return result

    43:         end

<=(other_point) click to toggle source

other_point | another OrderedPoint
returns | true if this point is lesser or equal than other_point

        # File lib/geometry.rb, line 72
    72:         def <= (other_point)

    73:                 less = (self < other_point)

    74:                 equal = (self == other_point)

    75:                 return (less || equal)

    76:         end

==(other_point) click to toggle source

other_point | another OrderedPoint
returns | true if this point is equal to other_point

        # File lib/geometry.rb, line 48
    48:         def == (other_point)

    49:                 result = false

    50:                 if other_point.kind_of? OrderedPoint

    51:                         dif_x = @point.x - other_point.x

    52:                         abs_x = dif_x.abs

    53:                         dif_y = @point.y - other_point.y

    54:                         abs_y = dif_y.abs

    55:                         if ((abs_x < Constants::EPSILON) && (abs_y < Constants::EPSILON))

    56:                                 result = true

    57:                         end

    58:                 end

    59:                 return result

    60:         end

>(other_point) click to toggle source

other_point | another OrderedPoint
returns | true if this point is bigger than other_point

        # File lib/geometry.rb, line 65
    65:         def > (other_point)

    66:                 return (other_point < self)

    67:         end

>=(other_point) click to toggle source

other_point | another OrderedPoint
returns | true if this point is bigger or equal than other_point

        # File lib/geometry.rb, line 81
    81:         def >= (other_point)

    82:                 great = (other_point < self)

    83:                 equal = (self== other_point)

    84:                 return (great || equal)

    85:         end

clone() click to toggle source

returns | an OrderedPoint object identical to this

         # File lib/geometry.rb, line 98
     98:         def clone()

     99:                 return OrderedPoint.new(@point.clone)

    100:         end

eql?(other_point) click to toggle source

other_point | another OrderedPoint
returns | true if this point is equal to other_point

         # File lib/geometry.rb, line 105
    105:         def eql?(other_point)

    106:                 result = false

    107:                 if other_point.kind_of? OrderedPoint

    108:                         dif_x = @point.x - other_point.x

    109:                         abs_x = dif_x.abs

    110:                         dif_y = @point.y - other_point.y

    111:                         abs_y = dif_y.abs

    112:                         if ((abs_x < Constants::EPSILON) && (abs_y < Constants::EPSILON))

    113:                                 result = true

    114:                         end

    115:                 end

    116:                 return result

    117:         end

hash() click to toggle source

returns | the hash code of this point

         # File lib/geometry.rb, line 120
    120:         def hash

    121:                 return [self.x.hash, self.y.hash].hash

    122:         end

point() click to toggle source

returns | the internal Point

         # File lib/geometry.rb, line 146
    146:         def point()

    147:                 if Shade.using_sketchup

    148:                         return Geom::Point3d.new(@point.x, @point.y, 0)

    149:                 else

    150:                         return @point

    151:                 end

    152:         end

transform(t) click to toggle source

t | 2x3 transformation matrix

Transform the point according to t

         # File lib/geometry.rb, line 127
    127:         def transform(t)

    128:                 #Extract the coefficients of the transformation matrix

    129:                 ax = t[0]

    130:                 bx = t[1]

    131:                 cx = t[2]

    132:                 ay = t[3]

    133:                 by = t[4]

    134:                 cy = t[5]

    135:                 new_shape = self.clone

    136:

    137:                 #Transform the point

    138:                 new_x = @point.x * ax + @point.y * bx + cx

    139:                 new_y = @point.x * ay + @point.y * by + cy

    140:

    141:                 @point.x = new_x

    142:                 @point.y = new_y

    143:         end

x() click to toggle source

returns | the x coordinate

        # File lib/geometry.rb, line 88
    88:         def x()

    89:                 return @point.x

    90:         end

y() click to toggle source

returns | the y coordinate

        # File lib/geometry.rb, line 93
    93:         def y()

    94:                 return @point.y

    95:         end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.