Esempio n. 1
0
void Port::acquireOutputBuffer (BufferProvider &provider, nframes_t len)
{
  int numConnections = dependents().count();
  if (numConnections == 1) {
    // Use the other port's buffer
    Port *other = static_cast<Port *>( *(dependents().begin()) );
    m_buffer = other->buffer();
  }
  else if (numConnections == 2) {
    qFatal("Internal mixing is not yet supported");
  }

  if (!m_buffer) {
    m_buffer = provider.acquire(type(), len);
  }
}
Esempio n. 2
0
/******************************************************************************
* Returns the container to which this dataset belongs.
******************************************************************************/
DataSetContainer* DataSet::container() const
{
    for(RefMaker* refmaker : dependents()) {
        if(DataSetContainer* c = dynamic_object_cast<DataSetContainer>(refmaker)) {
            return c;
        }
    }
    OVITO_ASSERT_MSG(false, "DataSet::container()", "DataSet is not in a DataSetContainer.");
    return nullptr;
}
Esempio n. 3
0
  bool CachedResults<T>::GetCachedResult1Dep(T& retResult, const TaggedObject* dependent1)
  {
#ifdef IP_DEBUG_CACHE
    DBG_START_METH("CachedResults<T>::GetCachedResult1Dep", dbg_verbosity);
#endif

    std::vector<const TaggedObject*> dependents(1);
    dependents[0] = dependent1;

    return GetCachedResult(retResult, dependents);
  }
Esempio n. 4
0
  void CachedResults<T>::AddCachedResult2Dep(const T& result, const TaggedObject* dependent1,
      const TaggedObject* dependent2)

  {
#ifdef IP_DEBUG_CACHE
    DBG_START_METH("CachedResults<T>::AddCachedResult2dDep", dbg_verbosity);
#endif

    std::vector<const TaggedObject*> dependents(2);
    dependents[0] = dependent1;
    dependents[1] = dependent2;

    AddCachedResult(result, dependents);
  }