GL Studio C++ Runtime API
ShapefileMapChartDataSource Class Reference

Map chart data source for loading Shapefiles. More...

#include <gls_map_shapefile.h>

Inheritance diagram for ShapefileMapChartDataSource:
GlsMapChartDataSource

Classes

class  RenderingAttorney
 
struct  ShapePoint
 Cartesian coordinate used by the points that define the paths loaded from shapefiles. More...
 

Public Types

typedef void(* RenderPointFeatureCB) (void *const userData, const char *featureSet, const char *featureType, double longitude, double latitude, const glsColor &color, const GeoRect &region, const double logicalHeight)
 
typedef void(* RenderLineFeatureCB) (void *const userData, const char *featureSet, const char *featureType, const DynamicArray< ShapePoint > &points, const GeoRect &region, const double logicalHeight)
 

Public Member Functions

 ShapefileMapChartDataSource ()
 Constructor.
 
 ~ShapefileMapChartDataSource ()
 Destructor - stops rendering and releases all libraries.
 
bool LoadLibraryAs (const char *shapefileRootPath, LibraryID libraryID)
 
bool UnloadLibrary (LibraryID libraryID)
 
DynamicArray< LibraryID > GetLoadedLibraries () const
 
bool EnableLibraryRendering (LibraryID libraryID, bool enable=true)
 
bool IsLibraryRenderingEnabled (LibraryID libraryID, bool &isEnabled) const
 
DynamicArray< const char * > GetOrderedFeatureSetNames (LibraryID libraryID) const
 
bool SetOrderedFeatureSetNames (LibraryID libraryID, const DynamicArray< const char * > &orderedFeatureSetNames)
 
DynamicArray< const char * > GetFeatureTypes (LibraryID libraryID, const char *featureSet) const
 
bool GetFeatureSetVisibility (LibraryID libraryID, const char *featureSet, const char *featureType, bool &isVisible) const
 
bool SetFeatureSetVisibility (LibraryID libraryID, const char *featureSet, const char *featureType, bool isVisible)
 
bool GetFeatureSetPointStyle (LibraryID libraryID, const char *featureSet, const char *featureType, glsColor &color, RenderPointFeatureCB &renderCB, void *&userData, bool &useMapScale) const
 
bool SetFeatureSetPointStyle (LibraryID libraryID, const char *featureSet, const char *featureType, const glsColor &color, const RenderPointFeatureCB renderCB=NULL, void *const userData=NULL, const bool useMapScale=NULL)
 
bool GetFeatureSetLineStyle (LibraryID libraryID, const char *featureSet, const char *featureType, glsColor &color, float &width, uint16_t &stipplePattern, int &stippleMultiplier) const
 
bool GetFeatureSetLineStyle (const LibraryID libraryID, const char *const featureSet, const char *const featureType, RenderLineFeatureCB &renderCB, void *&userData) const
 
bool SetFeatureSetLineStyle (LibraryID libraryID, const char *featureSet, const char *featureType, glsColor color, float width=DEF_LINE_WIDTH, uint16_t stipplePattern=DEF_LINE_STIPPLE_PATTERN, int stippleMultiplier=0)
 
bool SetFeatureSetLineStyle (LibraryID libraryID, const char *featureSet, const char *featureType, const RenderLineFeatureCB renderCB, void *const userData=NULL)
 
bool GetFeatureSetFillStyle (LibraryID libraryID, const char *featureSet, const char *featureType, glsColor &color, bool &drawBoundary, glsColor &boundaryColor, float &boundaryWidth, uint16_t &boundaryStipplePattern, int &boundaryStippleMultiplier) const
 
bool SetFeatureSetFillStyle (LibraryID libraryID, const char *featureSet, const char *featureType, const glsColor &color, bool drawBoundary=false, const glsColor &boundaryColor=glsColor(0, 0, 0, 255), float boundaryWidth=DEF_LINE_WIDTH, uint16_t boundaryStipplePattern=DEF_LINE_STIPPLE_PATTERN, int boundaryStippleMultiplier=0)
 
bool GetFeatureSetTextStyle (LibraryID libraryID, const char *featureSet, const char *featureType, GlsFontBase *&glsFont, glsColor &textColor, double &scale, double &xOffset, double &yOffset, bool &isVisible) const
 
