#####
Model
#####

.. cpp:namespace:: SC::Store::Model

.. default-domain:: cpp

Content
=======

====== ==========
class  CacheImpl 
class  ModelImpl 
====== ==========

Functions
=========

========================================== ============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
..                                         :cpp:func:`~Model <SC::Store::Model::~Model>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
..                                         :cpp:func:`Model <SC::Store::Model::Model>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
:doc:`classSC_1_1Store_1_1MeshKey`         :cpp:func:`Insert <MeshKey SC::Store::Model::Insert(Mesh const &mesh)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     
:doc:`classSC_1_1Store_1_1MeshKey`         :cpp:func:`Insert <MeshKey SC::Store::Model::Insert(MeshKeys const &meshes)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
:doc:`classSC_1_1Store_1_1MaterialKey`     :cpp:func:`Insert <MaterialKey SC::Store::Model::Insert(Color const &color)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
:doc:`classSC_1_1Store_1_1MaterialKey`     :cpp:func:`Insert <MaterialKey SC::Store::Model::Insert(Material const &material)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
:doc:`classSC_1_1Store_1_1LinePatternKey`  :cpp:func:`Insert <LinePatternKey SC::Store::Model::Insert(LinePattern const &line_pattern)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
:doc:`classSC_1_1Store_1_1MatrixKey`       :cpp:func:`Insert <MatrixKey SC::Store::Model::Insert(Matrix3d const &matrix)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             
:doc:`classSC_1_1Store_1_1MatrixKey`       :cpp:func:`Insert <MatrixKey SC::Store::Model::Insert(DMatrix3d const &matrix)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
:doc:`classSC_1_1Store_1_1ImageKey`        :cpp:func:`Insert <ImageKey SC::Store::Model::Insert(uint32_t byte_count, uint8_t const *byte_data, ImageFormat format)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   
:doc:`classSC_1_1Store_1_1ImageKey`        :cpp:func:`Insert <ImageKey SC::Store::Model::Insert(uint32_t width, uint32_t height, RGBA32 const *data)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
:doc:`classSC_1_1Store_1_1ImageKey`        :cpp:func:`Insert <ImageKey SC::Store::Model::Insert(uint32_t width, uint32_t height, RGB24 const *data)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
:doc:`classSC_1_1Store_1_1ImageKey`        :cpp:func:`Insert <ImageKey SC::Store::Model::Insert(uint32_t width, uint32_t height, Gray8 const *data)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
:doc:`classSC_1_1Store_1_1ImageKey`        :cpp:func:`Insert <ImageKey SC::Store::Model::Insert(uint32_t width, uint32_t height, GrayAlpha16 const *data)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
:doc:`classSC_1_1Store_1_1DataKey`         :cpp:func:`Insert <DataKey SC::Store::Model::Insert(uint32_t byte_count, uint8_t const *byte_data, uint32_t priority=0)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   
:doc:`classSC_1_1Store_1_1GroupKey`        :cpp:func:`Insert <GroupKey SC::Store::Model::Insert(InstanceIncs const &instance_incs, GroupIncs const &group_incs)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      
:doc:`classSC_1_1Store_1_1MaterialMapKey`  :cpp:func:`Insert <MaterialMapKey SC::Store::Model::Insert(MaterialKeys const &material_keys)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             
:doc:`classSC_1_1Store_1_1MaterialMapKey`  :cpp:func:`Insert <MaterialMapKey SC::Store::Model::Insert(MaterialMapElements const &material_map_elements)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
:doc:`classSC_1_1Store_1_1PolyPolygonKey`  :cpp:func:`Insert <PolyPolygonKey SC::Store::Model::Insert(uint32_t loop_count, uint32_t const *loop_counts, Point const *points)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
:doc:`classSC_1_1Store_1_1ClipRegionKey`   :cpp:func:`Insert <ClipRegionKey SC::Store::Model::Insert(ClipSubRegions const &clip_subregions)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
:doc:`classSC_1_1Store_1_1MaterialKey`     :cpp:func:`FindOrInsert <MaterialKey SC::Store::Model::FindOrInsert(Color const &color)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   
:doc:`classSC_1_1Store_1_1MaterialKey`     :cpp:func:`FindOrInsert <MaterialKey SC::Store::Model::FindOrInsert(Material const &material)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             
:doc:`classSC_1_1Store_1_1MatrixKey`       :cpp:func:`FindOrInsert <MatrixKey SC::Store::Model::FindOrInsert(Matrix3d const &matrix)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
:doc:`classSC_1_1Store_1_1MatrixKey`       :cpp:func:`FindOrInsert <MatrixKey SC::Store::Model::FindOrInsert(DMatrix3d const &matrix)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
:doc:`classSC_1_1Store_1_1MaterialMapKey`  :cpp:func:`FindOrInsert <MaterialMapKey SC::Store::Model::FindOrInsert(MaterialKeys const &material_keys)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
:doc:`classSC_1_1Store_1_1MaterialMapKey`  :cpp:func:`FindOrInsert <MaterialMapKey SC::Store::Model::FindOrInsert(MaterialMapElements const &material_map_elements)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
:doc:`classSC_1_1Store_1_1PolyPolygonKey`  :cpp:func:`FindOrInsert <PolyPolygonKey SC::Store::Model::FindOrInsert(uint32_t loop_count, uint32_t const *loop_counts, Point const *points)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                             
:doc:`classSC_1_1Store_1_1ClipRegionKey`   :cpp:func:`FindOrInsert <ClipRegionKey SC::Store::Model::FindOrInsert(ClipSubRegions const &clip_subregions)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
void                                       :cpp:func:`Set <void SC::Store::Model::Set(MeshKey key, Mesh const &mesh)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
void                                       :cpp:func:`Set <void SC::Store::Model::Set(MeshKey key, MeshKeys const &meshes)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
void                                       :cpp:func:`Set <void SC::Store::Model::Set(MaterialKey key, Color const &color)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
void                                       :cpp:func:`Set <void SC::Store::Model::Set(MaterialKey key, Material const &material)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     
void                                       :cpp:func:`Set <void SC::Store::Model::Set(MatrixKey key, Matrix3d const &matrix)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
void                                       :cpp:func:`Set <void SC::Store::Model::Set(MatrixKey key, DMatrix3d const &matrix)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
void                                       :cpp:func:`Set <void SC::Store::Model::Set(ImageKey key, uint32_t byte_count, uint8_t const *byte_data, ImageFormat format)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
void                                       :cpp:func:`Set <void SC::Store::Model::Set(ImageKey key, uint32_t width, uint32_t height, RGBA32 const *data)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             
void                                       :cpp:func:`Set <void SC::Store::Model::Set(ImageKey key, uint32_t width, uint32_t height, RGB24 const *data)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
void                                       :cpp:func:`Set <void SC::Store::Model::Set(ImageKey key, uint32_t width, uint32_t height, Gray8 const *data)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
void                                       :cpp:func:`Set <void SC::Store::Model::Set(ImageKey key, uint32_t width, uint32_t height, GrayAlpha16 const *data)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
void                                       :cpp:func:`Set <void SC::Store::Model::Set(DataKey key, uint32_t byte_count, uint8_t const *byte_data)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
void                                       :cpp:func:`Set <void SC::Store::Model::Set(DataKey key, uint32_t byte_count, uint8_t const *byte_data, uint32_t priority)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
void                                       :cpp:func:`Set <void SC::Store::Model::Set(GroupKey key, InstanceIncs const &instance_incs, GroupIncs const &group_incs)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
void                                       :cpp:func:`Set <void SC::Store::Model::Set(MaterialMapKey key, MaterialKeys const &material_keys)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
void                                       :cpp:func:`Set <void SC::Store::Model::Set(MaterialMapKey key, MaterialMapElements const &material_map_elements)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
void                                       :cpp:func:`Set <void SC::Store::Model::Set(PolyPolygonKey key, uint32_t loop_count, uint32_t const *loop_counts, Point const *points)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                     
void                                       :cpp:func:`Set <void SC::Store::Model::Set(ClipRegionKey key, ClipSubRegions const &clip_subregions)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      
:doc:`classSC_1_1Store_1_1InstanceKey`     :cpp:func:`Instance <InstanceKey SC::Store::Model::Instance(MeshKey mesh, MatrixKey matrix=MatrixKey(), MaterialKey face_material=MaterialKey::Unspecified(), MaterialKey line_material=MaterialKey::Unspecified(), MaterialKey point_material=MaterialKey::Unspecified(), MaterialMapKey face_material_map=MaterialMapKey(), MaterialMapKey line_material_map=MaterialMapKey(), MaterialMapKey point_material_map=MaterialMapKey(), Visibility visibility=Visibility(), Modifiers modifiers=Modifiers(), ClipRegionKey clip_region=ClipRegionKey(), VectorCulling const &vector_culling=VectorCulling())>` 
:doc:`classSC_1_1Store_1_1InclusionKey`    :cpp:func:`Include <InclusionKey SC::Store::Model::Include(Model const &model, MatrixKey matrix=MatrixKey())>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
void                                       :cpp:func:`Set <void SC::Store::Model::Set(InstanceKey key, MeshKey mesh)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
void                                       :cpp:func:`Set <void SC::Store::Model::Set(InstanceKey key, MatrixKey matrix)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             
void                                       :cpp:func:`Set <void SC::Store::Model::Set(InstanceKey key, VectorCulling const &vector_culling)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
void                                       :cpp:func:`Set <void SC::Store::Model::Set(InstanceKey key, MaterialKey face_material, MaterialKey line_material, MaterialKey point_material)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                             
void                                       :cpp:func:`Set <void SC::Store::Model::Set(InstanceKey key, MaterialMapKey face_material_map, MaterialMapKey line_material_map, MaterialMapKey point_material_map)>`                                                                                                                                                                                                                                                                                                                                                                                                                                        
void                                       :cpp:func:`Set <void SC::Store::Model::Set(InstanceKey key, Visibility visibility)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
void                                       :cpp:func:`Set <void SC::Store::Model::Set(InstanceKey key, Modifiers modifiers)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
void                                       :cpp:func:`Set <void SC::Store::Model::Set(InstanceKey key, ClipRegionKey clip_region)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
void                                       :cpp:func:`Set <void SC::Store::Model::Set(InstanceInc const &inc, MaterialKey face_material, MaterialKey line_material, MaterialKey point_material)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                      
void                                       :cpp:func:`Set <void SC::Store::Model::Set(InstanceInc const &inc, MaterialMapKey face_material_map, MaterialMapKey line_material_map, MaterialMapKey point_material_map)>`                                                                                                                                                                                                                                                                                                                                                                                                                                 
void                                       :cpp:func:`Set <void SC::Store::Model::Set(InstanceInc const &inc, Visibility visibility)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
void                                       :cpp:func:`Set <void SC::Store::Model::Set(InstanceInc const &inc, Modifiers modifiers_to_add)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
void                                       :cpp:func:`Set <void SC::Store::Model::Set(InstanceInc const &inc, ClipRegionKey clip_region)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             
void                                       :cpp:func:`Delete <void SC::Store::Model::Delete(InclusionKey inclusion_key)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
void                                       :cpp:func:`Delete <void SC::Store::Model::Delete(InstanceKey instance_key)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
void                                       :cpp:func:`Delete <void SC::Store::Model::Delete(ViewKey view_key)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
:doc:`classSC_1_1Store_1_1ModelKey`        :cpp:func:`GetKey <ModelKey SC::Store::Model::GetKey() const>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
const char *                               :cpp:func:`GetName <const char * SC::Store::Model::GetName() const>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
const char *                               :cpp:func:`GetPath <const char * SC::Store::Model::GetPath() const>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
void                                       :cpp:func:`GetInstanceIncs <void SC::Store::Model::GetInstanceIncs(InstanceIncs &instance_incs) const>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     
void                                       :cpp:func:`GetMeshIds <void SC::Store::Model::GetMeshIds(MeshIds &mesh_ids) const>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
void                                       :cpp:func:`GetMaterialIds <void SC::Store::Model::GetMaterialIds(MaterialIds &material_ids) const>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
void                                       :cpp:func:`GetMatrixIds <void SC::Store::Model::GetMatrixIds(MatrixIds &matrix_ids) const>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
void                                       :cpp:func:`GetInstanceIds <void SC::Store::Model::GetInstanceIds(InstanceIds &instance_ids) const>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
void                                       :cpp:func:`GetImageIds <void SC::Store::Model::GetImageIds(ImageIds &image_ids) const>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     
void                                       :cpp:func:`GetDataIds <void SC::Store::Model::GetDataIds(DataIds &data_ids) const>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
void                                       :cpp:func:`GetGroupIds <void SC::Store::Model::GetGroupIds(GroupIds &group_ids) const>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     
void                                       :cpp:func:`GetMaterialMapIds <void SC::Store::Model::GetMaterialMapIds(MaterialMapIds &material_map_ids) const>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
void                                       :cpp:func:`GetPolyPolygonIds <void SC::Store::Model::GetPolyPolygonIds(PolyPolygonIds &polypolygon_ids) const>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             
void                                       :cpp:func:`GetClipRegionIds <void SC::Store::Model::GetClipRegionIds(ClipRegionIds &clip_region_ids) const>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
void                                       :cpp:func:`GetMeshKeys <void SC::Store::Model::GetMeshKeys(MeshKeys &mesh_keys) const>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     
void                                       :cpp:func:`GetMaterialKeys <void SC::Store::Model::GetMaterialKeys(MaterialKeys &material_keys) const>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     
void                                       :cpp:func:`GetMatrixKeys <void SC::Store::Model::GetMatrixKeys(MatrixKeys &matrix_keys) const>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             
void                                       :cpp:func:`GetInstanceKeys <void SC::Store::Model::GetInstanceKeys(InstanceKeys &instance_keys) const>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     
void                                       :cpp:func:`GetImageKeys <void SC::Store::Model::GetImageKeys(ImageKeys &image_keys) const>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
void                                       :cpp:func:`GetDataKeys <void SC::Store::Model::GetDataKeys(DataKeys &data_keys) const>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     
void                                       :cpp:func:`GetGroupKeys <void SC::Store::Model::GetGroupKeys(GroupKeys &group_keys) const>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
void                                       :cpp:func:`GetMaterialMapKeys <void SC::Store::Model::GetMaterialMapKeys(MaterialMapKeys &material_map_keys) const>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
void                                       :cpp:func:`GetPolyPolygonKeys <void SC::Store::Model::GetPolyPolygonKeys(PolyPolygonKeys &polypolygon_keys) const>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
void                                       :cpp:func:`GetClipRegionKeys <void SC::Store::Model::GetClipRegionKeys(ClipRegionKeys &clip_region_keys) const>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
void                                       :cpp:func:`Get <void SC::Store::Model::Get(DataKey key, std::vector< uint8_t > &byte_data) const>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
void                                       :cpp:func:`Set <void SC::Store::Model::Set(Camera const &camera, ViewKey view=ViewKey())>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
bool                                       :cpp:func:`Get <bool SC::Store::Model::Get(Camera &camera, ViewKey view=ViewKey())>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
void                                       :cpp:func:`Set <void SC::Store::Model::Set(MaterialProperties const &material_properties, ViewKey view=ViewKey())>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
bool                                       :cpp:func:`Get <bool SC::Store::Model::Get(MaterialProperties &material_properties, ViewKey view=ViewKey())>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
void                                       :cpp:func:`Set <void SC::Store::Model::Set(ViewKey view)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
bool                                       :cpp:func:`Get <bool SC::Store::Model::Get(ViewKey &view)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
:doc:`classSC_1_1Store_1_1ViewKey`         :cpp:func:`View <ViewKey SC::Store::Model::View()>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
void                                       :cpp:func:`PrepareStream <void SC::Store::Model::PrepareStream(CompressionStrategy compression_strategy=CompressionStrategy::Default)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                     
void                                       :cpp:func:`ComputeBounding <void SC::Store::Model::ComputeBounding(Point &min, Point &max)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
double                                     :cpp:func:`GetRootMeasurementUnit <double SC::Store::Model::GetRootMeasurementUnit()>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      
const char *                               :cpp:func:`GenerateSCSFile <const char * SC::Store::Model::GenerateSCSFile(const char *utf8_scs_file_path=nullptr)>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
const char *                               :cpp:func:`GenerateSCZFile <const char * SC::Store::Model::GenerateSCZFile(const char *utf8_scz_file_path=nullptr, bool include_derived=true, bool include_editable=true, bool create_bundled=false)>`                                                                                                                                                                                                                                                                                                                                                                                                      
========================================== ============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================

.. cpp:namespace:: nullptr

Detailed Description
====================

.. doxygenclass:: SC::Store::Model
   :project: libsc
   :members:
   :undoc-members:



