~ubuntu-branches/ubuntu/saucy/mapserver/saucy-security

« back to all changes in this revision

Viewing changes to mapscript/swiginc/symbol.i

  • Committer: Package Import Robot
  • Author(s): Francesco Paolo Lovergine
  • Date: 2011-12-23 14:02:06 UTC
  • mfrom: (26.1.2 sid)
  • Revision ID: package-import@ubuntu.com-20111223140206-n3h9t2hsa8hyslmu
Tags: 6.0.1-2
Added missed stuff for libmapscript-perl.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
/* ===========================================================================
2
 
   $Id: symbol.i 6375 2007-07-24 03:32:43Z sdlime $
 
2
   $Id: symbol.i 11472 2011-04-06 02:48:18Z dmorissette $
3
3
 
4
4
   Project:  MapServer
5
5
   Purpose:  SWIG interface file for mapscript symbolObj extensions
88
88
        line->numpoints = self->numpoints;
89
89
        return line;
90
90
    }
91
 
 
92
 
    int setPattern(int index, int value) 
93
 
    {
94
 
        if (index < 0 || index > MS_MAXPATTERNLENGTH) {
95
 
            msSetError(MS_SYMERR, "Can't set pattern at index %d.", "setPattern()", index);
 
91
    
 
92
 
 
93
    %newobject getImage;
 
94
    imageObj *getImage(outputFormatObj *input_format)
 
95
    {
 
96
        imageObj *image;
 
97
        outputFormatObj *format = NULL;
 
98
        rendererVTableObj *renderer = NULL;
 
99
 
 
100
        if (self->type != MS_SYMBOL_PIXMAP)
 
101
        {
 
102
            msSetError(MS_SYMERR, "Can't return image from non-pixmap symbol",
 
103
                       "getImage()");
 
104
            return NULL;
 
105
        }
 
106
    
 
107
        if (input_format)
 
108
        {
 
109
            format = input_format;
 
110
        }
 
111
        else 
 
112
        {
 
113
            format = msCreateDefaultOutputFormat(NULL, "GD/GIF", "gdgif");
 
114
            if (format == NULL)
 
115
                format = msCreateDefaultOutputFormat(NULL, "GD/PNG", "gdpng");
 
116
 
 
117
            if (format)
 
118
                msInitializeRendererVTable(format);
 
119
        }
 
120
        
 
121
        if (format == NULL) 
 
122
        {
 
123
            msSetError(MS_IMGERR, "Could not create output format",
 
124
                       "getImage()");
 
125
            return NULL;
 
126
        }
 
127
 
 
128
        renderer = format->vtable;
 
129
        msPreloadImageSymbol(renderer, self);
 
130
        if (self->pixmap_buffer) 
 
131
        {
 
132
            image = msImageCreate(self->pixmap_buffer->width, self->pixmap_buffer->height, format, NULL, NULL,
 
133
                                  MS_DEFAULT_RESOLUTION, MS_DEFAULT_RESOLUTION, NULL);
 
134
            renderer->mergeRasterBuffer(image, self->pixmap_buffer, 1.0, 0, 0, 0, 0, 
 
135
                                        self->pixmap_buffer->width, self->pixmap_buffer->height);
 
136
        }
 
137
 
 
138
        return image;
 
139
    }
 
140
 
 
141
    int setImage(imageObj *image)
 
142
    {
 
143
        rendererVTableObj *renderer = NULL;
 
144
        
 
145
        renderer = image->format->vtable;
 
146
        
 
147
        if (self->pixmap_buffer) {
 
148
            msFreeRasterBuffer(self->pixmap_buffer);
 
149
            free(self->pixmap_buffer);
 
150
        }
 
151
        
 
152
        self->pixmap_buffer = (rasterBufferObj*)malloc(sizeof(rasterBufferObj));
 
153
        if (!self->pixmap_buffer) {
 
154
            msSetError(MS_MEMERR, NULL, "setImage()");
96
155
            return MS_FAILURE;
97
156
        }
98
 
        self->pattern[index] = value;
 
157
        renderer->initializeRasterBuffer(self->pixmap_buffer, image->width, image->height, image->format->imagemode);
 
158
        self->type = MS_SYMBOL_PIXMAP;
 
159
        renderer->getRasterBufferCopy(image, self->pixmap_buffer);
 
160
 
99
161
        return MS_SUCCESS;
100
162
    }
101
163
 
102
 
    %newobject getImage;
103
 
    imageObj *getImage(outputFormatObj *format)
104
 
    {
105
 
        return msSymbolGetImageGD(self, format);
106
 
    }
107
 
 
108
 
    int setImage(imageObj *image)
109
 
    {
110
 
        return msSymbolSetImageGD(self, image);
111
 
    }
112
 
 
113
164
}
114
165
 
115
166