3ds Max C++ API Reference
IPFAction.h File Reference

Action-generic interface IPFAction. More...

#include "PFExport.h"
#include "ParticleChannelMask.h"
#include "../ifnpub.h"
#include "../object.h"

Classes

class  IPFAction
 

Macros

#define PFACTION_INTERFACE   Interface_ID(0x74f93d00, 0x1eb34500)
 
#define GetPFActionInterface(obj)   ((IPFAction*)((GetPFObject(obj))->GetInterface(PFACTION_INTERFACE)))
 
#define PROPID_FINALUPDATETIME   0x00635690
 

Enumerations

enum  {
  kPF_GetActionDescription = 781 , kPF_GetActionName , kPF_PViewPublic , kPF_PViewCategory ,
  kPF_IsFertile , kPF_IsNonExecutable , kPF_PViewDepotIcon
}
 

Functions

PFExport ObjectGetPFObject (Object *obj)
 
IPFActionPFActionInterface (Object *obj)
 
IPFActionPFActionInterface (INode *node)
 
PFExport int IsPFActionActive (INode *actionNode)
 An action may be turned ON, OFF, True and False in Particle View. More...
 
PFExport bool IsUndefinedPFAction (INode *actionNode)
 A scene can be saved with third-party PFlow operators / tests that are currently unavailable. More...
 

Detailed Description

Action-generic interface IPFAction.

This is a part of every PF Operator & Test.

Macro Definition Documentation

◆ PFACTION_INTERFACE

#define PFACTION_INTERFACE   Interface_ID(0x74f93d00, 0x1eb34500)

◆ GetPFActionInterface

#define GetPFActionInterface (   obj)    ((IPFAction*)((GetPFObject(obj))->GetInterface(PFACTION_INTERFACE)))

◆ PROPID_FINALUPDATETIME

#define PROPID_FINALUPDATETIME   0x00635690

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
kPF_GetActionDescription 
kPF_GetActionName 
kPF_PViewPublic 
kPF_PViewCategory 
kPF_IsFertile 
kPF_IsNonExecutable 
kPF_PViewDepotIcon 
255  { kPF_GetActionDescription = 781,
256 // defines an action name to be shown in the action depot area in PView
257 // if the method is not supported then the class name of the action is used
259 // defines if the action is shown in ParticleView Action Depot window
260 // if the execute is not implemented then it is assumed that the action is
261 // public
263 // defines a category for the action to be placed in the Action Depot
264 // the call is reserved for future use. If the execute is not implemented
265 // then the category is assigned according to the action type (operator or test)
267 // defines if the action is "fertile". It means it is able to generate particles
268 // from nothing. If the execute is not implemented then it is assumed
269 // that the action is not "fertile".
271 // defines if the action is "non-executable". Non-executable action doesn't
272 // affect particle behavior. The action is present in the action schematics
273 // but its presence doesn't change how the particles are shown or rendered.
274 // If the execute is not implemented then it is assumed that the action is
275 // executable.
277 // returns bitmap with icon for the depot window of ParticleView
278 // if the execute is not implemented then a default icon is used
280  };
@ kPF_PViewPublic
Definition: IPFAction.h:262
@ kPF_PViewCategory
Definition: IPFAction.h:266
@ kPF_GetActionDescription
Definition: IPFAction.h:255
@ kPF_PViewDepotIcon
Definition: IPFAction.h:279
@ kPF_IsFertile
Definition: IPFAction.h:270
@ kPF_GetActionName
Definition: IPFAction.h:258
@ kPF_IsNonExecutable
Definition: IPFAction.h:276

Function Documentation

◆ GetPFObject()

PFExport Object* GetPFObject ( Object obj)

◆ PFActionInterface() [1/2]

IPFAction * PFActionInterface ( Object obj)
inline
285  {
286  return ((obj == NULL) ? NULL : GetPFActionInterface(obj));
287 };
#define GetPFActionInterface(obj)
Definition: IPFAction.h:26
#define NULL
Definition: autoptr.h:18

◆ PFActionInterface() [2/2]

IPFAction * PFActionInterface ( INode node)
inline
292  {
293  return ((node == NULL) ? NULL : PFActionInterface(node->GetObjectRef()));
294 };
IPFAction * PFActionInterface(Object *obj)
Definition: IPFAction.h:285
virtual Object * GetObjectRef()=0

◆ IsPFActionActive()

PFExport int IsPFActionActive ( INode actionNode)

An action may be turned ON, OFF, True and False in Particle View.

An operator has two states: ON (1) and OFF (0). A test has three states: ON (1), False (0) and True (-1). The method returns the state of the action.

◆ IsUndefinedPFAction()

PFExport bool IsUndefinedPFAction ( INode actionNode)

A scene can be saved with third-party PFlow operators / tests that are currently unavailable.

In such situation a PFlow operator is shown with "Undefined" icon (question mark) and it does not affect PFlow calculations. The operator / test stub is kept with the scene. A user can delete it but it cannot be copied or moved to different PFlow events.