Re: IDLgrPolygon Leak? [message #70054 is a reply to message #70009] |
Fri, 05 March 2010 21:37  |
KRDean
Messages: 69 Registered: July 2006
|
Member |
|
|
Thanks again Karl.
IDLgrTessellator solved my 'holes' issue. I reposted the code
using the Tessellator object to help with drawing the Shapefile
polygons. Also, taking David's suggestion, which removed the
memory leak.
Kelly Dean
Fort Collins, CO
=============================Test_PolyShp.pro
===========================
;+
;
; <P>Prepare Shapefile Entities for object model.
;
;----------------------------------------------------------- -----------
PRO CountryModel, oModelSHP
COMPILE_OPT DEFINT32, STRICTARR
shpFile = FILEPATH( Subdirectory=['resource', 'maps', 'shape'],
'cntry02.shp' )
oSHP = OBJ_NEW( 'IDLffShape', shpFile )
IF ( OBJ_VALID( oSHP ) ) THEN BEGIN
oModelSHP = OBJ_NEW( 'IDLgrModel' )
oSHP -> GetProperty, N_ENTITIES = num_ent
FOR entn = 0, num_ent-1 DO BEGIN
ent = oSHP -> GetEntity( entn )
IF ( ent.n_parts GE 2 ) THEN BEGIN
cuts = [ (*ent.parts), ent.n_vertices ]
FOR partn = 0, ent.N_parts-1 DO BEGIN
oGon = OBJ_NEW('IDLgrPolygon' )
oTess = OBJ_NEW('IDLgrTessellator')
oTess -> AddPolygon, (*ent.vertices)[*, cuts[partn]:cuts[partn
+1]-1]
iStatus = oTess -> tessellate(fVerts,iConn)
IF (iStatus EQ 1) THEN BEGIN
oGon -> SetProperty, DATA = fVerts, POLYGONS = iConn
oGon -> SetProperty, COLOR = [ 034, 139, 87 ] ; Forest
Green
oModelSHP -> ADD, oGon
ENDIF ELSE BEGIN
STOP
ENDELSE
ENDFOR
ENDIF ELSE IF ( ent.n_parts EQ 1 ) THEN BEGIN
oGon = OBJ_NEW('IDLgrPolygon' )
oTess = OBJ_NEW('IDLgrTessellator')
oTess -> AddPolygon, (*ent.vertices)
iStatus = oTess -> tessellate(fVerts,iConn)
IF (iStatus EQ 1) THEN BEGIN
oGon -> SetProperty, DATA = fVerts, POLYGONS = iConn
oModelSHP -> ADD, oGon
ENDIF ELSE BEGIN
STOP
ENDELSE
OBJ_DESTROY, oTess
ENDIF ELSE BEGIN
ENDELSE
oSHP -> DestroyEntity, ent
ENDFOR
OBJ_DESTROY, oSHP
ENDIF ELSE BEGIN
ENDELSE
END
;+
;
;
;----------------------------------------------------------- -----------
PRO Test_PolyShp
COMPILE_OPT DEFINT32, STRICTARR
CountryModel, oModelCntry
XOBJVIEW, oModelCntry, /BLOCK
Obj_Destroy, oModelCntry
END
|
|
|