Пример #1
0
bool NAMESPACE_TUPLE::Triple::Equals(const ITuple& rhs) const
{
    return rhs.GetNumAttributes() == GetNumAttributes() &&
        rhs.GetIdentifier() == GetIdentifier() &&
        rhs.GetAttribute(0) == GetAttribute(0) &&
        rhs.GetValue(0) == GetValue(0);
}
Пример #2
0
bool NAMESPACE_TUPLE::Triple::SetValue(long value, long attrIndex)
{
    if (attrIndex > 0 && attrIndex < GetNumAttributes())
    {
        m_value = value;
        return true;
    }
    return false;
}
Пример #3
0
bool NAMESPACE_TUPLE::Triple::SetAttr(long attr, long attrIndex)
{
    if (attrIndex > 0 && attrIndex < GetNumAttributes())
    {
        m_attribute = attr;
        return true;
    }
    return false;
}
Пример #4
0
Node* Node::CloneRecursive(Node* parent, SceneResolver& resolver, CreateMode mode)
{
    // Create clone node
    Node* cloneNode = parent->CreateChild(0, (mode == REPLICATED && id_ < FIRST_LOCAL_ID) ? REPLICATED : LOCAL);
    resolver.AddNode(id_, cloneNode);
    
    // Copy attributes
    unsigned numAttributes = GetNumAttributes();
    for (unsigned j = 0; j < numAttributes; ++j)
        cloneNode->SetAttribute(j, GetAttribute(j));
    
    // Clone components
    for (Vector<SharedPtr<Component> >::ConstIterator i = components_.Begin(); i != components_.End(); ++i)
    {
        Component* component = *i;
        Component* cloneComponent = cloneNode->CreateComponent(component->GetType(), (mode == REPLICATED && component->GetID() <
            FIRST_LOCAL_ID) ? REPLICATED : LOCAL);
        if (!cloneComponent)
        {
            LOGERROR("Could not clone component " + component->GetTypeName());
            continue;
        }
        resolver.AddComponent(component->GetID(), cloneComponent);
        
        numAttributes = component->GetNumAttributes();
        for (unsigned j = 0; j < numAttributes; ++j)
            cloneComponent->SetAttribute(j, component->GetAttribute(j));
    }
    
    // Clone child nodes recursively
    for (Vector<SharedPtr<Node> >::ConstIterator i = children_.Begin(); i != children_.End(); ++i)
    {
        Node* node = *i;
        node->CloneRecursive(cloneNode, resolver, mode);
    }
    
    return cloneNode;
}