My Project
PEtypes.h
1 //-----------------------------------------------------------------------------
2 // Copyright (C) 2007 - 2010 ParaEngine Co. All Rights Reserved.
3 // Author: LiXizhi
4 // Date: 2006.8
5 // Description: API for ParaEngine types.
6 //-----------------------------------------------------------------------------
7 #pragma once
8 
9 // Cross-platform type definitions
10 #ifdef WIN32
11 #ifndef PARAENGINE_CLIENT
12 #ifndef WIN32_LEAN_AND_MEAN
13 /* Prevent inclusion of winsock.h in windows.h, otherwise boost::Asio will produce error in ParaEngineServer project: WinSock.h has already been included*/
14 #define WIN32_LEAN_AND_MEAN
15 #endif
16 #endif
17 #include <windows.h>
18 #include <stdio.h>
19 #include <wchar.h>
20 #include <tchar.h>
21 #else// For LINUX
22 #include <ctype.h>
23 #include <wctype.h>
24 #include <unistd.h>
25 #include <string.h>
26 #include <wchar.h>
27 #include <stdarg.h>
28 #if (defined(__APPLE__)) || ((defined PARA_TARGET_PLATFORM) && (PARA_TARGET_PLATFORM == PARA_PLATFORM_IOS || PARA_TARGET_PLATFORM == PARA_PLATFORM_MAC ))
29 #include <malloc/malloc.h>
30 #else
31 #include <malloc.h>
32 #endif
33 #include <stdlib.h>
34 #include <stdio.h>
35 #include <stdint.h>
36 #endif // WIN32
37 
38 #include <assert.h>
39 
40 // Cross-platform type definitions
41 #ifdef WIN32
42 typedef signed char int8;
43 typedef short int16;
44 typedef long int32;
45 typedef __int64 int64;
46 typedef unsigned char uint8;
47 typedef unsigned short uint16;
48 typedef unsigned long uint32;
49 typedef unsigned __int64 uint64;
50 typedef unsigned char byte;
51 #ifndef STDCALL
52 #define STDCALL __stdcall
53 #endif
54 
55 #ifdef PARAENGINE_MOBILE
56 #ifndef SUCCEEDED
57 #define SUCCEEDED(hr) ((HRESULT)(hr) >= 0)
58 #endif
59 #endif
60 
61 #else // For LINUX
62 typedef int8_t int8;
63 typedef int16_t int16;
64 typedef int32_t int32;
65 typedef int64_t int64;
66 typedef uint8_t uint8;
67 typedef uint16_t uint16;
68 typedef uint32_t uint32;
69 typedef uint64_t uint64;
70 typedef uint8_t byte;
71 #define FALSE 0
72 #define TRUE 1
73 #define VOID void
74 typedef void * HANDLE;
75 typedef void * HWND;
76 typedef void * HANDLE;
77 typedef void * HMODULE;
78 typedef void * HINSTANCE;
79 typedef void *PVOID;
80 typedef void *LPVOID;
81 typedef float FLOAT;
82 typedef uint32_t DWORD;
83 typedef DWORD *LPDWORD;
84 typedef const void * LPCVOID;
85 typedef char CHAR;
86 typedef char TCHAR;
87 typedef wchar_t WCHAR;
88 typedef uint16_t WORD;
89 typedef float FLOAT;
90 typedef int BOOL;
91 typedef unsigned char BYTE;
92 typedef int INT;
93 typedef unsigned int UINT;
94 typedef int32_t LONG;
95 typedef uint32_t ULONG;
96 typedef int32_t HRESULT;
97 
98 #ifndef LRESULT
99 #define LRESULT int32
100 #endif
101 #ifndef WPARAM
102 #define WPARAM uint32
103 #endif
104 #ifndef LPARAM
105 #define LPARAM uint32
106 #endif
107 #ifndef CONST
108 #define CONST const
109 #endif
110 typedef WCHAR *LPWSTR;
111 typedef TCHAR *LPTSTR;
112 typedef const WCHAR *LPCWSTR;
113 typedef const TCHAR *LPCTSTR;
114 typedef const CHAR *LPCSTR;
115 
116 typedef struct tagPOINT
117 {
118  LONG x;
119  LONG y;
120 } POINT;
121 
122 typedef struct tagRECT
123 {
124  LONG left;
125  LONG top;
126  LONG right;
127  LONG bottom;
128 } RECT;
129 
130 #define FILE_BEGIN 0
131 #define FILE_CURRENT 1
132 #define FILE_END 2
133 
134 #ifndef STDCALL
135 #define STDCALL
136 #endif
137 
138 #define _HRESULT_TYPEDEF_(_sc) ((HRESULT)_sc)
139 #define E_FAIL ((HRESULT)(0x80000008L))
140 // emulate windows error msg in linux
141 #define E_ACCESSDENIED _HRESULT_TYPEDEF_(0x80070005L)
142 #define E_INVALIDARG _HRESULT_TYPEDEF_(0x80000003L)
143 #define E_PENDING _HRESULT_TYPEDEF_(0x8000000AL)
144 
145 typedef struct _FILETIME
146 {
147  DWORD dwLowDateTime;
148  DWORD dwHighDateTime;
149 } FILETIME;
150 #define MAX_PATH 260
151 #endif // WIN32
152 
153 #ifndef SUCCEEDED
154 #define SUCCEEDED(hr) ((HRESULT)(hr) >= 0)
155 #endif
156 
157 #ifndef SAFE_DELETE
158 #define SAFE_DELETE(x) if((x)!=0){delete (x);x=0;}
159 #endif
160 
161 #ifndef SAFE_DELETE_ARRAY
162 #define SAFE_DELETE_ARRAY(x) if((x)!=0){delete [] (x);x=0;}
163 #endif
164 
165 #ifndef SAFE_RELEASE
166 #define SAFE_RELEASE(p) { if(p) { (p)->Release(); (p)=NULL; } }
167 #endif
168 
169 #ifndef FAILED
170 #define FAILED(hr) ((HRESULT)(hr) < 0)
171 #endif
172 
173 #ifndef S_OK
174 #define S_OK ((HRESULT)0x00000000L)
175 #endif
176 
177 #ifndef UCHAR_MAX
178 #define UCHAR_MAX 0xff /* maximum unsigned char value */
179 #endif
180 
181 namespace ParaEngine
182 {
184  enum EventType{
185  EVENT_MOUSE=0, // mouse click
186  EVENT_KEY,
187  EVENT_EDITOR,
188  EVENT_SYSTEM,
189  EVENT_NETWORK,
190  EVENT_MOUSE_MOVE,
191  EVENT_MOUSE_DOWN,
192  EVENT_MOUSE_UP,
193  EVENT_KEY_UP,
194  EVENT_MOUSE_WHEEL,
195  EVENT_TOUCH,
196  EVENT_ACCELEROMETER,
197  EVENT_LAST
198  };
201  {
202  EH_MOUSE = 0x1, // mouse click
203  EH_KEY = 0x1<<1,
204  EH_EDITOR = 0x1<<2,
205  EH_SYSTEM = 0x1<<3,
206  EH_NETWORK = 0x1<<4,
207  EH_MOUSE_MOVE = 0x1<<5,
208  EH_MOUSE_DOWN = 0x1<<6,
209  EH_MOUSE_UP = 0x1<<7,
210  EH_KEY_UP = 0x1<<8,
211  EH_MOUSE_WHEEL = 0x1<<9,
212  EH_TOUCH = 0x1 << 10,
213  EH_ACCELEROMETER = 0x1 << 11,
214  EH_ALL = 0xffff,
215  };
216 
220  typedef int SClass_ID;
221 
222 
225  {
226  PluginActType_NONE = 0,
231  };
232 
240  class Class_ID
241  {
242  unsigned long a,b;
243  public:
244  Class_ID() { a = b = 0xffffffff; }
245  Class_ID(const Class_ID& cid) { a = cid.a; b = cid.b; }
246  Class_ID(unsigned long aa, unsigned long bb) { a = aa; b = bb; }
247  unsigned long PartA() { return a; }
248  unsigned long PartB() { return b; }
249  void SetPartA( unsigned long aa ) { a = aa; } //-- Added 11/21/96 GG
250  void SetPartB( unsigned long bb ) { b = bb; }
251  int operator==(const Class_ID& cid) const { return (a==cid.a&&b==cid.b); }
252  int operator!=(const Class_ID& cid) const { return (a!=cid.a||b!=cid.b); }
253  Class_ID& operator=(const Class_ID& cid) { a=cid.a; b = cid.b; return (*this); }
254  // less operator - allows for ordering Class_IDs (used by stl maps for example)
255  bool operator<(const Class_ID& rhs) const
256  {
257  if ( a < rhs.a || ( a == rhs.a && b < rhs.b ) )
258  return true;
259 
260  return false;
261  }
262  };
263 
268  {
269  unsigned long a,b;
270  public:
271  Interface_ID() { a = b = 0xffffffff; }
272  Interface_ID(const Interface_ID& iid) { a = iid.a; b = iid.b; }
273  Interface_ID(unsigned long aa, unsigned long bb) { a = aa; b = bb; }
274  unsigned long PartA() { return a; }
275  unsigned long PartB() { return b; }
276  void SetPartA( unsigned long aa ) { a = aa; }
277  void SetPartB( unsigned long bb ) { b = bb; }
278  int operator==(const Interface_ID& iid) const { return (a==iid.a&&b==iid.b); }
279  int operator!=(const Interface_ID& iid) const { return (a!=iid.a||b!=iid.b); }
280  Interface_ID& operator=(const Interface_ID& iid) { a=iid.a; b = iid.b; return (*this); }
281  // less operator - allows for ordering Class_IDs (used by stl maps for example)
282  bool operator<(const Interface_ID& rhs) const
283  {
284  if ( a < rhs.a || ( a == rhs.a && b < rhs.b ) )
285  return true;
286 
287  return false;
288  }
289  };
290 
291  struct PARAVECTOR2 {
292  float x;
293  float y;
294  PARAVECTOR2(float x_, float y_):x(x_), y(y_){}
295  PARAVECTOR2(){};
296  };
297 
298  struct PARAVECTOR3 {
299  float x;
300  float y;
301  float z;
302  PARAVECTOR3(float x_, float y_, float z_):x(x_), y(y_),z(z_){}
303  PARAVECTOR3(){};
304  };
305 
306  struct PARAVECTOR4 {
307  float x;
308  float y;
309  float z;
310  float w;
311  PARAVECTOR4(float x_, float y_, float z_, float w_) :x(x_), y(y_), z(z_), w(w_){}
312  PARAVECTOR4(){};
313  };
314 
315  struct PARAMATRIX {
316  union {
317  struct {
318  float _11, _12, _13, _14;
319  float _21, _22, _23, _24;
320  float _31, _32, _33, _34;
321  float _41, _42, _43, _44;
322  };
323  float m[4][4];
324  };
325  };
326 
327  struct PARAMATRIX3x3 {
328  union {
329  struct {
330  float _11, _12, _13;
331  float _21, _22, _23;
332  float _31, _32, _33;
333  };
334  float m[3][3];
335  };
336  };
337 
338  struct PARARECT {
339  int32 x1;
340  int32 y1;
341  int32 x2;
342  int32 y2;
343  };
344 
345  struct PARACOLORVALUE {
346  float r;
347  float g;
348  float b;
349  float a;
350  };
351 
352 
353 #if defined(WIN32) && defined(PARAENGINE_CLIENT)
354  typedef D3DXMATRIX DeviceMatrix;
355  typedef D3DXMATRIX* DeviceMatrix_ptr;
356  typedef D3DXVECTOR2* DeviceVector2_ptr;
357  typedef D3DXVECTOR3* DeviceVector3_ptr;
358  typedef D3DXVECTOR4* DeviceVector4_ptr;
359  typedef D3DXVECTOR2 DeviceVector2;
360  typedef D3DXVECTOR3 DeviceVector3;
361  typedef D3DXVECTOR4 DeviceVector4;
362 #else
363  typedef PARAMATRIX DeviceMatrix;
364  typedef PARAMATRIX* DeviceMatrix_ptr;
365  typedef PARAVECTOR2* DeviceVector2_ptr;
366  typedef PARAVECTOR3* DeviceVector3_ptr;
367  typedef PARAVECTOR4* DeviceVector4_ptr;
368  typedef PARAVECTOR2 DeviceVector2;
369  typedef PARAVECTOR3 DeviceVector3;
370  typedef PARAVECTOR4 DeviceVector4;
371 #endif
372 
373  enum EnumForceInit
374  {
375  ForceInit,
376  ForceInitToZero
377  };
378  enum EnumNoInit { NoInit };
379 }
380 
381 // forward declare in rough alphabetic order
382 namespace ParaEngine
383 {
384  struct ActiveBiped;
385  class Angle;
386  class AxisAlignedBox;
387  struct AssetEntity;
388  class CAIBase;
389  class CAISimulator;
390  class CAnimInstanceBase;
391  class CAttributeField;
392  class CAttributeClass;
393  class CAttributesManager;
394  class CAudioEngine;
395  class CAutoCamera;
396  class CBaseCamera;
397  class CBaseObject;
398  class CBipedStateManager;
399  class CDataProviderManager;
400  class CEventsCenter;
401  class CEventBinding;
402  class CFileManager;
403  class CFrameRateController;
404  class CGUIBase;
405  class CGUIResource;
406  class CGUIRoot;
407  class CGUIEvent;
408  class CharModelInstance;
409  struct CharacterPose;
410  class CLightManager;
411  class CMeshObject;
412  class CMoviePlatform;
413  class CMiniSceneGraph;
414  class CManagedLoader;
415  class CMissileObject;
416  class CMirrorSurface;
417  struct CNpcDbItem;
418  class CSceneObject;
419  class CSelectionManager;
420  class COceanManager;
421  class CParaFile;
422  class CParameterBlock;
423  class CParaWorldAsset;
424  class CParaXAnimInstance;
425  class CPhysicsWorld;
426  class CPluginManager;
427  class CPortalNode;
428  class CReport;
429  class CRpgCharacter;
430  class CShapeAABB;
431  class CShapeSphere;
432  class CShapeOBB;
433  class CSunLight;
434  class CSkyMesh;
435  class CTerrainTile;
436  class CWorldInfo;
437  class CZipWriter;
438  class CZoneNode;
439  struct DatabaseEntity;
440  class Degree;
441  class DirectXEngine;
442  class TransformStack;
443  class EffectManager;
444  struct GUILAYER;
445  struct CGUIPosition;
446  struct GUIFontElement;
447  struct GUITextureElement;
448  class IAttributeFields;
449  class IEnvironmentSim;
450  class IGameObject;
451  struct MeshEntity;
452  class Math;
453  class Matrix3;
454  class Matrix4;
455  struct MultiAnimationEntity;
456  struct MDXEntity;
457  class ParaEngineSettings;
458  class Plane;
459  class PlaneBoundedVolume;
460  class Quaternion;
461  class Radian;
462  class Ray;
463  struct SceneState;
464  class ShadowVolume;
465  class Sphere;
466  struct TextureEntity;
467  struct ParaXEntity;
468  class Vector2;
469  class Vector3;
470  class Vector4;
471  class XRefObject;
472  class CViewportManager;
473 }
474 
475 namespace ParaTerrain{
476  class CGlobalTerrain;
477 }
478 
479 namespace NPL
480 {
481  struct NPLAddress;
482  class CNPLConnection;
483  class CNPLConnectionManager;
484  class CNPLDispatcher;
485  struct NPLFileName;
486  class CNPLNetServer;
487  struct NPLMessage;
488  class CNPLMessageQueue;
489  struct NPLMsgHeader;
490  struct NPLMsgIn;
491  class NPLMsgIn_parser;
492  class NPLMsgOut;
493  class CNPLRuntime;
494  struct NPLRuntimeAddress;
495  class CNPLRuntimeState;
496  class CNPLScriptingState;
497  class NPLServerInfo;
498  class INPLStimulationPipe;
499 
500  struct NPLTimer;
501 }
502 
503 namespace ParaInfoCenter{
504  class CICConfigManager;
505 }
506 
507 namespace luabind
508 {
509  namespace adl{
510  class object;
511  }
512  using adl::object;
513 }
514 
515 namespace ParaScripting
516 {
517  class ParaObject;
518  class ParaAssetObject;
519 }
520 struct lua_State;
521 class TiXmlNode;
522 namespace luabind
523 {
524  namespace adl{
525  class object;
526  }
527  using adl::object;
528 }
529 
530 #include <string>
531 #include <vector>
532 #include <list>
533 #include <stdio.h>
534 #include <stdarg.h>
535 #include <algorithm>
536 #include <math.h>
537 #include <limits>
538 #include <stack>
539 #include <iostream>
540 using namespace std;
Which DXT Compression to Use? Obviously, there are some trade-offs between the different formats whic...
Definition: TextureEntity.h:29
Wrapper class which indicates a given angle value is in Radians.
Definition: ParaAngle.h:10
for a single attribute field
Definition: AttributeField.h:19
a flying missile in the global space.
Definition: MissileObject.h:11
Definition: SceneObject.h:15
Definition: PEtypes.h:315
a global pool for user registered custom events.
Definition: EventsCenter.h:28
an attribute class is a collection of attribute fields.
Definition: AttributeClass.h:10
ShadowVolume is a structure for storing shadow volume geometries.
Definition: ShadowVolume.h:39
It&#39;s used as parameter to Draw method of each scene object.
Definition: SceneState.h:284
define this to enable debugging of NPL code in visual studio
Definition: INPL.h:9
this is obsoleted, use PluginActType_STATE
Definition: PEtypes.h:228
4-dimensional homogeneous vector.
Definition: ParaVector4.h:10
abstract class for all animation instance implementation.
Definition: AnimInstanceBase.h:66
EventHandler_type
bit fields
Definition: PEtypes.h:200
A typical character in role playing game.
Definition: RpgCharacter.h:73
Providing information about the current game world.
Definition: WorldInfo.h:12
managing local lights.
Definition: LightManager.h:12
this is the main file interface exposed by ParaEngine.
Definition: FileManager.h:32
a managed loader is a kind of global scene object for dynamic scene object loading and unloading...
Definition: ManagedLoader.h:28
Definition: PEtypes.h:327
base class for all xref objects
Definition: XRefObject.h:13
Mini scene graph does not use a spatial partitions for its stored objects, instead it just implement ...
Definition: MiniSceneGraph.h:29
different physics engine has different winding order.
Definition: EventBinding.h:32
Auto Camera is designed to handle smooth transitions between supported camera type, such as first person camera, third person camera, and rotation camera.
Definition: AutoCamera.h:14
Definition: PEtypes.h:116
Class: CAudioEngine.
Definition: AudioEngine.h:49
a central place for managing all attributes of all classes in ParaEngine.
Definition: AttributesManager.h:9
Place of the.
Definition: GUIEvent.h:43
character animation instance: it includes both the animation and model display information.
Definition: CustomCharModelInstance.h:17
Definition: PEtypes.h:338
manage plug-ins
Definition: PluginManager.h:117
Definition: ManagedDef.h:18
Modeling the global sun and its directional light, including sun position, direction, color, time of day, etc.
Definition: SunLight.h:26
A sphere primitive, mostly used for bounds checking.
Definition: ParaSphere.h:46
this is the interface class for managing global terrain used in ParaEngine.
Definition: GlobalTerrain.h:36
Implementation of a Quaternion, i.e.
Definition: ParaQuaternion.h:10
the sky object in the scene.
Definition: SkyMesh.h:13
A 3x3 matrix which can represent rotations around axes.
Definition: ParaMatrix3.h:63
A GUI layer contains four drawable GUIStateElement, which are "normal", "highlight", "pressed", and "disabled".
Definition: GUIResource.h:131
Standard 3-dimensional vector.
Definition: ParaVector3.h:16
Wrapper class which indicates a given angle value is in Degrees.
Definition: ParaAngle.h:56
an interface ID
Definition: PEtypes.h:267
This class represents the unique class ID for a ParaEngine plug-in.
Definition: PEtypes.h:240
static mesh scene object.
Definition: MeshObject.h:13
Definition: BaseCamera.h:70
the class for all frame rate controller.
Definition: FrameRateController.h:10
base object for all 2D GUI objects (1) 2D GUI object are not tested against view frustum, instead it is controlled by visibility tag automatically or through user input.
Definition: GUIBase.h:54
Definition: object.hpp:749
Standard 2-dimensional vector.
Definition: ParaVector2.h:16
Definition: minilua.c:461
Definition: ShapeSphere.h:6
creating zip files
Definition: ZipWriter.h:27
a zone in portal rendering.
Definition: ZoneNode.h:17
AABB-related code.
Definition: ShapeAABB.h:11
Representation of a ray in space, i.e.
Definition: ParaRay.h:41
this is an interface class for game objects, such as NPC, OPC and players.
Definition: IGameObject.h:15
AI and AI scripts handlers.
Definition: AISimulator.h:28
Class encapsulating a standard 4x4 homogeneous matrix.
Definition: ParaMatrix4.h:23
Definition: ParaXEntity.h:9
a texture from a rectangular region of bitmap, and one additional texture color
Definition: GUIResource.h:12
a tile in the latticed terrain class
Definition: TerrainTile.h:21
For managing and rendering the movie.
Definition: MoviePlatform.h:21
Defines a plane in 3D space.
Definition: ParaPlane.h:23
Definition: PEtypes.h:507
from the NPL activate function call. the second paramter to LibActivate() will be pointer of INPLRunt...
Definition: PEtypes.h:230
Wrapper class which identifies a value as the currently default angle type, as defined by Math::setAn...
Definition: ParaAngle.h:101
NPC database item (complete)
Definition: NpcDatabase.h:8
Each GUI control is associated with a CGUIResource object for rendering.
Definition: GUIResource.h:185
Represents a convex volume bounded by planes.
Definition: ParaPlaneBoundedVolume.h:43
A common interface for all classes implementing IAttributeFields By implementing this class&#39;s virtual...
Definition: IAttributeFields.h:59
The top level scene management class.
Definition: SceneObject.h:58
it presents a real or virtual file in ParaEngine.
Definition: ParaFile.h:31
MeshEntity distinguish one template from other.
Definition: MeshEntity.h:38
This class is for maintaining the event binding table and script binding table.
Definition: EventBinding.h:51
a font name, format and font color
Definition: GUIResource.h:36
AABB with orientation by a matrix.
Definition: ShapeOBB.h:11
Definition: PEtypes.h:503
base class for all AI objects
Definition: AIBase.h:9
the pose of the character.
Definition: ParaXModel.h:381
a singleton class for managing all data providers used in the game engine.
Definition: DataProviderManager.h:20
EventType
event type
Definition: PEtypes.h:184
Definition: PEtypes.h:298
The global physics scene (NxScene) and physics SDK is encapsulated in a member object of scene manage...
Definition: PhysicsWorld.h:18
manager all effects file used by the game engine.
Definition: EffectManager.h:16
managing biped state
Definition: BipedStateManager.h:11
this is a default report class.
Definition: Report.h:15
Definition: PEtypes.h:145
a reflective plane in the scene currently it only supports horizontal surface.Vertical surface and ar...
Definition: MirrorSurface.h:10
Portal rendering: portal class a portal can be connected to one or two zones.
Definition: PortalNode.h:15
It holds any information that is perceived by a Active Biped object including himself.
Definition: IEnvironmentSim.h:62
for world view projection transformation stack
Definition: Globals.h:115
Defines the base class of all scene elements:CBaseObject for Parallel World Engine.
Definition: BaseObject.h:230
the asset manager class in ParaEngine.
Definition: ParaWorldAsset.h:44
for luabind, The main drawback of this approach is that the compilation time will increase for the fi...
Definition: luaSQLite.cpp:1971
DataBaseEntity distinguish one template from other TODO: I should wrap the SQLite3 interface in Datab...
Definition: DatabaseEntity.h:12
A pool of currently selected objects.
Definition: SelectionManager.h:102
manager multiple viewport
Definition: ViewportManager.h:18
A 3D box aligned with the x/y/z axes.
Definition: ParaAxisAlignedBox.h:16
int SClass_ID
class ID for built-in classes only.
Definition: PEtypes.h:220
PluginActivationType
activation file type in the plug-in&#39;s Activate() function.
Definition: PEtypes.h:224
position of the GUI object
Definition: GUIPosition.h:34
Definition: PEtypes.h:345
this is primary animation instance used for normal animated character or advanced customizable charac...
Definition: ParaXAnimInstance.h:13
standard math lib
Definition: ParaMath.h:21
Definition: PEtypes.h:291
FFT based ocean rendering class.
Definition: OceanManager.h:56
Definition: PEtypes.h:306
Base class for managed asset entity in ParaEngine.
Definition: AssetEntity.h:25
environment simulator.
Definition: IEnvironmentSim.h:103
When rendering scene, root scene and the root GUI are rendered in sequence.
Definition: GUIRoot.h:48
global settings for ParaEngine.
Definition: ParaEngineSettings.h:36
a list of CParameter{name, value} pairs of anything.
Definition: ParameterBlock.h:108