Class: Geom::Point3d

Inherits:
Object show all
Defined in:
lib/point3d.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializePoint3d #initialize(point) ⇒ Point3d #initialize(array) ⇒ Point3d #initialize(x, y, z = 0.0) ⇒ Point3d

Creates a new 3D point.

Overloads:

  • #initializePoint3d

    Creates a point at the origin with all coordinates set to zero.

  • #initialize(point) ⇒ Point3d

    Parameters:

  • #initialize(array) ⇒ Point3d

    Parameters:

    • array (Array<Numeric>)

      an array of two or three coordinates

  • #initialize(x, y, z = 0.0) ⇒ Point3d

    Parameters:

    • x (Numeric)

      the x coordinate

    • y (Numeric)

      the y coordinate

    • z (Numeric) (defaults to: 0.0)

      the z coordinate



15
16
# File 'lib/point3d.rb', line 15

def initialize(*args)
end

Class Method Details

.linear_combination(weight1, point1, weight2, point2) ⇒ Geom::Point3d

Creates a new point as a linear combination of two points. This method is generally used to get a point at some percentage along a line connecting the two points. The weights should sum up to 1 if you want to get a on that line. The weights should be between 0 and 1 if you want to get a point between the two points.

Parameters:

Returns:



109
110
# File 'lib/point3d.rb', line 109

def self.linear_combination(weight1, point1, weight2, point2)
end

Instance Method Details

#+(vector) ⇒ Geom::Point3d

Returns a new point which is offset from the receiver by the given vector.

Examples:

pt = Geom::Point3d.new(1, 2, 3)
pt2 = pt + [1, 1, 1]
==> Point3d(2, 3, 4)

Parameters:

  • vector (Geom::Vector3d)

    a Vector3d or Array used to offset the point

Returns:

Since:

  • SketchUp 6.0



26
27
# File 'lib/point3d.rb', line 26

def +(vector)
end

#-(vector) ⇒ Geom::Point3d #-(point2) ⇒ Geom::Vector3d

Subtracts from this point.

Overloads:



38
39
# File 'lib/point3d.rb', line 38

def -(vector)
end

#<(point2) ⇒ Boolean

Compare two points coordinate by coordinate. First the x coordinates are compared, if they are equal, the y coordinates are compared, if those are equal finally the z coordinates.

Examples:

pt1 = Geom::Point3d.new(10, 10, 90)
pt2 = Geom::Point3d.new(10, 20, 20)
pt1 < pt2 # ==> true

Parameters:

Returns:

  • (Boolean)

    true if this point's x, y or z coordinate is less



49
50
# File 'lib/point3d.rb', line 49

def < (point2)
end

#==(point2) ⇒ Boolean

Compare Geom::Point3ds using SketchUp tolerance.

Returns:

  • (Boolean)


55
56
# File 'lib/point3d.rb', line 55

def ==(point2)
end

#[](index) ⇒ Numeric

Retrieves the coordinate of the point at the specified index.

Parameters:

  • index (Integer)

    The index 0, 1 or 2 for a specific x, y, or z value within the point.

Returns:

  • (Numeric)

    The coordinate at the specified index.

Raises:

  • IndexError Raised if the index is outside the range [0,2]. Note that negative indices [-3,-1] don't raise.



62
63
# File 'lib/point3d.rb', line 62

def [](index)
end

#[]=(index, value) ⇒ Numeric

Retrieves the coordinate of the point at the specified index.

Parameters:

  • index (Integer)

    The index 0, 1 or 2 for a specific x, y, or z value within the point.

  • value (Numeric)

    The new x, y or z value.

Returns:

  • (Numeric)

    The argument passed for the new value.

Raises:

  • IndexError Raised if the index is outside the range [0,2]. Note that negative indices [-3,-1] don't raise.



70
71
# File 'lib/point3d.rb', line 70

def []=(index, value)
end

#cloneGeom::Point3d

Creates another point identical to the point being cloned.

Returns:



75
76
# File 'lib/point3d.rb', line 75

def clone
end

#distance(point2) ⇒ Length

Compute the distance from this point to another point.

Parameters:

Returns:

  • (Length)

    The distance as length object.



81
82
# File 'lib/point3d.rb', line 81

def distance(point2)
end

#distance_to_line(line) ⇒ Length

Computes the distance from this point to a line.

Parameters:

Returns:

  • (Length)

    The distance as length object.



87
88
# File 'lib/point3d.rb', line 87

def distance_to_line(line)
end

#distance_to_plane(plane) ⇒ Length

Computes the distance from this point to a plane.

Parameters:

Returns:

  • (Length)

    The distance as length object.



93
94
# File 'lib/point3d.rb', line 93

def distance_to_plane(plane)
end

#inspectString

Returns a string containing a human-readable representation of this point.

Returns:

  • (String)

    A string representation of the point



98
99
# File 'lib/point3d.rb', line 98

