To provide access to feature data, you must implement feature model.
IFeatureModel usually acts as an adapter between your application data and the LuciadCPillar Map.
The model provides
Feature objects, which are typically derived from your internal domain model.
To retrieve the features, use the method
You can use expressions to get only those features you are interested in.
For more detail on using expressions, see Filtering data with expressions and conditions.
You must implement a feature model in a thread-safe way. The expectations are documented within the feature model.
You can use feature IDs to identify features. Feature IDs are defined as unsigned 64-bit integers, and must be unique across the model. The feature ID is used in all feature operations such as events, queries, and so on.
If you want to use another type to represent the feature IDs of the features, the mapping between this type and the unsigned 64-bit integer is up to you. Common examples of alternative types are a UUID or a string. In your implementation, you could map this key to the integer, the integer being a counter.
Features that have just an ID are not that interesting. Most likely, you want to associate some business data with each feature that you can then use during painting.
For more information on data types, see Describing a feature structure with a data model.