Atoms Crowd
4.1.0
CacheReaderOperator.h
1
#pragma once
2
// ===========================================================================
3
// Copyright (c) 2015 Toolchefs Ltd. All rights reserved.
4
//
5
// Use of this software is subject to the terms of the Toolchefs license
6
// agreement provided at the time of installation or download, or which
7
// otherwise accompanies this software in either electronic or hard copy form.
8
// ===========================================================================
9
10
#include <AtomsGraph/Ports.h>
11
#include <Atoms/Globals.h>
12
#include <Atoms/Graph/Operator.h>
13
#include <Atoms/AtomsCache.h>
14
#include <AtomsCore/Metadata/Vector3Metadata.h>
15
16
17
namespace
Atoms
18
{
19
class
ATOMS_EXPORT
CacheReaderOperator
:
public
Operator
20
{
21
public
:
22
23
NODE_STANDARD_MEMBERS
24
25
CacheReaderOperator
();
26
27
virtual
~
CacheReaderOperator
();
28
29
bool
compute
(
const
AtomsGraph::ComputeData
* computeData);
30
31
void
reset
();
32
33
void
setCache(
const
std::string& cachePath,
const
std::string& cacheName,
int
startFrame,
int
endFrame);
34
35
void
setMatrix(
const
AtomsCore::Matrix
& matrix);
36
37
void
setLocalMatrix(
const
AtomsCore::Matrix
& matrix);
38
39
void
transformVectorMetadata(AtomsPtr<AtomsCore::Vector3Metadata>& vectorPtr);
40
41
void
setMetadataExlusionList(
const
std::vector<std::string>& vec);
42
43
inline
void
setAgentCacheId(
long
id
) { m_agentCacheIdPort->set(
id
); }
44
45
private
:
46
47
AtomsGraph::StringPort
* m_cachePathPort;
48
49
AtomsGraph::StringPort
* m_cacheNamePort;
50
51
AtomsGraph::DoublePort
* m_timePort;
52
53
AtomsGraph::DoublePort
* m_timeOffsetPort;
54
55
AtomsGraph::DoublePort
* m_scaleMultiplierPort;
56
57
AtomsGraph::StringArrayPort
* m_metadataExclusion;
58
59
AtomsGraph::LongPort
* m_startFramePort;
60
61
AtomsGraph::LongPort
* m_endFramePort;
62
63
AtomsGraph::MatrixPort
* m_matrixPort;
64
65
AtomsGraph::MatrixPort
* m_localMatrixPort;
66
67
AtomsGraph::LongPort
* m_agentCacheIdPort;
68
69
AtomsGraph::BooleanPort
* m_timeOffsetInPlace;
70
71
private
:
72
73
AtomsCore::Vector3
m_initPosition;
74
75
AtomsCore::Vector3
m_startCachePosition;
76
77
double
m_currentFrame;
78
79
double
m_initTimeOffset;
80
double
m_initTime;
81
82
bool
m_init;
83
};
84
}
Atoms::CacheReaderOperator::reset
void reset()
Operator reset function.
Atoms::CacheReaderOperator::compute
bool compute(const AtomsGraph::ComputeData *computeData)
Compute function.
AtomsCore::Matrix
AtomsMath::Matrix Matrix
Matrix class.
Definition:
AtomsMath.h:63
AtomsCore::Vector3
AtomsMath::Vector3 Vector3
Vector3 class.
Definition:
AtomsMath.h:57
AtomsGraph::PortTemplate
Generic node port class.
Definition:
PortTemplate.h:24
Atoms
Atoms namespace.
Definition:
Agent.h:28
Atoms::Operator
Operator node.
Definition:
Operator.h:26
AtomsGraph::ComputeData
Definition:
Node.h:21
Atoms::CacheReaderOperator
Definition:
CacheReaderOperator.h:20
Atoms
include
Atoms
Graph
Operators
CacheReaderOperator.h