1 module beziermeshmaker.datastructures.meshpoint; 2 3 import beziermeshmaker.datastructures.quadcell; 4 import beziermeshmaker.datastructures.vec3; 5 6 class MeshPoint { 7 public static immutable int P_TYPE_ORIGINAL = 1; //P type vertices that were vertices in the original mesh 8 public static immutable int P_TYPE_CENTROID = 2; //P type vertices that were centroids in the original mesh 9 public static immutable int M_TYPE = 3; 10 11 //Experimentally determined defaults 12 public static float ALPHA_BLEND_DEFAULT = 2; 13 public static float BETA_BLEND_DEFAULT = 1; 14 15 QuadCell[] neighbors; 16 17 vec3 pt; //The actual location of the point 18 int ptType; 19 20 float alphaBlend, betaBlend; 21 22 this (vec3 pt, int type) { 23 this(pt, type, ALPHA_BLEND_DEFAULT, BETA_BLEND_DEFAULT); 24 } 25 this (vec3 pt, int type, float alphaBlend, float betaBlend) { 26 this.pt = pt; 27 this.ptType = type; 28 this.alphaBlend = alphaBlend; 29 this.betaBlend = betaBlend; 30 } 31 32 public int getIndex(QuadCell cell) { 33 for (int i = 0; i < neighbors.length; i++) { 34 if (neighbors[i] == cell) { 35 return i; 36 } 37 } 38 return -1; 39 } 40 }