|
@@ -21,6 +21,7 @@ vertex41core =
|
|
|
in highp vec4 a_normal;
|
|
|
in highp vec2 a_line_dim; // line width and thickness
|
|
|
in highp float a_extruder;
|
|
|
+ in highp float a_prev_line_type;
|
|
|
in highp float a_line_type;
|
|
|
in highp float a_feedrate;
|
|
|
in highp float a_thickness;
|
|
@@ -32,6 +33,7 @@ vertex41core =
|
|
|
out lowp vec2 v_line_dim;
|
|
|
out highp int v_extruder;
|
|
|
out highp mat4 v_extruder_opacity;
|
|
|
+ out float v_prev_line_type;
|
|
|
out float v_line_type;
|
|
|
|
|
|
out lowp vec4 f_color;
|
|
@@ -92,6 +94,7 @@ vertex41core =
|
|
|
v_normal = (u_normalMatrix * normalize(a_normal)).xyz;
|
|
|
v_line_dim = a_line_dim;
|
|
|
v_extruder = int(a_extruder);
|
|
|
+ v_prev_line_type = a_prev_line_type;
|
|
|
v_line_type = a_line_type;
|
|
|
v_extruder_opacity = u_extruder_opacity;
|
|
|
|
|
@@ -112,9 +115,10 @@ geometry41core =
|
|
|
uniform int u_show_helpers;
|
|
|
uniform int u_show_skin;
|
|
|
uniform int u_show_infill;
|
|
|
+ uniform int u_show_starts;
|
|
|
|
|
|
layout(lines) in;
|
|
|
- layout(triangle_strip, max_vertices = 26) out;
|
|
|
+ layout(triangle_strip, max_vertices = 40) out;
|
|
|
|
|
|
in vec4 v_color[];
|
|
|
in vec3 v_vertex[];
|
|
@@ -122,6 +126,7 @@ geometry41core =
|
|
|
in vec2 v_line_dim[];
|
|
|
in int v_extruder[];
|
|
|
in mat4 v_extruder_opacity[];
|
|
|
+ in float v_prev_line_type[];
|
|
|
in float v_line_type[];
|
|
|
|
|
|
out vec4 f_color;
|
|
@@ -268,6 +273,29 @@ geometry41core =
|
|
|
|
|
|
EndPrimitive();
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ if ((u_show_starts == 1) && (v_prev_line_type[0] != 1) && (v_line_type[0] == 1)) {
|
|
|
+ float w = v_line_dim[0].x / 2;
|
|
|
+ float h = v_line_dim[0].y / 2;
|
|
|
+
|
|
|
+ myEmitVertex(v_vertex[0] + vec3( w, h, w), vec4(1.0, 1.0, 1.0, 1.0), normalize(vec3( 1.0, 1.0, 1.0)), viewProjectionMatrix * (gl_in[0].gl_Position + vec4( w, h, w, 0.0))); // Front-top-left
|
|
|
+ myEmitVertex(v_vertex[0] + vec3(-w, h, w), vec4(1.0, 1.0, 1.0, 1.0), normalize(vec3(-1.0, 1.0, 1.0)), viewProjectionMatrix * (gl_in[0].gl_Position + vec4(-w, h, w, 0.0))); // Front-top-right
|
|
|
+ myEmitVertex(v_vertex[0] + vec3( w, -h, w), vec4(1.0, 1.0, 1.0, 1.0), normalize(vec3( 1.0, -1.0, 1.0)), viewProjectionMatrix * (gl_in[0].gl_Position + vec4( w, -h, w, 0.0))); // Front-bottom-left
|
|
|
+ myEmitVertex(v_vertex[0] + vec3(-w, -h, w), vec4(1.0, 1.0, 1.0, 1.0), normalize(vec3(-1.0, -1.0, 1.0)), viewProjectionMatrix * (gl_in[0].gl_Position + vec4(-w, -h, w, 0.0))); // Front-bottom-right
|
|
|
+ myEmitVertex(v_vertex[0] + vec3(-w, -h, -w), vec4(1.0, 1.0, 1.0, 1.0), normalize(vec3(-1.0, -1.0, -1.0)), viewProjectionMatrix * (gl_in[0].gl_Position + vec4(-w, -h, -w, 0.0))); // Back-bottom-right
|
|
|
+ myEmitVertex(v_vertex[0] + vec3(-w, h, w), vec4(1.0, 1.0, 1.0, 1.0), normalize(vec3(-1.0, 1.0, 1.0)), viewProjectionMatrix * (gl_in[0].gl_Position + vec4(-w, h, w, 0.0))); // Front-top-right
|
|
|
+ myEmitVertex(v_vertex[0] + vec3(-w, h, -w), vec4(1.0, 1.0, 1.0, 1.0), normalize(vec3(-1.0, 1.0, -1.0)), viewProjectionMatrix * (gl_in[0].gl_Position + vec4(-w, h, -w, 0.0))); // Back-top-right
|
|
|
+ myEmitVertex(v_vertex[0] + vec3( w, h, w), vec4(1.0, 1.0, 1.0, 1.0), normalize(vec3( 1.0, 1.0, 1.0)), viewProjectionMatrix * (gl_in[0].gl_Position + vec4( w, h, w, 0.0))); // Front-top-left
|
|
|
+ myEmitVertex(v_vertex[0] + vec3( w, h, -w), vec4(1.0, 1.0, 1.0, 1.0), normalize(vec3( 1.0, 1.0, -1.0)), viewProjectionMatrix * (gl_in[0].gl_Position + vec4( w, h, -w, 0.0))); // Back-top-left
|
|
|
+ myEmitVertex(v_vertex[0] + vec3( w, -h, w), vec4(1.0, 1.0, 1.0, 1.0), normalize(vec3( 1.0, -1.0, 1.0)), viewProjectionMatrix * (gl_in[0].gl_Position + vec4( w, -h, w, 0.0))); // Front-bottom-left
|
|
|
+ myEmitVertex(v_vertex[0] + vec3( w, -h, -w), vec4(1.0, 1.0, 1.0, 1.0), normalize(vec3( 1.0, -1.0, -1.0)), viewProjectionMatrix * (gl_in[0].gl_Position + vec4( w, -h, -w, 0.0))); // Back-bottom-left
|
|
|
+ myEmitVertex(v_vertex[0] + vec3(-w, -h, -w), vec4(1.0, 1.0, 1.0, 1.0), normalize(vec3(-1.0, -1.0, -1.0)), viewProjectionMatrix * (gl_in[0].gl_Position + vec4(-w, -h, -w, 0.0))); // Back-bottom-right
|
|
|
+ myEmitVertex(v_vertex[0] + vec3( w, h, -w), vec4(1.0, 1.0, 1.0, 1.0), normalize(vec3( 1.0, 1.0, -1.0)), viewProjectionMatrix * (gl_in[0].gl_Position + vec4( w, h, -w, 0.0))); // Back-top-left
|
|
|
+ myEmitVertex(v_vertex[0] + vec3(-w, h, -w), vec4(1.0, 1.0, 1.0, 1.0), normalize(vec3(-1.0, 1.0, -1.0)), viewProjectionMatrix * (gl_in[0].gl_Position + vec4(-w, h, -w, 0.0))); // Back-top-right
|
|
|
+
|
|
|
+ EndPrimitive();
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
fragment41core =
|
|
@@ -316,6 +344,7 @@ u_show_travel_moves = 0
|
|
|
u_show_helpers = 1
|
|
|
u_show_skin = 1
|
|
|
u_show_infill = 1
|
|
|
+u_show_starts = 1
|
|
|
|
|
|
u_min_feedrate = 0
|
|
|
u_max_feedrate = 1
|
|
@@ -337,6 +366,7 @@ a_normal = normal
|
|
|
a_line_dim = line_dim
|
|
|
a_extruder = extruder
|
|
|
a_material_color = material_color
|
|
|
+a_prev_line_type = prev_line_type
|
|
|
a_line_type = line_type
|
|
|
a_feedrate = feedrate
|
|
|
a_thickness = thickness
|