NAVIÉ
Documentation : Effex : Developer API

### Global Functions

Global Functions

#### Bool InitEffex(void)

This must be called before you do anything with the Effex API. It is enough to call it before you Register your plugins.
See the SDK project's main.cpp provided with the Effex API for an example.
Returns
true if the Effex library has been successfully initialised.

#### void OpenCandidatePopup(std::vector< FXBase* >& items, FXTypeInfos& types, BaseObject* caller, LONG linkfield_id, bool is_inexclude)

This call allows you to support candidate buttons much like Effex does.
Parameters
std::vector< FXBase* >& items:
Should contain the nodes in the scene the user can insert into the corresponding port (link field).
You can use GetNodes to fill the vector container.
FXTypeInfos& items:
Should contain the plugin ids and names of the nodes that are compatible with the corresponding port and that are displayed in the 'Create..' submenu of the Candidate popup.
BaseObject* caller:
The node interface you are calling the Candidate button from
LONG linkfield_id:
The element id of the target link field (so the ID assigned in the .res/.h resource files of your node interface.
bool is_inexclude:
Pass true if the target port is an inexclude list instead of a simple link field.

#### FXBase* GetNode (FXScene* scene, BaseObject* node, NodeRetrieveType type)

Finds any Effex node inside a specific Effex Scene.
Returns
the Effex node if found. Otherwise it returns nullptr.
Parameters
FXScene* scene:
The FXScene to find the node in.
BaseObject* node:
The node interface of the node to be found.
NodeRetrieveType type:
the type of node to search for.

#### void GetNodes(FXScene* scene, InExcludeData* filter, std::vector< FXBase* >& result, NodeRetrieveType type)

Finds several Effex nodes of a certain type inside a specific Effex Scene.
Parameters
FXScene* scene:
The FXScene to find the nodes in.
InExlcudeData* filter:
Pass a list of node interfaces to filter the found nodes.
Passing nullptr will find all nodes of the specified NodeRetrieveType available in the scene.
std::vector< FXBase* >& result :
Filled with the found nodes.
NodeRetrieveType type:
the type of node to search for.

#### void PhysicalToWorld (FXScene* scene, vector3d& physical_position)

Converts a position given in physical space to the Cinema 4D world space.
Parameters
FXScene* scene:
The FXScene where the conversion shall take place (and that defines the physical space of the input position)
vector3d& physical_position:
Pass the physical position which as a result will be in world space after calling the function.

#### void WorldToPhysical (FXScene* scene, vector3d& world_position)

Converts a position given in Cinema 4D world space to the Effex physical space..
Parameters
FXScene* scene:
The FXScene where the conversion shall take place (and that defines the physical space)
vector3d& world_position:
Pass the world position which as a result will be in physical space after calling the function.