Cortex
10.0.0-a4
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
include
IECore
GeometricTypedData.h
1
//
3
// Copyright (c) 2013, Image Engine Design Inc. All rights reserved.
4
//
5
// Redistribution and use in source and binary forms, with or without
6
// modification, are permitted provided that the following conditions are
7
// met:
8
//
9
// * Redistributions of source code must retain the above copyright
10
// notice, this list of conditions and the following disclaimer.
11
//
12
// * Redistributions in binary form must reproduce the above copyright
13
// notice, this list of conditions and the following disclaimer in the
14
// documentation and/or other materials provided with the distribution.
15
//
16
// * Neither the name of Image Engine Design nor the names of any
17
// other contributors to this software may be used to endorse or
18
// promote products derived from this software without specific prior
19
// written permission.
20
//
21
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
22
// IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
23
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
24
// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
25
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
26
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
27
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
28
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
29
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
30
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
31
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32
//
34
35
#ifndef IECORE_GEOMETRICTYPEDDATA_H
36
#define IECORE_GEOMETRICTYPEDDATA_H
37
38
#include "IECore/TypedData.h"
39
40
namespace
IECore
41
{
42
43
namespace
GeometricData
44
{
45
51
enum
Interpretation
52
{
53
None = 0,
54
Numeric = 0,
55
Point,
56
Normal,
57
Vector,
58
Color,
59
UV
60
};
61
62
}
// namespace GeometricData
63
75
template
<
class
T>
76
class
GeometricTypedData
:
public
TypedData
<T>
77
{
78
public
:
79
80
typedef
typename
TypedData<T>::ValueType ValueType;
81
82
GeometricTypedData
();
83
GeometricTypedData
(
const
ValueType &data );
84
GeometricTypedData
(
const
ValueType &data, GeometricData::Interpretation interpretation );
85
86
IECORE_RUNTIMETYPED_DECLARETEMPLATE(
GeometricTypedData<T>
,
TypedData<T>
);
87
90
91
typename
GeometricTypedData<T>::Ptr
copy()
const
;
92
bool
isEqualTo
(
const
Object
*other )
const override
;
93
void
hash
(
MurmurHash
&h )
const override
;
95
99
GeometricData::Interpretation
getInterpretation
()
const
;
100
void
setInterpretation( GeometricData::Interpretation interpretation );
101
102
protected
:
103
104
~
GeometricTypedData
()
override
;
105
106
static
Object::TypeDescription<GeometricTypedData<T>
> m_typeDescription;
107
108
void
copyFrom
(
const
Object
*other,
Object::CopyContext
*context )
override
;
109
void
save
(
Object::SaveContext
*context )
const override
;
110
void
load( Object::LoadContextPtr context )
override
;
111
void
memoryUsage
(
Object::MemoryAccumulator
&accumulator )
const override
;
112
113
private
:
114
115
GeometricData::Interpretation m_interpretation;
116
117
};
118
130
#define IECORE_DECLARE_GEOMETRICTYPEDDATA( TYPENAME, T, BASETYPE, DATAHOLDER ) \
131
IECORE_DECLARE_TYPEDDATA( TYPENAME ## Base, T, BASETYPE, DATAHOLDER ) \
132
\
133
typedef GeometricTypedData<T> TYPENAME; \
134
\
135
IE_CORE_DECLAREPTR( TYPENAME ); \
136
137
}
// namespace IECore
138
139
#include "IECore/GeometricTypedData.inl"
140
141
#endif // IECORE_GEOMETRICTYPEDDATA_H
IECore::GeometricTypedData
Definition:
GeometricTypedData.h:76
IECore::Object::memoryUsage
size_t memoryUsage() const
Returns the number of bytes this instance occupies in memory.
IECore::Object::hash
MurmurHash hash() const
IECore::Object::MemoryAccumulator
Definition:
Object.h:333
IECore::TypedData
Definition:
TypedData.h:64
IECore::Object::CopyContext
Definition:
Object.h:229
IECore::Object
Definition:
Object.h:104
IECore::Object::TypeDescription
Definition:
Object.h:203
IECore::GeometricTypedData::save
void save(Object::SaveContext *context) const override
IECore::MurmurHash
Definition:
MurmurHash.h:64
IECore::Object::SaveContext
The class provided to the save() method implemented by subclasses.
Definition:
Object.h:247
IECore::GeometricTypedData::isEqualTo
bool isEqualTo(const Object *other) const override
IECore::GeometricTypedData::getInterpretation
GeometricData::Interpretation getInterpretation() const
IECore
This namespace contains all components of the core library.
Definition:
AddSmoothSkinningInfluencesOp.h:43
IECore::GeometricTypedData::copyFrom
void copyFrom(const Object *other, Object::CopyContext *context) override
Generated on Tue Oct 24 2017 13:52:49 for Cortex by
1.8.9.1