Skip to content
Snippets Groups Projects
Commit 7045deeb authored by Radek Ošlejšek's avatar Radek Ošlejšek
Browse files

Interface extracted from the MeshFacet

parent 4c606675
No related branches found
No related tags found
No related merge requests found
package cz.fidentis.analyst.symmetry;
import cz.fidentis.analyst.mesh.core.MeshFacet;
import cz.fidentis.analyst.mesh.core.MeshFacetImpl;
import cz.fidentis.analyst.mesh.core.MeshPoint;
import cz.fidentis.analyst.mesh.core.MeshPointImpl;
......@@ -54,7 +55,7 @@ public class Plane {
* @return plane represented as mesh
*/
public static SymmetryEstimator createPlaneMesh(MeshPoint centroid, MeshPoint a, MeshPoint b, double scale) {
facet = new MeshFacet();
facet = new MeshFacetImpl();
SymmetryEstimator planeMesh = new SymmetryEstimator(facet, Config.getDefault());
MeshPoint[] points = new MeshPoint[4];
......
package cz.fidentis.analyst.mesh.core;
import java.util.ArrayList;
import java.util.List;
/**
* MashFacet
*
* @author Matej Lukes
*/
public class MeshFacet {
private List<MeshPoint> vertices = new ArrayList<>();
private CornerTable cornerTable;
/**
* Constructor of MeshFacet
*/
public MeshFacet() {
cornerTable = new CornerTable();
}
/**
* Copy constructor of MeshFacet
*
* @param facet copied MeshFacet
*/
public MeshFacet(MeshFacet facet) {
for (MeshPoint vertex: facet.vertices) {
vertices.add(new MeshPointImpl(vertex));
}
cornerTable = new CornerTable(facet.cornerTable);
}
/**
* returns vertex of specified index
*
* @param index index of vertex
* @return vertex
*/
public MeshPoint getVertex(int index) {
return vertices.get(index);
}
/**
* adds vertex to MeshFacet
*
* @param point new vertex
*/
public void addVertex(MeshPoint point) {
vertices.add(point);
}
/**
* returns number of vertices in MeshFacet
*
* @return number of vertices
*/
public int getNumberOfVertices() {
return vertices.size();
}
/**
* returns list of vertices in MeshFacet
*
* @return list if vertices
*/
public List<MeshPoint> getVertices() {
return vertices;
}
/**
* returns Corner Table representing MeshFacet
*
* @return corner table
*/
public CornerTable getCornerTable() {
return cornerTable;
}
}
package cz.fidentis.analyst.mesh.core;
import java.util.List;
/**
* An ancapsulated mesh plate (with shared vertices).
*
* @author Matej Lukes
*/
public interface MeshFacet {
/**
* returns vertex of specified index
*
* @param index index of vertex
* @return vertex
*/
MeshPoint getVertex(int index);
/**
* adds vertex to MeshFacet
*
* @param point new vertex
*/
void addVertex(MeshPoint point);
/**
* returns number of vertices in MeshFacet
*
* @return number of vertices
*/
int getNumberOfVertices();
/**
* returns list of vertices in MeshFacet
*
* @return list if vertices
*/
List<MeshPoint> getVertices();
/**
* returns Corner Table representing MeshFacet
*
* @return corner table
*/
CornerTable getCornerTable();
}
package cz.fidentis.analyst.mesh.core;
import java.util.ArrayList;
import java.util.List;
/**
* MashFacet
*
* @author Matej Lukes
*/
public class MeshFacetImpl implements MeshFacet {
private List<MeshPoint> vertices = new ArrayList<>();
private CornerTable cornerTable;
/**
* Constructor of MeshFacet
*/
public MeshFacetImpl() {
cornerTable = new CornerTable();
}
/**
* Copy constructor of MeshFacet
*
* @param facet copied MeshFacet
*/
public MeshFacetImpl(MeshFacet facet) {
for (MeshPoint vertex: facet.getVertices()) {
vertices.add(new MeshPointImpl(vertex));
}
cornerTable = new CornerTable(facet.getCornerTable());
}
@Override
public MeshPoint getVertex(int index) {
return vertices.get(index);
}
@Override
public void addVertex(MeshPoint point) {
vertices.add(point);
}
@Override
public int getNumberOfVertices() {
return vertices.size();
}
@Override
public List<MeshPoint> getVertices() {
return vertices;
}
@Override
public CornerTable getCornerTable() {
return cornerTable;
}
}
......@@ -26,7 +26,7 @@ public class MeshModel {
public MeshModel(MeshModel meshModel) {
for (MeshFacet facet :
meshModel.facets) {
facets.add(new MeshFacet(facet));
facets.add(new MeshFacetImpl(facet));
}
}
......
......@@ -12,6 +12,7 @@ import com.mokiat.data.front.parser.OBJTexCoord;
import com.mokiat.data.front.parser.OBJVertex;
import cz.fidentis.analyst.mesh.core.CornerTableRow;
import cz.fidentis.analyst.mesh.core.MeshFacet;
import cz.fidentis.analyst.mesh.core.MeshFacetImpl;
import cz.fidentis.analyst.mesh.core.MeshModel;
import cz.fidentis.analyst.mesh.core.MeshPoint;
import cz.fidentis.analyst.mesh.core.MeshPointImpl;
......@@ -91,7 +92,7 @@ public class MeshObjLoader {
* @throws IOException Data are corrupted
*/
private static MeshFacet parseMeshToFacet(OBJModel model, OBJMesh mesh) throws IOException {
MeshFacet meshFacet = new MeshFacet();
MeshFacet meshFacet = new MeshFacetImpl();
Map<MeshPoint, Integer> vertices = new HashMap();
Map<Edge, Integer> edges = new HashMap();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment