HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DOP_FullPathData.h File Reference
#include "DOP_API.h"
#include <UT/UT_Array.h>
#include <UT/UT_String.h>
#include <OP/OP_Node.h>
#include <GU/GU_DetailHandle.h>
#include <SIM/SIM_FullPathData.h>
#include "DOP_Engine.h"
+ Include dependency graph for DOP_FullPathData.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  DOP_FullPathData
 
class  DOP_FullPathDataArray
 

Functions

DOP_API bool DOPfindDataFromPath (const char *path, DOP_FullPathData &fulldata, fpreal time, OP_Node *relativetonode=0, bool dopparentisenough=false)
 
DOP_API bool DOPfindDataFromPath (const char *path, DOP_FullPathData &fulldata, const SIM_Engine &engine, const SIM_Time &sim_time, bool interpolate_data)
 
DOP_API bool DOPfindAllDataFromPath (const char *path, DOP_FullPathDataArray &fulldata, fpreal time, OP_Node *relativetonode=0, bool dopparentisenough=false)
 
DOP_API bool DOPfindAllDataFromPath (const char *path, DOP_FullPathDataArray &fulldata, const SIM_Engine &engine, const SIM_Time &sim_time, bool interpolate_data)
 
DOP_API void DOPglobPathAndFindAllData (const char *path, DOP_FullPathDataArray &fulldata, OP_NodeList &nodatadopnets, fpreal time, OP_Node *relativetonode=0, OP_GlobContext *context=0, OP_Node *errorsink=0)
 
DOP_API SIM_Time DOPsetBestTime (DOP_Parent *dopparent, SIM_Time time)
 
DOP_API OP_Node * DOPgetNodeFromDataPath (const char *path, fpreal time, OP_Node *relativetonode=0, bool dopparentisenough=false)
 Thread-safe method to find the owner node of a DOP data path. More...
 
DOP_API bool DOPgetWorldTransformFromDataPath (UT_DMatrix4 &xform, GU_ConstDetailHandle *gdh, bool &timedep, const char *path, OP_Context &context, OP_Node *relativetonode=0, bool dopparentisenough=false, OP_Node *interested_node=0)
 

Function Documentation

DOP_API bool DOPfindAllDataFromPath ( const char *  path,
DOP_FullPathDataArray &  fulldata,
fpreal  time,
OP_Node *  relativetonode = 0,
bool  dopparentisenough = false 
)
DOP_API bool DOPfindAllDataFromPath ( const char *  path,
DOP_FullPathDataArray &  fulldata,
const SIM_Engine &  engine,
const SIM_Time &  sim_time,
bool  interpolate_data 
)

Version of DOPfindAllDataFromPath() that uses the provided SIM_Engine instead of searching for a DOP node at the beginning of the path.

DOP_API bool DOPfindDataFromPath ( const char *  path,
DOP_FullPathData &  fulldata,
fpreal  time,
OP_Node *  relativetonode = 0,
bool  dopparentisenough = false 
)
DOP_API bool DOPfindDataFromPath ( const char *  path,
DOP_FullPathData &  fulldata,
const SIM_Engine &  engine,
const SIM_Time &  sim_time,
bool  interpolate_data 
)

Version of DOPfindDataFromPath() that uses the provided SIM_Engine instead of searching for a DOP node at the beginning of the path.

DOP_API OP_Node* DOPgetNodeFromDataPath ( const char *  path,
fpreal  time,
OP_Node *  relativetonode = 0,
bool  dopparentisenough = false 
)

Thread-safe method to find the owner node of a DOP data path.

The following functions are the only ones which are thread-safe for accessing DOP data

DOP_API bool DOPgetWorldTransformFromDataPath ( UT_DMatrix4 &  xform,
GU_ConstDetailHandle *  gdh,
bool &  timedep,
const char *  path,
OP_Context &  context,
OP_Node *  relativetonode = 0,
bool  dopparentisenough = false,
OP_Node *  interested_node = 0 
)

Thread-safe method to world transform of the a DOP data path, optionally returning the geometry if there is any (and gdh is non-NULL). If given an interested_node, then we will add an extra input on it to the path.

DOP_API void DOPglobPathAndFindAllData ( const char *  path,
DOP_FullPathDataArray &  fulldata,
OP_NodeList &  nodatadopnets,
fpreal  time,
OP_Node *  relativetonode = 0,
OP_GlobContext *  context = 0,
OP_Node *  errorsink = 0 
)
DOP_API SIM_Time DOPsetBestTime ( DOP_Parent *  dopparent,
SIM_Time  time 
)

If the dopparent is currently simulating it is not possible to reset its time. Similarly, if the desired time is within the last timestep, we can't interpolate since the actual 'current' value of the object is stored at the end time. Returned from this is the new time to use for accesses. In case of unsimulated networks, it is the same as dopparent->setDOPTime(time); return time;