NAME

Games::LatticeGenerator::Model - The Games::LatticeGenerator::Model.

VERSION

Version 0.01

SUBROUTINES/METHODS

new

A constructor. It calls the superconstructor and adds a hash "coordinates".

add_knowledge_about_solids

The knowledge about the solids is added to the overall knowledge about the object.

get_amount_of_solids

Returns the amount of solids within the object.

get_candidates

Returns a list of planes connected to the lattice that have a common edge with the given plane.

create_png

Creates an img object (an image).

save_png

Saves an image into a file.

add_knowledge

Adds given knowledge (Prolog facts and rules) to the description.

get_edges

Returns all edges belonging to this object.

get_planes

Returns all planes belonging to this object.

set_the_point_coordinates

Sets the point coordinates. It refers to the points on the lattice (not in the 3D space!), so the points are denoted with their respective plane.

make_decision_whether_to_do_an_overlap

determine_the_coordinates_of_additional_points_for_overlaps

It creates two additional overlap points and calculates their coordinates.

determine_the_coordinates_of_planes_adjacent_to_the_edge

Given an edge of a plane it determines the coordinates of the vertices of the planes adjacent to it.

determine_the_coordinates_beginning_at

Determine the coordinates of the vertices beginning at the first and second one.

determine_the_coordinates

Determine the coordinates of the vertices of the first visible plane (and the others).

select_the_second_point_when_determining_the_coordinates

Given a plane and its vertex (first) select randomly another vertex adjacent to it.

create_a_lattice

Creates a lattice for the given model.

find_common_edges

Stores the knowledge about common edges of visible planes in a separate structure so that we do not need to call Prolog afterwards.

find_internal_angles

Stores the knowledge about internal angles in a separate structure.

add_to_lattice

Finds te candidates and adds them to the lattice.

get_common_edge

get_vertex_planes_if_candidate_is_connected

get_is_connected_with

Returns true if and only if the two planes are identical.

get_internal_angle

Returns the internal angle given a plane and vertex.

get_can_candidate_be_connected_to_lattice_check_vertex_and_plane

Checks whether a candidate can be connected to the lattice. It calculates the sum of internal angles adjacent to a vertex and responds true if and only if it is not greater than 360 degrees.

get_can_candidate_be_connected_to_lattice_check_vertex

Checks whether a candidate plane can be connected to the lattice. It checks the vertex.

get_can_candidate_be_connected_to_lattice

Checks whether a candidate plane can be connected to lattice.

get_common_edge_vertices

Returns the vertices of an edge.

get_common_edge_length

Given two planes it returns the length of the common edge.

add_to_lattice_subsequent_candidates

Adds subsequent candidate planes to the lattice.

get_have_all_planes_been_connected

Checks whether all the planes have been connected.

get_angle_between_vectors

Calculates an angle between two vectors (in degrees).

get_distance

Calculates the distance between two points.

activate_the_planes_of

Activates the planes of the given sheet.

scale_the_lattice

Scales the lattice.

rotate_lattice_optimally

Finds the optimal angle to rotate the active planes coordinates.

get_coordinate

Returns the coordinate of a point.

draw_overlap_lines

draw_lines

Draws the lines of the visible planes.