In Files

Parent

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.