module Sketchup

# An {ArcCurve} is a {Curve} that makes up part of a circle. This is the
# underlying class for circles as well.
#
# You can think of ArcCurves as entities that were created with SketchUp's Arc
# or Circle drawing tools and Curves as entities that were created with the
# Freehand drawing tool.
#
# However, keep in mind that all Curves in SketchUp are really edges with some
# extra data attached to them. When you use the API to draw a {Curve} or
# {ArcCurve}, you are really drawing edges.
#
# {ArcCurve} is a subclass of {Curve}, so all of the methods that are
# available to Curves are also available to ArcCurves.
#
# @example
#   # Draw a circle on the ground plane around the origin.
#   center_point = Geom::Point3d.new(0,0,0)
#   normal_vector = Geom::Vector3d.new(0,0,1)
#   radius = 10
#
#   entities = Sketchup.active_model.entities
#   edge_array = entities.add_circle center_point, normal_vector, radius
#   first_edge = edge_array
#   arc_curve = first_edge.curve
#
# @see http://www.sketchup.com/intl/en/developer/docs/ourdoc/arccurve ArcCurve Docs
#
# @since SketchUp 6.0
class ArcCurve < Curve

# Get center of the circular arc.
#
# @example
#   center_point = Geom::Point3d.new
#   # Create a circle perpendicular to the normal or Z axis
#   vector = Geom::Vector3d.new 0,0,1
#   vector2 = vector.normalize!
#   model = Sketchup.active_model
#   entities = model.entities
#   edge_array = entities.add_circle center_point, vector2, 10
#   edge = edge_array
#   arc_curve = edge.curve
#   point = arc_curve.center
#
# @return [Geom::Point3d] Center of the arc if successful.
def center
end

# Get the angle of the end of the arc measured from the X axis in radians.
#
# @example
#   # Create a 1/2 circle, normal to the Z axis
#   center = Geom::Point3d.new
#   normal = Geom::Vector3d.new 0,0,1
#   xaxis = Geom::Vector3d.new 1,0,0
#   start_a = 0.0
#   end_a = Math::PI
#   model = Sketchup.active_model
#   entities = model.entities
#   edge_array = entities.add_arc center, xaxis, normal, 5, start_a, end_a
#   edge = edge_array
#   arc_curve = edge.curve
#   end_angle = arc_curve.end_angle
#
# @return [Numeric] The angle of the end of the arc (in radians) if
#   successful.
def end_angle
end

# Get arc normal, the vector that is perpendicular to the plane of the arc.
#
# @example
#   center_point = Geom::Point3d.new
#   # Create a circle perpendicular to the normal or Z axis
#   vector = Geom::Vector3d.new 0,0,1
#   vector2 = vector.normalize!
#   model = Sketchup.active_model
#   entities = model.entities
#   edge_array = entities.add_circle center_point, vector2, 10
#   edge = edge_array
#   arc_curve = edge.curve
#   v = arc_curve.normal
#
# @return [Geom::Vector3d] The normal of the arc if successful.
def normal
end

# Get arc plane.
#
# @note Refer to the {Geom} module for instructions to create a plane.
#
# @example
#   center_point = Geom::Point3d.new
#   # Create a circle perpendicular to the normal or Z axis
#   vector = Geom::Vector3d.new 0,0,1
#   vector2 = vector.normalize!
#   model = Sketchup.active_model
#   entities = model.entities
#   edge_array = entities.add_circle center_point, vector2, 10
#   edge = edge_array
#   arc_curve = edge.curve
#   plane = arc_curve.plane
#
# @return [Array<Numeric>] An a array of four values representing the plane
#   of the arc curve.
def plane
end

# Get arc radius.
#
# @example
#   center_point = Geom::Point3d.new
#   # Create a circle perpendicular to the normal or Z axis
#   vector = Geom::Vector3d.new 0,0,1
#   vector2 = vector.normalize!
#   model = Sketchup.active_model
#   entities = model.entities
#   edge_array = entities.add_circle center_point, vector2, 10
#   edge = edge_array
#   arc_curve = edge.curve
#
# @return [Numeric] The radius of the arc if successful.
end

# Get the angle of the start of the arc, measured from the X axis in
#
# @example
#   # Create a 1/4 circle, radius of 5, normal to the Z axis
#   center = Geom::Point3d.new 0, 0, -1
#   normal = Geom::Vector3d.new 0,0,1
#   xaxis = Geom::Vector3d.new 1,0,0
#   start_a = Math::PI/2
#   end_a = Math::PI
#   model = Sketchup.active_model
#   entities = model.entities
#   edge_array = entities.add_arc center, xaxis, normal, 5, start_a, end_a
#   edge = edge_array
#   arc_curve = edge.curve
#   start_angle = arc_curve.start_angle
#
# @return [Numeric] The angle of the start of the arc (in radians) if
#   successful.
def start_angle
end

# Get the X axis of the arc's coordinate system.
#
# @note The length of the returned vector is equal to the radius of the
#   underlying curve.
#
# @example
#   center_point = Geom::Point3d.new
#   # Create a circle perpendicular to the normal or Z axis
#   vector = Geom::Vector3d.new 0,0,1
#   vector2 = vector.normalize!
#   model = Sketchup.active_model
#   entities = model.entities
#   edge_array = entities.add_circle center_point, vector2, 10
#   edge = edge_array
#   arc_curve = edge.curve
#   v = arc_curve.xaxis
#
# @return [Geom::Vector3d] The xaxis of the arc's coordinate system if
#   successful.
def xaxis
end

# Get the Y axis of the arc's coordinate system.
#
# @note The length of the returned vector is equal to the radius of the
#   underlying curve.
#
# @example
#   center_point = Geom::Point3d.new
#   # Create a circle perpendicular to the normal or Z axis
#   vector = Geom::Vector3d.new 0,0,1
#   vector2 = vector.normalize!
#   model = Sketchup.active_model
#   entities = model.entities
#   edge_array = entities.add_circle center_point, vector2, 10
#   edge = edge_array
#   arc_curve = edge.curve
#   v = arc_curve.yaxis
#
# @return [Geom::Vector3d] The yaxis of the arc's coordinate system if
#   successful.
def yaxis
end

end # class ArcCurve < Curve
end # module Sketchup