- fbx: attach node attachments to their nodes.
parent
b66dfc85e1
commit
cab713b4c5
|
@ -149,8 +149,8 @@ protected:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/** DOM class for generic FBX NoteAttribute blocks. NoteAttributes just hold a property table,
|
/** DOM class for generic FBX NoteAttribute blocks. NoteAttribute's just hold a property table,
|
||||||
* actualy members are added by deriving classes. */
|
* fixed members are added by deriving classes. */
|
||||||
class NodeAttribute : public Object
|
class NodeAttribute : public Object
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
@ -236,6 +236,12 @@ public:
|
||||||
return geometry;
|
return geometry;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/** Get node attachments */
|
||||||
|
const std::vector<const NodeAttribute*>& GetAttributes() const {
|
||||||
|
return attributes;
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
void ResolveLinks(const Element& element, const Document& doc);
|
void ResolveLinks(const Element& element, const Document& doc);
|
||||||
|
@ -244,6 +250,7 @@ private:
|
||||||
|
|
||||||
std::vector<const Material*> materials;
|
std::vector<const Material*> materials;
|
||||||
std::vector<const Geometry*> geometry;
|
std::vector<const Geometry*> geometry;
|
||||||
|
std::vector<const NodeAttribute*> attributes;
|
||||||
|
|
||||||
std::string shading;
|
std::string shading;
|
||||||
std::string culling;
|
std::string culling;
|
||||||
|
|
|
@ -89,7 +89,7 @@ Model::~Model()
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
void Model::ResolveLinks(const Element& element, const Document& doc)
|
void Model::ResolveLinks(const Element& element, const Document& doc)
|
||||||
{
|
{
|
||||||
const char* const arr[] = {"Geometry","Material"};
|
const char* const arr[] = {"Geometry","Material","NodeAttribute"};
|
||||||
|
|
||||||
// resolve material
|
// resolve material
|
||||||
const std::vector<const Connection*>& conns = doc.GetConnectionsByDestinationSequenced(ID(),arr, 2);
|
const std::vector<const Connection*>& conns = doc.GetConnectionsByDestinationSequenced(ID(),arr, 2);
|
||||||
|
@ -121,6 +121,11 @@ void Model::ResolveLinks(const Element& element, const Document& doc)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const NodeAttribute* const att = dynamic_cast<const NodeAttribute*>(ob);
|
||||||
|
if(att) {
|
||||||
|
attributes.push_back(att);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
DOMWarning("source object for model link is neither Material or Geometry, ignoring",&element);
|
DOMWarning("source object for model link is neither Material or Geometry, ignoring",&element);
|
||||||
continue;
|
continue;
|
||||||
|
|
Loading…
Reference in New Issue