DATAKIT SDK  V2026.4
sampleWriter::layer Namespace Reference

Functions

Dtk_LayerInfosSetPtr CreateSet ()
 Create Layer info set. More...
 
Dtk_LayerInfosSetPtr CreateSetWithFilters ()
 Creates a layer info set with 9 layers and 2 named layer filters grouping subsets of those layers. More...
 
Dtk_LayerInfosSetPtr CreateSetWithFlagsAndFilters ()
 Creates a layer info set with 257 layers (indices 0-256), alternating visible/selectable flags, 2 named layer filters, and layer 12 set as the current (work) layer. More...
 

Function Documentation

◆ CreateSet()

Dtk_LayerInfosSetPtr sampleWriter::layer::CreateSet ( )

Create Layer info set.

Creates a basic layer info set with 3 named layers (indices 0, 42, 1900).

18  {
20  layerInfosSet->AddLayer( Dtk_LayerInfosSet::Layer( 42, L"MyFirstLayer" ) );
21  layerInfosSet->AddLayer( Dtk_LayerInfosSet::Layer( 1900, L"MySecondLayer" ) );
22  layerInfosSet->AddLayer( Dtk_LayerInfosSet::Layer( 0, L"Faces" ) );
23  return layerInfosSet;
24  }

◆ CreateSetWithFilters()

Dtk_LayerInfosSetPtr sampleWriter::layer::CreateSetWithFilters ( )

Creates a layer info set with 9 layers and 2 named layer filters grouping subsets of those layers.

28  {
30  //we use a layer Idx to correctly handle the layers indices for filters.
31  Dtk_Size_t LayerIdx = 0;
32  //1st layer - 888 -
33  Dtk_Size_t Layer888Idx = LayerIdx++; layerInfoSet->AddLayer( Dtk_LayerInfosSet::Layer( 888, L"My First Layer" ) );
34  DTK_UNUSED( Layer888Idx );
35 
36  //2nd layer - 111 -
37  Dtk_Size_t Layer111Idx = LayerIdx++; layerInfoSet->AddLayer( Dtk_LayerInfosSet::Layer( 111 , L"My Second Layer" ) );
38  DTK_UNUSED( Layer111Idx );
39 
40  //3rd layer - 987 -
41  Dtk_Size_t Layer987Idx = LayerIdx++; layerInfoSet->AddLayer( Dtk_LayerInfosSet::Layer( 987 , L"My Third Layer" ) );
42  DTK_UNUSED( Layer987Idx );
43 
44  //4th layer - 4 -
45  Dtk_Size_t Layer4Idx = LayerIdx++; layerInfoSet->AddLayer( Dtk_LayerInfosSet::Layer( 4 ) );
46 
47  //5th layer - 5 -
48  Dtk_Size_t Layer5Idx = LayerIdx++; layerInfoSet->AddLayer( Dtk_LayerInfosSet::Layer( 5 ) );
49 
50  //6th layer - 6 -
51  Dtk_Size_t Layer6Idx = LayerIdx++; layerInfoSet->AddLayer( Dtk_LayerInfosSet::Layer( 6 ) );
52 
53  //7th layer - 10 -
54  Dtk_Size_t Layer10Idx = LayerIdx++; layerInfoSet->AddLayer( Dtk_LayerInfosSet::Layer( 10 ) );
55 
56  //8th layer - 11 -
57  Dtk_Size_t Layer11Idx = LayerIdx++; layerInfoSet->AddLayer( Dtk_LayerInfosSet::Layer( 11 ) );
58 
59  //9th layer - 12 -
60  Dtk_Size_t Layer12Idx = LayerIdx++; layerInfoSet->AddLayer( Dtk_LayerInfosSet::Layer( 12 ) );
61 
62 
63  // 2 layer filters :
64  //The first one gathers layers 4 - 5 - 6
65  Dtk_LayerFilterInfosPtr filter4_5_6 = layerInfoSet->CreateLayerFilterInfos( "FILTER_4-5-6", "MyDescription", DTK_FALSE, DTK_FALSE );
66  Dtk_tab<Dtk_Size_t> layers4_5_6;
67  layers4_5_6.push_back( Layer4Idx ); layers4_5_6.push_back( Layer5Idx ); layers4_5_6.push_back( Layer6Idx );
68  filter4_5_6->SelectLayers( layers4_5_6 );
69 
70  //The second one gathers layers 10 - 11 - 12
71  Dtk_LayerFilterInfosPtr filter10_11_12 = layerInfoSet->CreateLayerFilterInfos( "FILTER_10-11-12" );
72  Dtk_tab<Dtk_Size_t> layers10_11_12;
73  layers10_11_12.push_back( Layer10Idx ); layers10_11_12.push_back( Layer11Idx ); layers10_11_12.push_back( Layer12Idx );
74  filter10_11_12->SelectLayers( layers10_11_12 );
75 
76  return layerInfoSet;
77  }