def inspect
end

#offset(vector, length = vector.length) ⇒ Geom::Point3d

Offsets a point by a vector and returns a new point. The length of the vector must not be zero.

Parameters:

  • vector (Geom::Vector3d, Array<Numeric>)

    A vector providing direction and distance to offset the point by.

  • length (Numeric) (defaults to: vector.length)

    The distance to offset. If not provided, the offset is equal to the vector length.

Returns:



116
117
# File 'lib/point3d.rb', line 116

def offset(vector, length=vector.length)
end

#offset!(vector, length = vector.length) ⇒ self

Applies an offset by a vector to this point. The length of the vector must not be zero.

Parameters:

  • vector (Geom::Vector3d, Array<Numeric>)

    A vector providing direction and distance to offset the point by.

  • length (Numeric) (defaults to: vector.length)

    The distance to offset. If not provided, the offset is equal to the vector length.

Returns:

  • (self)


123
124
# File 'lib/point3d.rb', line 123

def offset!(vector, length=vector.length)
end

#on_line?(line) ⇒ Boolean

Determines if this point is on a line.

Parameters:

Returns:

  • (Boolean)

    true if the point is on the line; false if the point is not on the line



129
130
# File 'lib/point3d.rb', line 129

def on_line?(line)
end

#on_plane?(plane) ⇒ Boolean

Determines if this point is on a plane.

Parameters:

Returns:

  • (Boolean)

    true if the point is on the plane; false if the point is not on the plane



135
136
# File 'lib/point3d.rb', line 135

def on_plane?(plane)
end

#project_to_lineGeom::Point3d

Retrieves the point on a line that is closest to this point.

Parameters:

Returns:

  • (Geom::Point3d)

    A new point that is on a line closest to the point



141
142
# File 'lib/point3d.rb', line 141

def project_to_line
end

#project_to_planeGeom::Point3d

Retrieves the point on a plane that is closest to this point.

Parameters:

Returns:

  • (Geom::Point3d)

    A new point that is on a plane closest to the point



147
148
# File 'lib/point3d.rb', line 147

def project_to_plane
end

#set!(x, y = self.x, z = self.y) ⇒ self

Sets the values of this point.

Parameters:

  • x (Numeric)

    The location along the x axis.

  • y (Numeric) (defaults to: self.x)

    The location along the y axis. If not given, this coordinate is not modified.

  • z (Numeric) (defaults to: self.y)

    The location along the z axis. If not given, this coordinate is not modified.

Returns:

  • (self)


155
156
# File 'lib/point3d.rb', line 155

def set!(x, y=self.x, z=self.y)
end

#to_aArray(Length,Length,Length)

Returns an array representation of this point.

Returns:



160
161
# File 'lib/point3d.rb', line 160

def to_a
end

#to_sString

Returns a string representation of this point.

Returns:

  • (String)

    A string of this point in the current model units, using the user's locale's decimal delimiter.



165
166
# File 'lib/point3d.rb', line 165

def to_s
end

#transform(transformation) ⇒ Geom::Point3d

Applies a transformation to a copy this point to create a new point.

Parameters:

Returns:



171
172
# File 'lib/point3d.rb', line 171

def transform(transformation)
end

#transform!(transformation) ⇒ self

Applies a transformation to this point. Unlike the #transform method, the point itself is modified.

Parameters:

Returns:

  • (self)


178
179
# File 'lib/point3d.rb', line 178

def transform!(transformation)
end

#vector_to(point2) ⇒ Geom::Vector3d

Creates a vector between this point and another point.

Parameters:

Returns:



184
185
# File 'lib/point3d.rb', line 184

def vector_to(point2)
end

#xLength

Retrieves the x coordinate of this point.

Returns:



189
190
# File 'lib/point3d.rb', line 189

def x
end

#x=(value) ⇒ Numeric

Sets the x value of this point.

Parameters:

  • value (Numeric)

    The new x coordinate.

Returns:

  • (Numeric)

    The argument passed for the new value.



195
196
# File 'lib/point3d.rb', line 195

def x=(value)
end

#yLength

Retrieves the y coordinate of this point.

Returns:



200
201
# File 'lib/point3d.rb', line 200

def y
end

#y=(value) ⇒ Numeric

Sets the y value of this point.

Parameters:

  • value (Numeric)

    The new y coordinate.

Returns:

  • (Numeric)

    The argument passed for the new value.



206
207
# File 'lib/point3d.rb', line 206

def y=(value)
end

#zLength

Retrieves the z coordinate of this point.

Returns:



211
212
# File 'lib/point3d.rb', line 211

def z
end

#z=(value) ⇒ Numeric

Sets the z value of this point.

Parameters:

  • value (Numeric)

    The new z coordinate.

Returns:

  • (Numeric)

    The argument passed for the new value.



217
218
# File 'lib/point3d.rb', line 217

def z=(value)
end