Nebula
Loading...
Searching...
No Matches
model.h
Go to the documentation of this file.
1#pragma once
2//------------------------------------------------------------------------------
10//------------------------------------------------------------------------------
11#include "ids/id.h"
12#include "ids/idallocator.h"
13#include "util/stringatom.h"
15#include "core/rttimacros.h"
18#include <functional>
19namespace Models
20{
21
22class ModelNode;
23
25
37
45
46enum class LoadBits
47{
52};
54
60
66
72
92
103
105const ModelId CreateModel(const ModelCreateInfo& info);
107void DestroyModel(const ModelId id);
108
112const Math::bbox& ModelGetBoundingBox(const ModelId id);
113
114#if WITH_NEBULA_EDITOR
116const Util::Dictionary<Util::StringAtom, Models::ModelNode*>& GetModelNodeTable(const ModelId id);
117#endif
118
119enum
120{
125#if WITH_NEBULA_EDITOR
126 Model_NodeLookup
127#endif
128};
129
130typedef Ids::IdAllocator<
135#if WITH_NEBULA_EDITOR
137#endif
140} // namespace Models
Code
anim infinity types
Definition infinitytype.h:26
An ID allocator associates an id with a slice in an N number of arrays.
Definition idallocator.h:39
Nebula's bounding box class.
Definition bbox.h:24
Definition modelnode.h:55
Nebula's dynamic array class.
Definition array.h:61
A collection of key/value pairs with quick value retrieval by key at roughly O(log n).
Definition dictionary.h:35
Implements a fixed size one-dimensional array.
Definition fixedarray.h:20
A StringAtom.
Definition stringatom.h:22
A model resource consists of nodes, each of which inhibit some information read from an ....
Definition model.cc:10
void DestroyModel(const ModelId id)
discard model (resource)
Definition model.cc:37
const Math::bbox & ModelGetBoundingBox(const ModelId id)
Get model bounding box.
Definition model.cc:56
Ids::IdAllocator< Math::bbox, Util::Array< Models::ModelNode * >, Util::FixedArray< JointMask >, Util::FixedArray< Take > > ModelAllocator
Definition model.h:138
ModelAllocator modelAllocator
Definition model.cc:12
@ Model_Nodes
Definition model.h:122
@ Model_Takes
Definition model.h:124
@ Model_JointMasks
Definition model.h:123
@ Model_BoundingBox
Definition model.h:121
const ModelId CreateModel(const ModelCreateInfo &info)
create model (resource)
Definition model.cc:17
NodeBits
Definition model.h:39
@ NoBits
Definition model.h:40
@ HasTransformBit
Definition model.h:41
@ HasStateBit
Definition model.h:42
const Util::Array< Models::ModelNode * > & ModelGetNodes(const ModelId id)
Get model nodes.
Definition model.cc:47
LoadBits
Definition model.h:47
@ MaterialBit
Definition model.h:51
@ MeshBit
Definition model.h:49
@ AnimBit
Definition model.h:50
NodeType
Definition model.h:27
@ TransformNodeType
Definition model.h:29
@ CharacterNodeType
Definition model.h:28
@ NumNodeTypes
Definition model.h:35
@ CharacterSkinNodeType
Definition model.h:33
@ PrimitiveNodeType
Definition model.h:31
@ ShaderStateNodeType
Definition model.h:30
@ ParticleSystemNodeType
Definition model.h:32
#define RESOURCE_ID_TYPE(type)
Definition resourceid.h:41
#define __ImplementEnumBitOperators(type)
This defines the macros for Nebula's RTTI mechanism (__DeclareClass, __ImplementClass,...
Describes a range allocated by the Memory::RangeAllocator.
Definition rangeallocator.h:25
Definition model.h:68
Util::StringAtom name
Definition model.h:69
Util::FixedArray< float > weights
Definition model.h:70
Definition model.h:94
Util::Array< Models::ModelNode * > nodes
Definition model.h:96
Math::bbox boundingBox
Definition model.h:95
Util::FixedArray< Take > takes
Definition model.h:98
Util::FixedArray< JointMask > jointMasks
Definition model.h:97
Definition model.h:24
Definition model.h:56
LoadBits requiredBits
Definition model.h:57
LoadBits loadedBits
Definition model.h:58
Definition model.h:62
SizeT end
Definition model.h:64
Memory::RangeAllocation allocation
Definition model.h:63
SizeT begin
Definition model.h:64
Definition model.h:82
Util::StringAtom name
Definition model.h:83
float time
Definition model.h:84
Definition model.h:76
Util::StringAtom name
Definition model.h:77
float start
Definition model.h:78
Util::FixedArray< Event > events
Definition model.h:87
float end
Definition model.h:78
CoreAnimation::InfinityType::Code preInfinity
Definition model.h:79
CoreAnimation::InfinityType::Code postInfinity
Definition model.h:79
Definition model.h:74
Util::FixedArray< Clip > clips
Definition model.h:90
#define N_BIT(x)
Definition types.h:52
int SizeT
Definition types.h:42