◆ CreateSetWithFlagsAndFilters()

Dtk_LayerInfosSetPtr sampleWriter::layer::CreateSetWithFlagsAndFilters ( )

Creates a layer info set with 257 layers (indices 0-256), alternating visible/selectable flags, 2 named layer filters, and layer 12 set as the current (work) layer.

Creates a layer info set with 257 layers where visibility and selectability flags are set alternately, plus 2 layer filters and a specified current (work) layer.

82  {
83  const int maxlayer = 257; // 256 layers (from 1 to 256 included for NX)
85  for( int i = 0; i < maxlayer; ++i )
86  {
87  auto layerToBeAdded = Dtk_LayerInfosSet::Layer( i );
88  if( i % 2 == 0 )// one on two
89  layerToBeAdded.Unflag( Dtk_LayerInfosSet::Layer::Status::Visible );
90  if( i % 3 == 0 )// one on three
91  layerToBeAdded.Unflag( Dtk_LayerInfosSet::Layer::Status::Selectable );
92  layerInfoSet->AddLayer( std::move( layerToBeAdded ) );
93  }
94 
95  // 2 layer filters :
96  Dtk_LayerFilterInfosPtr filter456 = layerInfoSet->CreateLayerFilterInfos( "FILTER_456", "MyDescription" );
97  Dtk_tab<Dtk_Size_t> lay456;
98  lay456.push_back( 4 ); lay456.push_back( 5 ); lay456.push_back( 6 );
99  filter456->SelectLayers( lay456 );
100 
101  Dtk_LayerFilterInfosPtr filter678 = layerInfoSet->CreateLayerFilterInfos( "FILTER_678" );
102  Dtk_tab<Dtk_Size_t> lay678;
103  lay678.push_back( 6 ); lay678.push_back( 7 ); lay678.push_back( 8 );
104  filter678->SelectLayers( lay678 );
105  // wrok layer (default)
106  layerInfoSet->SetCurrentLayer( 12 );
107 
108  return layerInfoSet;
109  }
Dtk_LayerInfosSet::Layer
Definition: util_ent_dtk.hpp:512
Dtk_LayerInfosSet::Layer::Status::Selectable
@ Selectable
Dtk_Size_t
size_t Dtk_Size_t
Definition: define.h:711
DTK_FALSE
#define DTK_FALSE
Definition: define.h:727
Dtk_SmartPtr
Definition: util_ptr_dtk.hpp:37
Dtk_tab< Dtk_Size_t >
Dtk_LayerInfosSet::Create
static Dtk_LayerInfosSetPtr Create()
Calls default constructor to allocate a new object.
Dtk_LayerInfosSet::Layer::Status::Visible
@ Visible
Dtk_tab::push_back
void push_back(const T &x)
Inserts an element at the end of the array.
Definition: util_stl_dtk.hpp:416
DTK_UNUSED
#define DTK_UNUSED(a)
Definition: define.h:729