KiCad PCB EDA Suite
Loading...
Searching...
No Matches
data_block.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2025 Mark Roszko <[email protected]>
3 * Copyright The KiCad Developers, see AUTHORS.txt for contributors.
4 * Copyright (C) 2007 Ecma International (original Java source)
5 *
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
9 *
10 * http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
17 *
18 * License info found here:
19 * https://www.loc.gov/preservation/digital/formats/fdd/fdd000491.shtml
20 */
21
22#pragma once
23
24#include <cstdint>
25#include <vector>
26
27namespace U3D
28{
29namespace BLOCK_TYPES
30{
31 constexpr uint32_t MODIFIER_CHAIN = 0xffffff14;
32 constexpr uint32_t GROUP_NODE = 0xffffff21;
33 constexpr uint32_t MODEL_NODE = 0xffffff22;
34 constexpr uint32_t LIGHT_NODE = 0xffffff23;
35 constexpr uint32_t MESH_DECLARATION = 0xffffff31;
36 constexpr uint32_t MESH_CONTINUATION = 0xffffff3b;
37 constexpr uint32_t SHADING_MODIFIER = 0xffffff45;
38 constexpr uint32_t LIGHT_RESOURCE = 0xffffff51;
39 constexpr uint32_t LIT_TEXTURE_SHADER = 0xffffff53;
40 constexpr uint32_t MATERIAL_RESOURCE = 0xffffff54;
41 constexpr uint32_t FILE_HEADER = 0x00443355;
42} // namespace BLOCK_TYPES
43
45{
46 constexpr uint32_t DEFINED_UNITS = 0x00000008;
47} // namespace HEADER_PROFILE_FLAGS
48
50{
51public:
52 DATA_BLOCK();
53
54 uint32_t GetDataSize() const { return m_dataSize; }
55 void SetDataSize( uint32_t aSize );
56
57 const std::vector<uint32_t>& GetData() const { return m_data; }
58 void SetData( const std::vector<uint32_t>& aValue ) { m_data = aValue; }
59
60 uint32_t GetMetaDataSize() const { return m_metaDataSize; }
61 void SetMetaDataSize( uint32_t aSize );
62
63 const std::vector<uint32_t>& GetMetaData() const { return m_metaData; }
64 void SetMetaData( const std::vector<uint32_t>& aValue );
65
66 uint32_t GetBlockType() const { return m_blockType; }
67 void SetBlockType( uint32_t aType ) { m_blockType = aType; }
68
69 uint32_t GetPriority() const { return m_priority; }
70 void SetPriority( uint32_t aPriority ) { m_priority = aPriority; }
71
72private:
73 std::vector<uint32_t> m_data;
74 uint32_t m_dataSize;
75 std::vector<uint32_t> m_metaData;
77 uint32_t m_priority;
78 uint32_t m_blockType;
79};
80
81} // namespace U3D
void SetMetaData(const std::vector< uint32_t > &aValue)
const std::vector< uint32_t > & GetData() const
Definition data_block.h:57
void SetMetaDataSize(uint32_t aSize)
void SetPriority(uint32_t aPriority)
Definition data_block.h:70
uint32_t GetPriority() const
Definition data_block.h:69
std::vector< uint32_t > m_data
Definition data_block.h:73
uint32_t GetBlockType() const
Definition data_block.h:66
uint32_t m_dataSize
Definition data_block.h:74
std::vector< uint32_t > m_metaData
Definition data_block.h:75
uint32_t GetDataSize() const
Definition data_block.h:54
uint32_t m_priority
Definition data_block.h:77
uint32_t m_blockType
Definition data_block.h:78
void SetBlockType(uint32_t aType)
Definition data_block.h:67
void SetDataSize(uint32_t aSize)
void SetData(const std::vector< uint32_t > &aValue)
Definition data_block.h:58
uint32_t GetMetaDataSize() const
Definition data_block.h:60
const std::vector< uint32_t > & GetMetaData() const
Definition data_block.h:63
uint32_t m_metaDataSize
Definition data_block.h:76
constexpr uint32_t MODIFIER_CHAIN
Definition data_block.h:31
constexpr uint32_t MESH_DECLARATION
Definition data_block.h:35
constexpr uint32_t MATERIAL_RESOURCE
Definition data_block.h:40
constexpr uint32_t MESH_CONTINUATION
Definition data_block.h:36
constexpr uint32_t LIGHT_NODE
Definition data_block.h:34
constexpr uint32_t GROUP_NODE
Definition data_block.h:32
constexpr uint32_t SHADING_MODIFIER
Definition data_block.h:37
constexpr uint32_t LIGHT_RESOURCE
Definition data_block.h:38
constexpr uint32_t MODEL_NODE
Definition data_block.h:33
constexpr uint32_t LIT_TEXTURE_SHADER
Definition data_block.h:39
constexpr uint32_t FILE_HEADER
Definition data_block.h:41
constexpr uint32_t DEFINED_UNITS
Definition data_block.h:46