bool SetFeatureSetTextStyle (LibraryID libraryID, const char *featureSet, const char *featureType, GlsFontBase *glsFont, const glsColor &textColor=glsColor(0, 0, 0, 255), double scale=1.0, double xOffset=0.0f, double yOffset=0.0f, bool isVisible=true)
 
bool SetCacheDimensions (LibraryID libraryID, double degreesLongitude, double degreesLatitude)
 
bool GetAvailableCoverage (GeoRect *dest) DISTI_METHOD_OVERRIDE
 See base class.
 
LayerID GetBestLayer (GlsMapView *view, GlsMapChart *chart) const DISTI_METHOD_OVERRIDE
 
void GetCellList (const GeoRect &coverage, LayerID layerID, double viewLogicalHeight, double viewGeoHeight, MapChartCellList &viewList) DISTI_METHOD_OVERRIDE
 See base class.
 
- Public Member Functions inherited from GlsMapChartDataSource
virtual ~GlsMapChartDataSource ()
 Destructor for abstract base class.
 
virtual void PostDraw (GlsMapView *view, GlsMapChart *chart)
 
virtual bool AreAllCellsLoaded (GlsMapView *view, GlsMapChart *chart)
 

Additional Inherited Members

- Protected Member Functions inherited from GlsMapChartDataSource
 GlsMapChartDataSource ()
 Constructor for subclasses.
 

Detailed Description

Map chart data source for loading Shapefiles.

Note
The ESRI Shapefile specification does not deal with shapefiles at different scales or levels of detail (e.g., 1:100k, 1:250k, 1:1M, etc.). This program, paralleling the DNC map data source, calls these different shapefiles "libraries". Multiple libraries can be loaded simultaneously and then unloaded when desired, all in the same data source.
The ESRI Shapefile specification calls sets of features "layers", but the MapToolkit already used that term to refer to the different bin sizes it renders the Shapefile's vector data at. Due to existing virtual function names with "layer" in them, we retain MapToolkit's use of the term and substitute "feature set" (or use "Shapefile layer" when necessary) for Shapfile's notion of a "layer".

A feature set often (but not always) comes from a single .shp file with a single Shapefile layer and contains different subtypes of features (e.g., natural.shp may have feature types "forest", "river", etc.).

Note
Each library has a set of attributes (visibility, color, etc.) for each of its feature sets, and each feature set has optional attributes to override the defaults for a specific feature type within set. These default and overridden attributes can be controlled with the setter and getter member functions.

For instance, the "natural" feature set could have black as the line color for all its features but override it to blue for rivers and green for forests.

Member Typedef Documentation

typedef void( * RenderLineFeatureCB) (void *const userData, const char *featureSet, const char *featureType, const DynamicArray< ShapePoint > &points, const GeoRect &region, const double logicalHeight)

Draw callback for a user supplied line feature render routine. This routine is called with the model matrix loaded appropriately as to draw at the correct location.

Parameters
userDatauser supplied data for callback (supplied with SetPointFeatureRenderCB())
featureSetThe name of the feature set (often corresponds to a single .shp file).
featureTypeThe name of a type of feature within the feature set (e.g., in a "natural" feature set, there might be "water" and "forest" among others).
pointsthe vertices of the path.
regionregion of the chart that is rendering
logicalHeightheight in logical units corresponding to height of render region
typedef void( * RenderPointFeatureCB) (void *const userData, const char *featureSet, const char *featureType, double longitude, double latitude, const glsColor &color, const GeoRect &region, const double logicalHeight)

