<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Hey all, I've been trying to get my topology to build for a while now in my module, and I'm not getting anywhere. I currently have it to the point where I'm simply trying to draw a triangle with corners (0,0), (0,100), &amp; (100,0). It calls&nbsp;<span class="Apple-style-span" style="font-family: Menlo; font-size: 11px; ">Vect_append_point()&nbsp;</span>three times, then&nbsp;<span class="Apple-style-span" style="font-family: Menlo; font-size: 11px; ">Vect_write_line(,GV_BOUNDARY,,)</span>&nbsp;to create the polygon. When building the topology, it fails to create an area with "WARNING: Number of incorrect boundaries: 1".<div><br></div><div>I'm used to raster programming, but I would think that this would work. You can see in the debug that the error shouldn't happen. There aren't duplicate angles. I'm using a recent SVN of GRASS 7.0. Anyone have any idea what I'm doing wrong? Below is the relevant debug output.<div>Thanks,</div><div>Seth</div><div><br></div><div>[...]</div><div><div>Registering primitives...</div><div>D3/3: Vect_read_next_line()</div><div>D3/3: V1_read_next_line_nat()</div><div>D3/3: Vect__Read_line_nat: offset = 18</div><div>D3/3: &nbsp; &nbsp; type = 4, do_cats = 1 dead = 0</div><div>D3/3: &nbsp; &nbsp; n_cats = 1</div><div>D3/3: &nbsp; &nbsp; n_points = 3</div><div>D3/3: &nbsp; &nbsp; off = 107</div><div>D3/3: Register line: offset = 18</div><div>D3/3: dig_spidx_add_line(): line = 1</div><div>D3/3: Register node: type = 4, &nbsp;589971.509972,5300028.490028</div><div>D3/3: dig_find_node()</div><div>D3/3: node = 0</div><div>D3/3: dig_add_node(): n_nodes = 0, alloc_nodes = 0</div><div>D3/3: dig_spidx_add_node(): node = 1, x,y,z = 589971.509972, 5300028.490028, 0.000000</div><div>D3/3: new node = 1, n_nodes = 1, alloc_nodes = 1000</div><div>D3/3: Add new node: 1</div><div>D3/3: dig_node_add_line(): node = 1 line = 1</div><div>D3/3: dig_node_alloc_line(): add = 1</div><div>D3/3: &nbsp; &nbsp; angle = -1.570796</div><div>D3/3: dig_node_add_line(): line 1 added position 0 n_lines: 1 angle -1.570796</div><div>D3/3: Register node 591396.011396,5300028.490028</div><div>D3/3: dig_find_node()</div><div>D3/3: node = 0</div><div>D3/3: dig_add_node(): n_nodes = 1, alloc_nodes = 1000</div><div>D3/3: dig_spidx_add_node(): node = 2, x,y,z = 591396.011396, 5300028.490028, 0.000000</div><div>D3/3: new node = 2, n_nodes = 2, alloc_nodes = 1000</div><div>D3/3: Add new node: 2</div><div>D3/3: dig_node_add_line(): node = 2 line = -1</div><div>D3/3: dig_node_alloc_line(): add = 1</div><div>D3/3: &nbsp; &nbsp; angle = -2.356194</div><div>D3/3: dig_node_add_line(): line -1 added position 0 n_lines: 1 angle -2.356194</div><div>D3/3: dig_cidx_add_cat(): field = 4 cat = 1 line = 1 type = 4</div><div>D3/3: Vect_read_next_line()</div><div>D3/3: V1_read_next_line_nat()</div><div>D3/3: Vect__Read_line_nat: offset = 107</div><div>1 primitives registered</div><div>3 vertices registered</div><div>Building areas...</div><div>&nbsp;100%</div><div>D3/3: Build area for line = 1, side = 1</div><div>D3/3: Vect_build_line_area() line = 1, side = 1</div><div>D3/3: dig_line_get_area(): line = 1, side = 1 (left), area = 0</div><div>D3/3: dig_build_area_with_line(): first_line = 1, side = 1</div><div>D3/3: dig_node_line_angle: node = 1 line = 1</div><div>D3/3: dig__angle_next_line: line = 1, side = 2, type = 4</div><div>D3/3: &nbsp;node = 1</div><div>D3/3: &nbsp; n_lines = 1</div><div>D3/3: &nbsp; i = 0 line = 1 angle = -1.570796</div><div>D3/3: &nbsp; current position = 0</div><div>D3/3: &nbsp; next = 0 line = 1 angle = -1.570796</div><div>D3/3: &nbsp; this one</div><div>D3/3: next_line = 1</div><div>D3/3: dig_node_angle_check: line = 1, type = 4</div><div>D3/3: dig_node_line_angle: node = 1 line = 1</div><div>D3/3: dig__angle_next_line: line = 1, side = 2, type = 4</div><div>D3/3: &nbsp;node = 1</div><div>D3/3: &nbsp; n_lines = 1</div><div>D3/3: &nbsp; i = 0 line = 1 angle = -1.570796</div><div>D3/3: &nbsp; current position = 0</div><div>D3/3: &nbsp; next = 0 line = 1 angle = -1.570796</div><div>D3/3: &nbsp; this one</div><div>D3/3: dig_node_line_angle: node = 1 line = 1</div><div>D3/3: &nbsp; The line to the right has the same angle: node = 1, line = 1</div><div>D3/3: Cannot build area, a neighbour of the line 1 has the same angle at the node</div><div>D3/3: &nbsp; n_lines = 0</div><div>D3/3: Build area for line = 1, side = 2</div><div>D3/3: Vect_build_line_area() line = 1, side = 2</div><div>D3/3: dig_line_get_area(): line = 1, side = 2 (right), area = 0</div><div>D3/3: dig_build_area_with_line(): first_line = 1, side = 2</div><div>D3/3: dig_node_line_angle: node = 1 line = 1</div><div>D3/3: dig__angle_next_line: line = -1, side = 2, type = 4</div><div>D3/3: &nbsp;node = 2</div><div>D3/3: &nbsp; n_lines = 1</div><div>D3/3: &nbsp; i = 0 line = -1 angle = -2.356194</div><div>D3/3: &nbsp; current position = 0</div><div>D3/3: &nbsp; next = 0 line = -1 angle = -2.356194</div><div>D3/3: &nbsp; this one</div><div>D3/3: next_line = -1</div><div>D3/3: dig_node_angle_check: line = -1, type = 4</div><div>D3/3: dig_node_line_angle: node = 2 line = -1</div><div>D3/3: dig__angle_next_line: line = -1, side = 2, type = 4</div><div>D3/3: &nbsp;node = 2</div><div>D3/3: &nbsp; n_lines = 1</div><div>D3/3: &nbsp; i = 0 line = -1 angle = -2.356194</div><div>D3/3: &nbsp; current position = 0</div><div>D3/3: &nbsp; next = 0 line = -1 angle = -2.356194</div><div>D3/3: &nbsp; this one</div><div>D3/3: dig_node_line_angle: node = 2 line = -1</div><div>D3/3: &nbsp; The line to the right has the same angle: node = 2, line = -1</div><div>D3/3: Cannot build area, a neighbour of the line -1 has the same angle at the node</div><div>D3/3: &nbsp; n_lines = 0</div><div>0 areas built</div><div>0 isles built</div></div><div>[...]</div></div></body></html>