* added instance properties and methods to Vertex.java and Triangle.java
to support the sharp edge detection feature in
knowrob_dev/knowrob_mesh_reasoning package
* changed scaling of vertex normals from product of leaving edges to area
of triangle in Model.java
* added properties clusterLabel & clusterCurvatureVal to Vertex util class
for support of KMeans classification
* switched checkIsSharpTriangle from void to bool in Triangle class
* fixed normal / curvature computation bug (together with
* knowrob_mesh_reasoning/src/edu/tum/cs/vis/model/util/algorithm/ModelProcessing.java
* added support to the utility class Triangle for the region growing block
of the segmentation (implemented properties and methods to describe "seed"
triangles)
* added utility class Edge that implements functionality for a triangle
edge as defiend by two distinct vertices
* refactored util classes DrawObject and Triangle to align them to new
class Edge inside the same package
* added multiple methods to Triangle as helpers for the EdgeAnalyser and
ModelProcessing classes from knowrobcad_mesh_reasoning
* shutdown pool when threads finish to avoid memory leaks
* ported Region.java util class from knowrob_mesh_reasoning package and
removed its local duplicate
* changed method reloadVertexList access from private to public
* added regions property field to model instances
* added getter/setter to regions property
* added method to return HashMap of <Integer,Region> type for model
regions
* added method to check if Edge object has a given Vertex
* fixed bug on getSharpEdges method for the case where 1 sharp vertex was
present
* added method to return commond Edge of two Triangle objects
* changed method setCurvatureLevels access modifier from private to public
* brushed up the implementation of Triangle objects such that they contain
Edges in order to optimize computational time and to preserve operations
on Edges for region growing / mergin algorithms
* reworked pieces of code on the dependencies (Edge class) and on the
Parsers
* TODO: find a way to avoid initialization of edges of all Triangles and
this at construction time
* ignore .jar files from jpl
* fixed normal computation for Triangle objects
* minor code refactor for Triangle objects and their dependencies
* added update of edge values when rescaling the model
Fixed neighbor tracking issue:
* fixed neighbor tracking -> implemented functionality across classes for
detecting multiple triangle neighbors sharing the same edge
* refactored addNeighbor in Triangle class
* fixed neighbor tracking -> allowed detection of neighbors for CAD models
that are not watertight (have some small gaps or vertices are not perfectly
sharing their coordinates) up to some tolerance levels
* refactored Edge class with methods for direct Edge neighbors
* refactored Vertex class sameCoordinates method
* added UtilityValues class containing CAD parameters for different
tolerance levels (maybe split it in half for knowrob_mesh_reasoning
part???)
Small code refactor on vizualition pieces:
* refactored DrawObject and Mesh utilities for NullPointerExceptions
robustness
Added MinMax curvature to Vertex clustering:
* refactored utility classes Triangle, Vertex and Region that touched this
part
Refactored minor parts of Triangle class:
* refactored the string literal output of a Triangle object
* refactored warning messages for the search of opposite vertex given an
arbitrary Edge object