Animation.h
Go to the documentation of this file.
1 /*--------------------------------------------------------------------------------------+
2 |
3 | Supplied under applicable software license agreement.
4 |
5 | Copyright (c) 2018 Bentley Systems, Incorporated. All rights reserved.
6 |
7 +---------------------------------------------------------------------------------------*/
8 #pragma once
9 
13 #ifndef DOCUMENTATION_GENERATOR
14 
15 #if defined (__ANIMATOR_BUILD__)
16 # define __ANIMATOR_DECLSPEC__ __declspec(dllexport)
17 #else
18 # define __ANIMATOR_DECLSPEC__ __declspec(dllimport)
19 #endif
20 
21 #define ANIMATOR_EXPORTED __ANIMATOR_DECLSPEC__
22 
23 #else
24 
25 #define ANIMATOR_EXPORTED
26 
27 #endif
28 
29 #include <AnimCore\Relationship.h>
33 #include <AnimCore\Envelopes.h>
34 #include <AnimCore\TimeInterval.h>
37 
38 #include <Mstn\MdlApi\mssystem.fdf>
39 #include <Mstn\MdlApi\msview.fdf>
40 #include <Mstn\MdlApi\mstmatrx.fdf>
41 
42 
43 
45 #define ANIMATOR_ERROR_BASE 0x21000
46 #define ANIMERR_DUPLICATENAME ANIMATOR_ERROR_BASE + 0x01
47 #define ANIMERR_ELEMENTINACTOR ANIMATOR_ERROR_BASE + 0x02
48 #define ANIMERR_ACTORCREATE ANIMATOR_ERROR_BASE + 0x03
49 #define ANIMERR_CANNOTFINDACTORNAMEDGROUP ANIMATOR_ERROR_BASE + 0x04
50 #define ANIMERR_CANNOTADDACTORTONAMEDGROUP ANIMATOR_ERROR_BASE + 0x05
51 #define ANIMERR_DROPACTOR ANIMATOR_ERROR_BASE + 0x06
52 #define ANIMERR_ACTORMUSTHAVENOCHILDRENTODROP ANIMATOR_ERROR_BASE + 0x07
53 #define ANIMERR_NAMEDGROUP ANIMATOR_ERROR_BASE + 0x08
54 #define ANIMERR_KEYFRAMEEXISTS ANIMATOR_ERROR_BASE + 0x09
55 #define ANIMERR_DUPLICATECALLBACKFUNCITON ANIMATOR_ERROR_BASE + 0x0a
56 #define ANIMERR_NOANIMATIONFILE ANIMATOR_ERROR_BASE + 0x0b
57 #define ANIMERR_ANIMATEDELEMENTEXISTS ANIMATOR_ERROR_BASE + 0x0c
58 #define ANIMERR_CANNOTOPENFILETOCONVERTACTORS ANIMATOR_ERROR_BASE + 0x0d
59 #define ANIMERR_CANNOTCONVERTV7ACTORS ANIMATOR_ERROR_BASE + 0x0e
60 #define ANIMERR_EXITING ANIMATOR_ERROR_BASE + 0x0f
61 #define ANIMERR_CANNOTSCRIPTATTACHACTOR ANIMATOR_ERROR_BASE + 0x10
62 #define ANIMERR_ACTORALREADYATTACHEDATTIME ANIMATOR_ERROR_BASE + 0x11
63 #define ANIMERR_CANNOTCREATEPATHTOACTOR ANIMATOR_ERROR_BASE + 0x12
64 #define ANIMERR_INVALIDDETACHTIME ANIMATOR_ERROR_BASE + 0x13
65 #define ANIMERR_INCLUDEDSCRIPTCYCLE ANIMATOR_ERROR_BASE + 0x14
66 #define ANIMERR_ACTORALREADYATTACHED ANIMATOR_ERROR_BASE + 0x15
67 #define ANIMERR_INVALIDMODELREF ANIMATOR_ERROR_BASE + 0x16
68 
69 struct AnimatorProgressBar;
70 
71 
72 
73 /*=================================================================================**/
78 struct Animation : public RefCountedBase
79  {
80 
83  ANIMATOR_EXPORTED AnimationModelVector* GetAnimationModels ();
84 
87  ANIMATOR_EXPORTED double GetFrameParameter ();
88 
91  ANIMATOR_EXPORTED double GetBeginFrameParameter ();
92 
95  ANIMATOR_EXPORTED double GetEndFrameParameter ();
96 
99  ANIMATOR_EXPORTED double GetMinFrameParameter ();
100 
103  ANIMATOR_EXPORTED double GetMaxFrameParameter ();
104 
107  ANIMATOR_EXPORTED AnimationModelP GetAnimationModelParameter ();
108 
111  ANIMATOR_EXPORTED ScriptParameterMapP GetParameterMap ();
112 
115  ANIMATOR_EXPORTED SymbolSet* GetSymbolSet ();
116 
120  ANIMATOR_EXPORTED void AddAnimatedElementEventHandler (AnimatedElementEventHandlerP handler);
121 
125  ANIMATOR_EXPORTED void RemoveAnimatedElementEventHandler (AnimatedElementEventHandlerP handler);
126 
130  ANIMATOR_EXPORTED void AddAnimationEventHandler (AnimationEventHandlerP handler);
131 
135  ANIMATOR_EXPORTED void RemoveAnimationEventHandler (AnimationEventHandlerP handler);
136 
142  ANIMATOR_EXPORTED DgnModelRefP GetUpdateModelRef ();
143 
147  ANIMATOR_EXPORTED void SetUpdateModelRef (DgnModelRefP modelRef);
148 
151  ANIMATOR_EXPORTED ElementRefP GetTimeRef();
152 
156  ANIMATOR_EXPORTED ElementRefP GetTimeRef (DgnModelRefP animationModel);
157 
161  ANIMATOR_EXPORTED ElementRefP GetTimeActionRef (DgnModelRefP animationModel);
162 
165  ANIMATOR_EXPORTED AnimationModelP GetEditorAnimationModel ();
166 
170  ANIMATOR_EXPORTED AnimationModelP GetAnimationModel (DgnModelRefP modelRef);
171 
175  ANIMATOR_EXPORTED AnimationModelP FindAnimationModelForCache (DgnModelP cache);
176 
183  ANIMATOR_EXPORTED StatusInt CreateAnimationModel (AnimationModelP& animationModel, WCharCP pName, WCharCP pDescription, bool isDefaultAnimationModel);
184 
187  ANIMATOR_EXPORTED void SetDefaultAnimationModel (DgnModelRefP modelRef);
188 
193  ANIMATOR_EXPORTED DgnModelRefP FindAnimationModel (WCharP pModelName, DgnFileP dgnFileObj);
194 
202  ANIMATOR_EXPORTED StatusInt AddToAnimationModelListModel (ListModelP pListModel,WCharP pModelName,WCharP pModelDescription, UInt32 modelVersion, DgnModelRefP modelRef);
203 
210  ANIMATOR_EXPORTED StatusInt GetAnimationModelListModel (ListModelP* ppListModel,DgnFileP dgnFileObj, bool isForIncludeScript, DgnModelRefP targetModel = NULL);
211 
215  ANIMATOR_EXPORTED StatusInt DestroyAnimationModelListModel (ListModelP pListModel);
216 
222  ANIMATOR_EXPORTED DgnModelRefP GetDefaultAnimationModel (DgnModelRefP modelRef, bool ignoreVersion = false, bool load = true);
223 
224 
228  ANIMATOR_EXPORTED AdvancedRenderSettingsHostP GetAdvancedRenderSettingsHost ();
229 
233  ANIMATOR_EXPORTED void SetAdvancedRenderSettingsHost (AdvancedRenderSettingsHostP host);
234 
241  ANIMATOR_EXPORTED StatusInt AttachAnimationModelToModel (DgnModelRefP* pAnimationModelToDesignModelRef, DgnModelRefP designModel, DgnModelRefP animationModel);
242 
250  ANIMATOR_EXPORTED StatusInt AttachAnimationModelToModel (DgnModelRefP* pAnimationModelToDesignModelRef, WCharCP designModelName, WCharCP designFileName, DgnModelRefP animationModel);
251 
258  ANIMATOR_EXPORTED bool IsAnimationModelAttachedToModel (DgnModelRefP *pAnimationModelToDesignModelRef, DgnModelRefP designModel, DgnModelRefP animationModel);
259 
267  ANIMATOR_EXPORTED bool IsAnimationModelAttachedToModel (DgnModelRefP *pAnimationModelToDesignModelRef, WChar* modelName, DgnFileP dgnFileP, DgnModelRefP animationModel);
268 
273  ANIMATOR_EXPORTED StatusInt DetachAnimationModelToModel (DgnModelRefP animationModelToDesignModelRef);
274 
280  ANIMATOR_EXPORTED AnimationModelP LoadAnimationModel (WCharP pModelName, DgnModelRefP parentModelRef = NULL);
281 
286  ANIMATOR_EXPORTED StatusInt UnloadAnimationModel (WCharP pModelName);
287 
292  ANIMATOR_EXPORTED StatusInt UnloadAnimationModel(AnimationModelP model);
293 
299  ANIMATOR_EXPORTED AnimatedElementP GetAnimatedElement (ElementRefP ref, DgnModelRefP modelRef = NULL);
300 
306  ANIMATOR_EXPORTED AnimatedElementP GetAnimatedElement (Bentley::DgnPlatform::ElementId elID, DgnModelRefP modelRef);
307 
313  ANIMATOR_EXPORTED AnimatedElementP AddAnimatedElement (ElementRefP ref, DgnModelRefP modelRef = NULL);
314 
320  ANIMATOR_EXPORTED StatusInt DropAnimatedElement (AnimatedElementP *animEl, DgnModelRefP modelRef = NULL);
321 
326  ANIMATOR_EXPORTED ActorElementP FindActor (WCharCP pName, DgnModelRefP modelRef);
327 
332  ANIMATOR_EXPORTED ActorElementP FindActorForCoordSysElementID (Bentley::DgnPlatform::ElementId coordSysID, DgnModelRefP modelRef);
333 
337  ANIMATOR_EXPORTED ActorElementP FindActorForCoordSysElementRef (ElementRefP ref);
338 
343  ANIMATOR_EXPORTED ActorElementP GetActor(Bentley::DgnPlatform::ElementId actorID, DgnModelRefP modelRef);
344 
349  ANIMATOR_EXPORTED ActorElementP GetActor (ElementRefP ref,DgnModelRefP modelRef = NULL);
350 
358  ANIMATOR_EXPORTED StatusInt CreateActorFromEdP (MSElementDescrP actorEdP, WCharCP pActorName, DPoint3dCP originP, RotMatrixCP rMatrixP, UInt32 actorMovableMask);
359 
364  ANIMATOR_EXPORTED void SynchActorToNamedGroup (Bentley::DgnPlatform::ElementId namedGroupID, Bentley::DgnPlatform::ElementId coordSysID, DgnModelRefP modelRef);
365 
369  ANIMATOR_EXPORTED bool IsActorNamedGroup (NamedGroupP group);
370 
375  ANIMATOR_EXPORTED StatusInt DropActorByCoordSysID (Bentley::DgnPlatform::ElementId elID, DgnModelRefP modelRef);
376 
380  ANIMATOR_EXPORTED StatusInt DropActorByCoordSysRef (ElementRefP ref);
381 
386  ANIMATOR_EXPORTED void GetAllRootActors (ActorElementMap* pMap, DgnModelRefP modelRef,bool includeStationaryActors = true);
387 
391  ANIMATOR_EXPORTED ElementRefP GetActorNamedGroupForMember (ElementRefP ref);
392 
399  ANIMATOR_EXPORTED StatusInt ConvertNamedGroupToActor (NamedGroupP pNamedGroup, UInt32 taskId, ElementRefP* pCoordSysRefOut = NULL);
400 
407  ANIMATOR_EXPORTED StatusInt DropActorToNamedGroup (ActorElementP pActor, AnimationModelP pModel = NULL);
408 
413  ANIMATOR_EXPORTED UInt32 GetActorNamedGroupsForMember (ElementRefP *pGroups, ElementRefP ref);
414 
419  ANIMATOR_EXPORTED StatusInt CreateTargetActor (WCharP name, Transform* transform);
420 
433  ANIMATOR_EXPORTED StatusInt CreateCameraActor
434  (
435  WCharP name,
436  WCharP description,
437  Transform* transform,
438  DPoint3d* target,
439  double lensAngle,
440  double lensDiameter,
441  double frontClip,
442  double backClip,
443  DPoint3d* delta,
444  DPoint3d* offset
445  );
446 
448  ANIMATOR_EXPORTED void AttachAnimatedElementViewUpdater ();
449 
451  ANIMATOR_EXPORTED void DetachAnimatedElementViewUpdater ();
452 
453 
455  ANIMATOR_EXPORTED void PrintParameters ();
456 
459  ANIMATOR_EXPORTED static AnimationP GetManager ();
460 
462  ANIMATOR_EXPORTED static void RegisterManager ();
463 
465  ANIMATOR_EXPORTED static void UnregisterManager ();
466 
467  }; //Animation
468 
469 
470 /*=================================================================================**/
475 {
476 public:
479  void OnAnimatedElementAdded (AnimatedElementP animEl);
480 
483  void OnAnimatedElementModified (AnimatedElementP animEl);
484 
487  void OnAnimatedElementDelete (AnimatedElementP animEl);
488 };
489 
490 
491 /*=================================================================================**/
496 {
500  ANIMATOR_EXPORTED static MdlDescP GetCurrMdlDescr ();
501 
505  ANIMATOR_EXPORTED static void SetCurrMdlDescr (MdlDescP descr);
506 };
507 
508 /*=================================================================================**/
512 struct AnimatedElementEventHandlerList : DgnPlatform::AbstractEventHandlerList<AnimatedElementEventHandler, AnimMdlSaver>
513 {
514 };
515 
516 
517 /*=================================================================================**/
522  {
523 public:
526 
529  ANIMATOR_EXPORTED void SetAnimatedFogColor (RgbFactor const & color);
530 
533  ANIMATOR_EXPORTED void SetAnimatedDepthOfField (double dof);
534 
537  ANIMATOR_EXPORTED void SetAnimatedBackgroundFileName (WStringCR fileName);
538  };
539 
540 /*=================================================================================**/
545  {
548  };
549 
struct RotMatrix const * RotMatrixCP
Definition: msgeomstructs_typedefs.h:135
This class defines the advanced render settings host.
Definition: Animation.h:521
#define ANIMATOR_EXPORTED
Definition: Animation.h:25
#define END_BENTLEY_MSTNPLATFORM_NAMESPACE
Definition: DgnPlatform.h:30
struct DPoint3d const * DPoint3dCP
Definition: msgeomstructs_typedefs.h:79
wchar_t * WCharP
Definition: Bentley.h:225
wchar_t WChar
Definition: Bentley.h:223
This class defines a collection of animated element event handlers.
Definition: Animation.h:512
struct Bentley::WString const & WStringCR
Definition: Bentley.h:239
Definition: NamedGroup.h:449
ElementRefP m_ref
Definition: Animation.h:546
#define BEGIN_BENTLEY_MSTNPLATFORM_NAMESPACE
Definition: DgnPlatform.h:29
ScriptParameterMap * ScriptParameterMapP
Definition: AnimationCollections.h:385
A DgnFile is an in-memory representation of a physical file, regardless of its format.
Definition: DgnFile.h:308
wchar_t const * WCharCP
Definition: Bentley.h:224
uint32_t UInt32
Definition: Bentley.r.h:128
#define NULL
Definition: Bentley.h:157
Red, green, blue color data as doubles.
Definition: GeomApi.r.h:85
AdvancedRenderSettingsHost()
Definition: Animation.h:524
Definition: MSElementDescr.h:28
A DgnModel represents a DgnModel in memory.
Definition: DgnModel.h:236
struct MstnPlatform::ListModel * ListModelP
Definition: DgnPlatform.h:156
bmap< UniqueID, ActorElement *, UniqueIDCompare > ActorElementMap
Definition: AnimationCollections.h:287
3d point coordinates.
Definition: dpoint3d.h:19
virtual ~AdvancedRenderSettingsHost()
Definition: Animation.h:525
A DgnModelRef provides access to a model in a Bentley::DgnPlatform::DgnFile.
Definition: DgnModelRef.h:172
This class defines the events of animation.
Definition: AnimationModel.h:370
IManager * GetManager()
Return a pointer to the one and only relationship manager.
This class defines script parameters.
Definition: Animation.h:544
This class represents an Animation, which is all the elements in all the files currently opened which...
Definition: Animation.h:78
Interface that provides direct and efficient access to element data.
Definition: ElementRefBase.h:120
double * m_pParameterValues
Definition: Animation.h:547
bvector< AnimationModelPtr > AnimationModelVector
Definition: AnimationCollections.h:408
This class defines the events of animated element.
Definition: Animation.h:474
int StatusInt
Definition: Bentley.h:222
3x4 matrix for defining coordinate frames and affine transformations.
Definition: transform.h:22
Concrete class that can be used to implement the reference-counting pattern.
Definition: RefCounted.h:109
UInt64 ElementId
Definition: DgnPlatformBaseType.r.h:83
struct mdlDesc * MdlDescP
Definition: ConfigurationManager.h:13
struct symbolSet SymbolSet
Definition: cexpr.h:245
This class used to set or get MdlDescP.
Definition: Animation.h:495

Copyright © 2017 Bentley Systems, Incorporated. All rights reserved.