diff --git a/MeshModel/MeshModel.iml b/MeshModel/MeshModel.iml index e29c6dca310c26b61d1d875e4eb34838860ffbb4..6476cacf6bb438bfff413f5145f09fc4b3f4285e 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 acbea11f6aeac0bca87c2f72555a64b70e146dcd..475bb816cbdc6aae77d50ef000c61109b452c66b 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 e4d1c57e9eef9a7d1faaabfa0944238f9fb62d9b..0c36e473eb7aa5883c3967b66a76146c955c367e 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 f9a4fd2b903ccbada158733d93d0c3f7d73cbc81..d44572b91efb98da2a33d412f52369b38fcd0c50 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 56353420db51b5258e056136c4e4e4120b4b6228..dc7a6dff591b198ecc3d23e881fdfbe0667d04a9 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 5afa5c8c30ac0e1f6980ea5b26ba5d0ffdf34c68..0578c7221a44e3bfa7a8be86ebeaf5d9e2ac3020 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 10f5eb42dcf44dfbe7e9c9e68778fe3dcbe402d5..19c6e0a48822ca423995a8ab82750235add596f6 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 f1c7ff0fbf7fc81bf6f7ca4b1c5376464c6ac3b8..dee66decfda92fc6ed10dccd7755a22103990367 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 e066417bd5da776d06d6adddb6cc4081627d3b9d..dc87a21bc044dcaed4132143b2c535d1f1202227 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(); + } }