Draw callback for a user supplied point feature render routine. This routine is called with the model matrix loaded appropriately as to draw at the correct location using the origin (i.e., a vertex draw to (0,0) will map to the correct location as described by pointCoord. This routine does not need to save the model stack as the caller will push and pop (save) it accordingly.

Parameters
userDatauser supplied data for callback (supplied with SetPointFeatureRenderCB())
featureSetThe name of the feature set (often corresponds to a single .shp file).
featureTypeThe name of a type of feature within the feature set (e.g., in a "natural" feature set, there might be "water" and "forest" among others).
longitudelongitude of point feature
latitudelongitude of point feature
colorcolor assigned to point feature
regionregion of the chart that is rendering
logicalHeightheight in logical units corresponding to height of render region

Member Function Documentation

bool EnableLibraryRendering ( LibraryID  libraryID,
bool  enable = true 
)

Enable a given library to render. By default, only one library is set to render at a time. This function allows the user to render multiple libraries at a time, which may be useful if the libraries have orthogonal features in them, e.g., one library for roads, one for buildings, etc. (More commonly, a library has multiple feature sets within it, and each library covers the same geographic area but represents a different scale or level of detail.) Libraries are rendered in the order of their LibraryIDs, starting with the smallest value on the "bottom" of the texture and the next smallest writing on top of it (possibly overwriting).

Parameters
libraryIDThe library to update. If not found, this function emits a warning to the console and returns false without changing rendering.
enableWhether the library should be enabled (defaults to true).
Returns
true if the library was found.
See also
IsLibraryRenderingEnabled()
LoadLibraryAs()
LayerID GetBestLayer ( GlsMapView view,
GlsMapChart chart 
) const
virtual

See base class

Note
: "Layer" here refers to internal resolution level, not Shapefile layer.

Reimplemented from GlsMapChartDataSource.

bool GetFeatureSetFillStyle ( LibraryID  libraryID,
const char *  featureSet,
const char *  featureType,
glsColor color,
bool &  drawBoundary,
glsColor boundaryColor,
float &  boundaryWidth,
uint16_t &  boundaryStipplePattern,
int &  boundaryStippleMultiplier 
) const

Retrieves the current fill style of the features in feature set.

Parameters
libraryIDThe library to query.
featureSetThe name of the feature set (often corresponds to a single .shp file). If null or not found, it emits a warning to the console and returns false.
featureTypeThe name of a type of feature within the feature set (e.g., in the "natural" feature set, there might be "water" and "forest" among others). If null or empty, it returns the default visibility for the feature set. If not found, it emits a warning to the console and returns false.
[out]colorThe fill color for the requested features.
[out]drawBoundaryWhether or not to draw the area boundary
[out]boundaryColorThe boundary color for the requested features.
[out]boundaryWidthThe line width
[out]boundaryStipplePatternThe stipple pattern for lines (see documentation of glLineStipple())
[out]boundaryStippleMultiplierThe multiplier for stippling (see documentation of glLineStipple())
Returns
true if the feature set and type (if not null/empty) were found. If false, the output parameter is unchanged.
bool GetFeatureSetLineStyle ( LibraryID  libraryID,
const char *  featureSet,
const char *  featureType,
glsColor color,
float &  width,
uint16_t &  stipplePattern,
int &  stippleMultiplier 
) const

Retrieves the current line style of the features in feature set.

Parameters
libraryIDThe library to query.
featureSetThe name of the feature set (often corresponds to a single .shp file). If null or not found, it emits a warning to the console and returns false.
featureTypeThe name of a type of feature within the feature set (e.g., in the "natural" feature set, there might be "water" and "forest" among others). If null or empty, it returns the default line style for the feature set. If not found, it emits a warning to the console and returns false.
[out]colorThe line color for the requested features.
[out]widthThe line width for the requested features.
[out]stipplePatternThe line stipple pattern for the requested features.
[out]stippleMultiplierThe line stipple multiplier for the requested features.
Returns
true if the feature set and type were found and they were set with the corresponding overload of SetFeatureSetLineStyle(); false otherwise. (If returning false, the output parameters are unchanged.)
bool GetFeatureSetLineStyle ( const LibraryID  libraryID,
const char *const  featureSet,
const char *const  featureType,
RenderLineFeatureCB renderCB,
void *&  userData 
) const

Retrieves the current line callback for the feature set.

Parameters
libraryIDThe library to query.
featureSetThe name of the feature set (often corresponds to a single .shp file). If null or not found, it emits a warning to the console and returns false.
featureTypeThe name of a type of feature within the feature set (e.g., in the "natural" feature set, there might be "water" and "forest" among others). If null or empty, it returns the default line style for the feature set. If not found, it emits a warning to the console and returns false.
[out]renderCBThe line callback
[out]userDataThe user data passed to the callback
Returns
true if the feature set and type were found and they were set with the corresponding overload of SetFeatureSetLineStyle(); false otherwise. (If returning false, the output parameters are unchanged.)
bool GetFeatureSetPointStyle ( LibraryID  libraryID,
const char *  featureSet,
const char *  featureType,
glsColor color,
RenderPointFeatureCB renderCB,
void *&  userData,
bool &  useMapScale 
) const

Retrieves the current point style of the features in feature set.

Parameters
libraryIDThe library to query.
featureSetThe name of the feature set (often corresponds to a single .shp file). If null or not found, it emits a warning to the console and returns false.
featureTypeThe name of a type of feature within the feature set (e.g., in the "natural" feature set, there might be "water" and "forest" among others). If null or empty, it returns the default point style for the feature set. If not found, it emits a warning to the console and returns false.
[out]colorThe point color for the requested features.
[out]renderCBrender callback else NULL for no callback
[out]userDatauser supplied data to be handed to callback
[out]useMapScaletrue if point feature should scale with the map (will become larger as the view zooms in), false is point feature should scale to attempt maintain the same size in logical space regardless of the map zoom
Returns
true if the feature set and type (if not null/empty) were found. If false, the output parameters are unchanged.
bool GetFeatureSetTextStyle ( LibraryID  libraryID,
const char *  featureSet,
const char *  featureType,
GlsFontBase *&  glsFont,
glsColor textColor,
double &  scale,
double &  xOffset,
double &  yOffset,
bool &  isVisible 
) const

Retrieves the current text style of the features in feature set.

Parameters
libraryIDThe library to query.
featureSetThe name of the feature set (often corresponds to a single .shp file). If null or not found, it emits a warning to the console and returns false.
featureTypeThe name of a type of feature within the feature set (e.g., in the "natural" feature set, there might be "water" and "forest" among others). If null or empty, it returns the default visibility for the feature set. If not found, it emits a warning to the console and returns false.
[out]glsFontThe instance of a font in this GL Studio project
[out]textColorThe text color for the requested features.
[out]isVisibleWhether the text is visible for the requested features.
[out]scaleThe scale of the text (default = 1.0)
[out]xOffsethorizontal offset from the default text location (text starts at the center of its objects extents)
[out]yOffsetvertical offset from the default text location (text starts at the center of its objects extents)
Note
This function does not take ownership of the strings passed in.
Returns
true if the feature set and type (if not null/empty) were found. If false, the output parameters are unchanged.
bool GetFeatureSetVisibility ( LibraryID  libraryID,
const char *  featureSet,
const char *  featureType,
bool &  isVisible 
) const

Retrieves the current visibility of the features in the given feature set, optionally limited to a single feature type.

Parameters
libraryIDThe library to query.
featureSetThe name of the feature set (often corresponds to a single .shp file). If null, empty, or not found, it emits a warning to the console and returns false.
featureTypeThe name of a type of feature within the feature set (e.g., in a "natural" feature set, there might be "water" and "forest" among others). If null or empty, it returns the default visibility for the feature set. If not found, it emits a warning to the console and returns false.
[out]isVisibleWhether the requested features are visible.
Returns
true if the feature set and type (if not null/empty) were found. If false, the output parameter is unchanged.
DynamicArray<const char*> GetFeatureTypes ( LibraryID  libraryID,
const char *  featureSet 
) const

Returns a list of feature types in the given featureSetName within the given library.

Parameters
libraryIDThe library to query.
featureSetThe name of the feature set. If null or not found, this function emits an error to the console and returns an empty array.
Note
The caller is NOT responsible to delete/free the pointers in the returned array. They are guaranteed valid until LoadLibraryAs() or UnloadLibrary() is called for this library.
DynamicArray<LibraryID> GetLoadedLibraries ( ) const

Returns a list of all currently loaded library IDs.

See also
LoadLibraryAs()
UnloadLibrary()
DynamicArray<const char*> GetOrderedFeatureSetNames ( LibraryID  libraryID) const

Returns a list of feature set names in the order they are to be drawn, from bottom to top.

Parameters
libraryIDThe library to query. If not found, the function emits a warning to the console and returns an empty array.
Note
The caller is NOT responsible to delete the pointers in the array. They are guaranteed valid until LoadLibraryAs() or UnloadLibrary() is called for this libraryID.
See also
SetOrderedFeatureSetNames()
GetFeatureNames()
bool IsLibraryRenderingEnabled ( LibraryID  libraryID,
bool &  isEnabled 
) const

Query whether a given library is set to render.

Parameters
libraryIDThe library to update. If not found, this function emits a warning to the console and returns false without changing the output parameter.
[out]isEnabledWhether the library is enabled
Returns
true if the library was found.
See also
EnableLibraryRendering()
bool LoadLibraryAs ( const char *  shapefileRootPath,
LibraryID  libraryID 
)

Load a Shapefile (or files) from the given path and associate it with a given library identifier.

Parameters
shapefileRootPathpath to Shapefile or directory containing Shapefile(s). Multiple files in one folder will be considered one library. If null, empty, or not found, the function emits an error and returns false.
libraryIDThe library ID (see note), often the scale of this library. It acts as a handle to this library for other operations on it using this data source.

If the path loads successfully but the ID has already been used, it will unload the old data and replace it with the data from this path after emitting a warning to the console (unload first to avoid the warning).

The library ID also controls what order multiple enabled libraries are rendered in, starting with the lowest libraryID and going to the largest.

Note
This method can be called repeatedly to add multiple libraries to this data source. The loading of different libraries can take place in any order, and multiple libraries can be loaded into the same data source object. Only the first library loaded is enabled for rendering; EnableLibraryRendering() controls which library or libraries render. The libraryID controls the order of rendering when multiple libraries are enabled.
See also
UnloadLibrary()
GetLoadedLibraries()
EnableLibraryRendering()
Note
We would name this LoadLibrary(), but Windows #defines LoadLibrary, which interferes.
Returns
Returns whether the path was loaded successfully.
bool SetCacheDimensions ( LibraryID  libraryID,
double  degreesLongitude,
double  degreesLatitude 
)

Sets the geographical size of the region to cache. Each library has its own cache region.

Parameters
libraryIDThe library whose cache size to adjust.
degreesLongitudethe width of cache size in degrees of longitude
degreesLatitudethe height of cache size in degrees of latitude
Returns
true if the library was found.
bool SetFeatureSetFillStyle ( LibraryID  libraryID,
const char *  featureSet,
const char *  featureType,
const glsColor color,
bool  drawBoundary = false,
const glsColor boundaryColor = glsColor(0, 0, 0, 255),
float  boundaryWidth = DEF_LINE_WIDTH,
uint16_t  boundaryStipplePattern = DEF_LINE_STIPPLE_PATTERN,
int  boundaryStippleMultiplier = 0 
)

Sets the fill style for polygon features in the feature set.

Parameters
libraryIDThe library to query.
featureSetThe name of the feature set. If null, sets the style for all features sets. If non-null and not found, this function emits a warning to the console and returns false
featureTypeThe name of the feature. If null or empty, it applies to the default attributes for the feature set. If not found, it creates a new feature attribute override entry.
colorThe RGBA color value for filling polygons.
boundaryColorThe boundary color for the requested features.
drawBoundaryWhether or not to draw the area boundary
boundaryWidthThe line width
boundaryStipplePatternThe stipple pattern for lines (see documentation of glLineStipple())
boundaryStippleMultiplierThe multiplier for stippling (see documentation of glLineStipple())
Note
This can be called multiple times, once with featureType == NULL to set the default and then with featureType != NULL to change specific features.
Returns
true if the feature set was found.
bool SetFeatureSetLineStyle ( LibraryID  libraryID,
const char *  featureSet,
const char *  featureType,
glsColor  color,
float  width = DEF_LINE_WIDTH,
uint16_t  stipplePattern = DEF_LINE_STIPPLE_PATTERN,
int  stippleMultiplier = 0 
)

Sets the line style (outline for polygon features) for features in a set.

Parameters
libraryIDThe library to query.
featureSetThe name of the feature set. If null, sets the style for all features sets. If non-null and not found, this function emits a warning to the console and returns false
featureTypeThe name of the feature. If null or empty, it applies to the default attributes for the feature set. If not found, it creates a new feature attribute override entry.
colorThe RGBA color value for lines
widthThe line width
stipplePatternThe stipple pattern for lines (see documentation of glLineStipple())
stippleMultiplierThe multiplier for stippling (see documentation of glLineStipple())
Note
There are two overloads of this function – this one that supplies OpenGL line settings and another that supplies a user callback for custom drawing. Calling this function with the same libraryID, featureSet, and featureType as a previously configured with a callback will discard the callback.
Returns
true if the feature set was found.
bool SetFeatureSetLineStyle ( LibraryID  libraryID,
const char *  featureSet,
const char *  featureType,
const RenderLineFeatureCB  renderCB,
void *const  userData = NULL 
)

Sets the line callback for features in a set.

Parameters
libraryIDThe library to query.
featureSetThe name of the feature set. If null, sets the style for all features sets. If non-null and not found, this function emits a warning to the console and returns false
featureTypeThe name of the feature. If null or empty, it applies to the default attributes for the feature set. If not found, it creates a new feature attribute override entry.
renderCBthe line callback
userDataThe optional user data passed to the callback, can be NULL if unused.
Note
There are two overloads of this function – this one that supplies OpenGL line settings and another that supplies a user callback for custom drawing. Calling this function with the same libraryID, featureSet, and featureType as a previously configured with OpenGL line settings will discard the OpenGL line settings.
Returns
true if the feature set was found. Will return false and have no effect if renderCB is NULL.
bool SetFeatureSetPointStyle ( LibraryID  libraryID,
const char *  featureSet,
const char *  featureType,
const glsColor color,
const RenderPointFeatureCB  renderCB = NULL,
void *const  userData = NULL,
const bool  useMapScale = NULL 
)

Sets the point style (outline for polygon features) for features in a set.

Parameters
libraryIDThe library to query.
featureSetThe name of the feature set. If null, sets the style for all features sets. If non-null and not found, this function emits a warning to the console and returns false
featureTypeThe name of the feature. If null or empty, it applies to the default attributes for the feature set. If not found, it creates a new feature attribute override entry.
colorThe RGBA color value for points
renderCBrender callback else NULL for no callback
userDatauser supplied data to be handed to callback
useMapScaletrue if point feature should scale with the map (will become larger as the view zooms in), false is point feature should scale to attempt maintain the same size in logical space regardless of the map zoom
Note
This can be called multiple times, once with featureType == NULL to set the default and then with featureType != NULL to change specific features.
Returns
true if the feature set was found.
bool SetFeatureSetTextStyle ( LibraryID  libraryID,
const char *  featureSet,
const char *  featureType,
GlsFontBase glsFont,
const glsColor textColor = glsColor(0, 0, 0, 255),
double  scale = 1.0,
double  xOffset = 0.0f,
double  yOffset = 0.0f,
bool  isVisible = true 
)

Sets the text style for a feature set.

Parameters
libraryIDThe library to query.
featureSetThe name of the feature set. If null, sets the style for all features sets. If non-null and not found, this function emits a warning to the console and returns false
featureTypeThe name of the feature. If null or empty, it applies to the default attributes for the feature set. If not found, it creates a new feature attribute override entry.
glsFontThe instance of a font in this GL Studio project
textColorColor of the text. (Defaults to black.)
isVisibleWhether the text is visible for the requested features.
scaleThe scale of the text (default = 1.0)
xOffsethorizontal offset from the default text location (text starts at the center of its objects extents)
yOffsetvertical offset from the default text location (text starts at the center of its objects extents)
Note
This can be called multiple times, once with featureType == NULL to set the default and then with featureType != NULL to change specific features.
This function does not take ownership of the strings passed in.
Returns
true if the feature set was found.
bool SetFeatureSetVisibility ( LibraryID  libraryID,
const char *  featureSet,
const char *  featureType,
bool  isVisible 
)

Sets the visibility for features in a feature set.

Parameters
libraryIDThe library to update.
featureSetThe name of the feature set. If null, sets the visibility for all features sets. If non-null and not found, this function emits a warning to the console and returns false without changing visibility.
featureTypeThe type of feature within the feature set. If null or empty, it applies to the default feature set. If not found, it creates a new feature attribute override entry.
isVisibleThe visibility to be applied.
Note
This can be called multiple times, once with featureType == NULL to set the default and then with featureType != NULL to change specific features.
Returns
true if the feature set and was found.
bool SetOrderedFeatureSetNames ( LibraryID  libraryID,
const DynamicArray< const char * > &  orderedFeatureSetNames 
)

Sets the feature set names in the order they are to be drawn.

Parameters
libraryIDThe library to update.
orderedFeatureSetNamesThe list of names in order from bottom to top. If any feature set name is null, empty, or does not exist or if a name is missing from the list, a warning is emitted to the console, and the function returns false without changing draw order.
Note
Use GetOrderedFeatureSetNames() to get a valid list of feature set names, reorder them in place, and pass the result into this function.
This function does NOT take ownership of the strings in the array, though it may already have ownership if the array is a reordering of the result of GetOrderedFeatureSetNames().
Returns
true if all names were applied.
bool UnloadLibrary ( LibraryID  libraryID)

Unloads a given library.

Returns
true if the library was found.
See also
LoadLibraryAs()
GetLoadedLibraries()

The documentation for this class was generated from the following file: