vrecko
virtual reality framework
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
vrecko
Vrecko - the Virtual Reality Engine
Dynamic Art module
L-system plant modeler - module for Vrecko
Head Up Display module
Space Partitioning - module for Vrecko
Todo List
Deprecated List
Namespaces
Classes
Files
File List
include
base
helpers
vrecko
vreckoAP
ArtificialWorld
behindO
Boids
CableEditor
CameraMovement
CameraPath
CarSim
ConnectEditor
ConstrainedMovement
DynamicArt
AP_DynamicArt.h
Attractor.h
Brush.h
BrushStroke.h
ColorGenAdapter.h
ComputeStrategy.h
ComputeThread.h
Configuration.h
Controller.h
Ctrl_Attractor.h
Ctrl_FreeHandPainting.h
Ctrl_MotionVisualization.h
Ctrl_PerlinLines.h
Ctrl_PolyhedraSculptures.h
Ctrl_StringSculptures.h
DAEnvironment.h
DATool.h
DiameterGenAdapter.h
Hook.h
HookManager.h
Hoop.h
HoopShape.h
JuliaAttractor.h
Modes.h
MotionTrail.h
NullAttractor.h
OrdinaryAttractor.h
Parameters.h
ParticleSystem.h
Pattern.h
PatternGeode.h
PerlinLines.h
PerlinLinesTools.h
PhysXManager.h
PoA.h
PolyhedraSculpture.h
PS_Component.h
PS_emptyClass.h
PS_Face.h
PS_FacePlane.h
PS_FlatShape.h
PS_Layer.h
PS_Polyhedron.h
PS_Symmetry.h
RotationFrameGenAdapter.h
SectorColorGen.h
SectorManager.h
SimpleBox.h
SplineAdapter.h
TimeLineSpline.h
Timing.h
ToolBrush.h
ToolEraser.h
ToolHook.h
ToolMagicWand.h
ToolRotation.h
ToolSelector.h
ToolSlice.h
ToolTongs.h
Utils.h
EditorController
EditorQAbilities
FFDEditor
Filter
games
Garden
GUI
HeadTracking
HelloWorld
HUD
InputConnector
LightsEditor
Menu
Nature
navigation
ObjectUtils
ODE
RoomEdit
ShootingSimulation
SpacePartitioning
TextOutput
vreckoDP
vreckoUtils
src
File Members
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
Pattern.h
Go to the documentation of this file.
1
#pragma once
2
3
#include "types.h"
4
#include "
Utils.h
"
5
6
namespace
APDYNAMICART
7
{
8
10
class
Pattern
:
public
osg::Referenced
11
{
12
public
:
13
virtual
Vec3ArrayPtr
generate
(
Vec3ArrayPtr
left,
Vec3ArrayPtr
right) = 0;
14
virtual
std::string
getName
() = 0;
15
};
16
18
class
PatternBase
:
public
Pattern
19
{
20
public
:
21
PatternBase
() :
_array
(NULL) {};
22
23
virtual
Vec3ArrayPtr
generate
(
Vec3ArrayPtr
left,
Vec3ArrayPtr
right)
24
{
25
if
(!
_array
.valid())
_array
=
new
osg::Vec3Array;
26
27
if
(left->size() != right->size()) {
28
err
(
"Different size left/right array. Aborting generation"
);
return
_array
;
29
}
30
31
return
compute
(left, right);
32
}
33
34
virtual
std::string
getName
() = 0;
35
37
Vec3ArrayPtr
getVertexArray
()
const
{
return
_array
; }
38
void
setVertexArray
(
Vec3ArrayPtr
val) {
_array
= val; }
39
40
protected
:
41
Vec3ArrayPtr
_array
;
42
virtual
~PatternBase
() {};
43
virtual
Vec3ArrayPtr
compute
(
Vec3ArrayPtr
left,
Vec3ArrayPtr
right ) = 0;
44
};
45
47
typedef
osg::ref_ptr<PatternBase>
PatternPtr
;
48
typedef
std::vector<PatternPtr>
Patterns
;
49
51
class
PatternFactory
52
{
53
public
:
54
static
std::vector<std::string>
getAvaiablePatterns
();
55
static
PatternPtr
getPattern
(
const
std::string& name);
56
};
57
59
class
NullPattern
:
public
PatternBase
60
{
61
virtual
Vec3ArrayPtr
compute(
Vec3ArrayPtr
left,
Vec3ArrayPtr
right)
62
{
63
dbg
(
"PatternBase::generate() called on null object."
);
64
return
new
osg::Vec3Array;
65
}
66
67
virtual
std::string getName() {
68
return
"NullPattern"
;
69
}
70
};
71
72
class
AcrossPattern
:
public
PatternBase
73
{
74
virtual
Vec3ArrayPtr
compute(
Vec3ArrayPtr
left,
Vec3ArrayPtr
right);
75
virtual
std::string getName() {
76
return
"Across"
;
77
}
78
};
79
80
class
CrissCrossPattern
:
public
PatternBase
81
{
82
virtual
Vec3ArrayPtr
compute(
Vec3ArrayPtr
left,
Vec3ArrayPtr
right);
83
virtual
std::string getName() {
84
return
"Criss-cross"
;
85
}
86
};
87
88
class
DoublePattern
:
public
PatternBase
89
{
90
virtual
Vec3ArrayPtr
compute(
Vec3ArrayPtr
left,
Vec3ArrayPtr
right);
91
virtual
std::string getName() {
92
return
"Double"
;
93
}
94
};
95
96
class
HyperbolicPattern
:
public
PatternBase
97
{
98
virtual
Vec3ArrayPtr
compute(
Vec3ArrayPtr
left,
Vec3ArrayPtr
right);
99
virtual
std::string getName() {
100
return
"Hyperbolic"
;
101
}
102
};
103
104
class
TopPattern
:
public
PatternBase
105
{
106
virtual
Vec3ArrayPtr
compute(
Vec3ArrayPtr
left,
Vec3ArrayPtr
right);
107
virtual
std::string getName() {
108
return
"Top"
;
109
}
110
};
111
112
class
TopReversePattern
:
public
PatternBase
113
{
114
virtual
Vec3ArrayPtr
compute(
Vec3ArrayPtr
left,
Vec3ArrayPtr
right);
115
virtual
std::string getName() {
116
return
"Top-Reverse"
;
117
}
118
};
119
120
class
StandardPattern
:
public
PatternBase
121
{
122
virtual
Vec3ArrayPtr
compute(
Vec3ArrayPtr
left,
Vec3ArrayPtr
right);
123
virtual
std::string getName() {
124
return
"Standard"
;
125
}
126
};
127
128
class
SplitPattern
:
public
PatternBase
129
{
130
virtual
Vec3ArrayPtr
compute(
Vec3ArrayPtr
left,
Vec3ArrayPtr
right);
131
virtual
std::string getName() {
132
return
"Split"
;
133
}
134
};
135
136
class
SplitReversePattern
:
public
PatternBase
137
{
138
virtual
Vec3ArrayPtr
compute(
Vec3ArrayPtr
left,
Vec3ArrayPtr
right);
139
virtual
std::string getName() {
140
return
"Split-Reverse"
;
141
}
142
};
143
144
}
include
vreckoAP
DynamicArt
Pattern.h
Generated on Tue Feb 19 2013 10:23:43 for vrecko by
1.8.3.1