From 04ed7383c51a5e23f0ca17bfd9ee9445137ac126 Mon Sep 17 00:00:00 2001 From: Matej Lukes <456316@mail.muni.cz> Date: Mon, 21 Oct 2019 18:17:14 +0200 Subject: [PATCH] JavaDoc added to classes, hashCode() override added --- MeshModel/MeshModel.iml | 2 +- .../analyst/mesh/core/MeshComponent.java | 5 +++++ .../analyst/mesh/core/MeshComposite.java | 5 +++++ .../cz/fidentis/analyst/mesh/core/MeshEdge.java | 17 +++++++++++++++-- .../cz/fidentis/analyst/mesh/core/MeshFace.java | 5 +++++ .../fidentis/analyst/mesh/core/MeshFacet.java | 6 +++++- .../cz/fidentis/analyst/mesh/core/MeshLeaf.java | 6 +++++- .../fidentis/analyst/mesh/core/MeshModel.java | 3 +++ .../fidentis/analyst/mesh/core/MeshPoint.java | 11 ++++++++++- 9 files changed, 54 insertions(+), 6 deletions(-) rename MeshModel/src/main/{ => java}/cz/fidentis/analyst/mesh/core/MeshComponent.java (86%) rename MeshModel/src/main/{ => java}/cz/fidentis/analyst/mesh/core/MeshComposite.java (82%) rename MeshModel/src/main/{ => java}/cz/fidentis/analyst/mesh/core/MeshEdge.java (75%) rename MeshModel/src/main/{ => java}/cz/fidentis/analyst/mesh/core/MeshFace.java (79%) rename MeshModel/src/main/{ => java}/cz/fidentis/analyst/mesh/core/MeshFacet.java (92%) rename MeshModel/src/main/{ => java}/cz/fidentis/analyst/mesh/core/MeshLeaf.java (82%) rename MeshModel/src/main/{ => java}/cz/fidentis/analyst/mesh/core/MeshModel.java (90%) rename MeshModel/src/main/{ => java}/cz/fidentis/analyst/mesh/core/MeshPoint.java (81%) diff --git a/MeshModel/MeshModel.iml b/MeshModel/MeshModel.iml index e29c6dca..6476cacf 100644 --- a/MeshModel/MeshModel.iml +++ b/MeshModel/MeshModel.iml @@ -5,7 +5,7 @@ <output-test url="file://$MODULE_DIR$/target/test-classes" /> <content url="file://$MODULE_DIR$"> <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" /> - <sourceFolder url="file://$MODULE_DIR$/src/main" isTestSource="false" /> + <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" /> <excludeFolder url="file://$MODULE_DIR$/target" /> </content> <orderEntry type="inheritedJdk" /> diff --git a/MeshModel/src/main/cz/fidentis/analyst/mesh/core/MeshComponent.java b/MeshModel/src/main/java/cz/fidentis/analyst/mesh/core/MeshComponent.java similarity index 86% rename from MeshModel/src/main/cz/fidentis/analyst/mesh/core/MeshComponent.java rename to MeshModel/src/main/java/cz/fidentis/analyst/mesh/core/MeshComponent.java index acbea11f..475bb816 100644 --- a/MeshModel/src/main/cz/fidentis/analyst/mesh/core/MeshComponent.java +++ b/MeshModel/src/main/java/cz/fidentis/analyst/mesh/core/MeshComponent.java @@ -2,6 +2,11 @@ package cz.fidentis.analyst.mesh.core; import java.util.List; +/** + * Abstract universal node, implements management of parent elements + * + * @author Matej Lukes + */ public abstract class MeshComponent { private List<MeshComponent> parents; diff --git a/MeshModel/src/main/cz/fidentis/analyst/mesh/core/MeshComposite.java b/MeshModel/src/main/java/cz/fidentis/analyst/mesh/core/MeshComposite.java similarity index 82% rename from MeshModel/src/main/cz/fidentis/analyst/mesh/core/MeshComposite.java rename to MeshModel/src/main/java/cz/fidentis/analyst/mesh/core/MeshComposite.java index e4d1c57e..0c36e473 100644 --- a/MeshModel/src/main/cz/fidentis/analyst/mesh/core/MeshComposite.java +++ b/MeshModel/src/main/java/cz/fidentis/analyst/mesh/core/MeshComposite.java @@ -2,6 +2,11 @@ package cz.fidentis.analyst.mesh.core; import java.util.List; +/** + * Inner node of the Hierarchy, implements management of child elements + * + * @author Matej Lukes + */ public class MeshComposite extends MeshComponent { private List<MeshComponent> children; diff --git a/MeshModel/src/main/cz/fidentis/analyst/mesh/core/MeshEdge.java b/MeshModel/src/main/java/cz/fidentis/analyst/mesh/core/MeshEdge.java similarity index 75% rename from MeshModel/src/main/cz/fidentis/analyst/mesh/core/MeshEdge.java rename to MeshModel/src/main/java/cz/fidentis/analyst/mesh/core/MeshEdge.java index f9a4fd2b..d44572b9 100644 --- a/MeshModel/src/main/cz/fidentis/analyst/mesh/core/MeshEdge.java +++ b/MeshModel/src/main/java/cz/fidentis/analyst/mesh/core/MeshEdge.java @@ -1,7 +1,10 @@ package cz.fidentis.analyst.mesh.core; -import java.util.List; - +/** + * MeshEdge is an edge shared between two MeshFaces. + * + * @author Matej Lukes + */ public class MeshEdge extends MeshComposite { public MeshEdge(MeshPoint point1, MeshPoint point2){ @@ -40,4 +43,14 @@ public class MeshEdge extends MeshComposite { return true; } + + @Override + public int hashCode() { + int hash = 0; + for (MeshComponent point : + getChildren()) { + hash += point.hashCode(); + } + return hash; + } } diff --git a/MeshModel/src/main/cz/fidentis/analyst/mesh/core/MeshFace.java b/MeshModel/src/main/java/cz/fidentis/analyst/mesh/core/MeshFace.java similarity index 79% rename from MeshModel/src/main/cz/fidentis/analyst/mesh/core/MeshFace.java rename to MeshModel/src/main/java/cz/fidentis/analyst/mesh/core/MeshFace.java index 56353420..dc7a6dff 100644 --- a/MeshModel/src/main/cz/fidentis/analyst/mesh/core/MeshFace.java +++ b/MeshModel/src/main/java/cz/fidentis/analyst/mesh/core/MeshFace.java @@ -1,5 +1,10 @@ package cz.fidentis.analyst.mesh.core; +/** + * MeshFace is a surface triangle or planar polygon + * + * @author Matej Lukes + */ public class MeshFace extends MeshComposite { /** * @param newChild new child element must be MeshEdge diff --git a/MeshModel/src/main/cz/fidentis/analyst/mesh/core/MeshFacet.java b/MeshModel/src/main/java/cz/fidentis/analyst/mesh/core/MeshFacet.java similarity index 92% rename from MeshModel/src/main/cz/fidentis/analyst/mesh/core/MeshFacet.java rename to MeshModel/src/main/java/cz/fidentis/analyst/mesh/core/MeshFacet.java index 5afa5c8c..0578c722 100644 --- a/MeshModel/src/main/cz/fidentis/analyst/mesh/core/MeshFacet.java +++ b/MeshModel/src/main/java/cz/fidentis/analyst/mesh/core/MeshFacet.java @@ -1,9 +1,13 @@ package cz.fidentis.analyst.mesh.core; import java.util.HashMap; -import java.util.List; import java.util.Map; +/** + * MashFacet is a group of MeshFaces + * + * @author Matej Lukes + */ public class MeshFacet extends MeshComposite { private Map<MeshPoint, MeshPoint> pointPool = new HashMap<>(); diff --git a/MeshModel/src/main/cz/fidentis/analyst/mesh/core/MeshLeaf.java b/MeshModel/src/main/java/cz/fidentis/analyst/mesh/core/MeshLeaf.java similarity index 82% rename from MeshModel/src/main/cz/fidentis/analyst/mesh/core/MeshLeaf.java rename to MeshModel/src/main/java/cz/fidentis/analyst/mesh/core/MeshLeaf.java index 10f5eb42..19c6e0a4 100644 --- a/MeshModel/src/main/cz/fidentis/analyst/mesh/core/MeshLeaf.java +++ b/MeshModel/src/main/java/cz/fidentis/analyst/mesh/core/MeshLeaf.java @@ -1,8 +1,12 @@ package cz.fidentis.analyst.mesh.core; -import java.util.ArrayList; import java.util.List; +/** + * MeshLeaf is a leaf node of the hierarchy + * + * @author Matej Lukes + */ public class MeshLeaf extends MeshComponent { /** * MeshLeaf does not have child elements diff --git a/MeshModel/src/main/cz/fidentis/analyst/mesh/core/MeshModel.java b/MeshModel/src/main/java/cz/fidentis/analyst/mesh/core/MeshModel.java similarity index 90% rename from MeshModel/src/main/cz/fidentis/analyst/mesh/core/MeshModel.java rename to MeshModel/src/main/java/cz/fidentis/analyst/mesh/core/MeshModel.java index f1c7ff0f..dee66dec 100644 --- a/MeshModel/src/main/cz/fidentis/analyst/mesh/core/MeshModel.java +++ b/MeshModel/src/main/java/cz/fidentis/analyst/mesh/core/MeshModel.java @@ -2,6 +2,9 @@ package cz.fidentis.analyst.mesh.core; import java.util.List; +/** + * MeshModel is a root node of the hierarchy + */ public class MeshModel extends MeshComposite { /** * MeshModel is root element, it does not have parent elements diff --git a/MeshModel/src/main/cz/fidentis/analyst/mesh/core/MeshPoint.java b/MeshModel/src/main/java/cz/fidentis/analyst/mesh/core/MeshPoint.java similarity index 81% rename from MeshModel/src/main/cz/fidentis/analyst/mesh/core/MeshPoint.java rename to MeshModel/src/main/java/cz/fidentis/analyst/mesh/core/MeshPoint.java index e066417b..dc87a21b 100644 --- a/MeshModel/src/main/cz/fidentis/analyst/mesh/core/MeshPoint.java +++ b/MeshModel/src/main/java/cz/fidentis/analyst/mesh/core/MeshPoint.java @@ -1,8 +1,12 @@ package cz.fidentis.analyst.mesh.core; import javax.vecmath.Vector3d; -import java.util.List; +/** + * MeshPoint represents a point with position, normal, and texture coordinates + * + * @author Matej Lukes + */ public class MeshPoint extends MeshLeaf { private final Vector3d position, normal, texCoord; @@ -50,4 +54,9 @@ public class MeshPoint extends MeshLeaf { && this.normal.equals(meshPointObj.normal) && this.texCoord.equals(meshPointObj.texCoord); } + + @Override + public int hashCode() { + return position.hashCode() + normal.hashCode() + texCoord.hashCode(); + } } -- GitLab