mirror of
https://github.com/devZoGok/vb01.git
synced 2026-08-26 19:43:30 +00:00
added missing files
This commit is contained in:
@@ -32,6 +32,7 @@ namespace vb01{
|
|||||||
inline Material* getMaterial(){return material;}
|
inline Material* getMaterial(){return material;}
|
||||||
inline bool isReflective(){return reflective;}
|
inline bool isReflective(){return reflective;}
|
||||||
inline bool isCastShadow(){return castShadow;}
|
inline bool isCastShadow(){return castShadow;}
|
||||||
|
inline MeshData::ShapeKey* getShapeKey(int i){return &shapeKeys[i];}
|
||||||
inline Skeleton* getSkeleton(){return skeleton;}
|
inline Skeleton* getSkeleton(){return skeleton;}
|
||||||
inline Texture* getPrefilterMap(){return prefilterMap;}
|
inline Texture* getPrefilterMap(){return prefilterMap;}
|
||||||
inline Texture* getIrradianceMap(){return irradianceMap;}
|
inline Texture* getIrradianceMap(){return irradianceMap;}
|
||||||
|
|||||||
@@ -120,8 +120,28 @@ namespace vb01{
|
|||||||
clonedDescendants[i]->attachMesh(m);
|
clonedDescendants[i]->attachMesh(m);
|
||||||
}
|
}
|
||||||
|
|
||||||
for(Driver *driver : original->getDrivers()){
|
}
|
||||||
Driver *dr = new Driver(nullptr, driver->getKeyframeChannel(), driver->getType());
|
|
||||||
|
for(int i = 0; i < numDescendants; i++){
|
||||||
|
for(Driver *driver : originalDescendants[i]->getDrivers()){
|
||||||
|
Animatable *animatable = nullptr;
|
||||||
|
|
||||||
|
for(int j = 0; j < numDescendants; j++){
|
||||||
|
if(originalDescendants[j] == driver->getAnimatable()){
|
||||||
|
animatable = clonedDescendants[j];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
for(int k = 0; k < originalDescendants[j]->getNumMeshes(); k++){
|
||||||
|
for(int l = 0; l < originalDescendants[j]->getMesh(k)->getMeshBase().numShapeKeys; l++)
|
||||||
|
if(originalDescendants[j]->getMesh(k)->getShapeKey(l) == driver->getAnimatable()){
|
||||||
|
animatable = clonedDescendants[j]->getMesh(k)->getShapeKey(l);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Driver *dr = new Driver(animatable, driver->getKeyframeChannel(), driver->getType());
|
||||||
clonedDescendants[i]->addDriver(dr);
|
clonedDescendants[i]->addDriver(dr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -51,6 +51,7 @@ namespace vb01{
|
|||||||
inline std::vector<Mesh*>& getMeshes(){return meshes;}
|
inline std::vector<Mesh*>& getMeshes(){return meshes;}
|
||||||
inline std::vector<Skeleton*>& getSkeletons(){return skeletons;}
|
inline std::vector<Skeleton*>& getSkeletons(){return skeletons;}
|
||||||
inline Mesh* getMesh(int i){return meshes[i];}
|
inline Mesh* getMesh(int i){return meshes[i];}
|
||||||
|
inline int getNumMeshes(){return meshes.size();}
|
||||||
inline Node* getParent(){return parent;}
|
inline Node* getParent(){return parent;}
|
||||||
inline void setParent(Node *par){this->parent = par;}
|
inline void setParent(Node *par){this->parent = par;}
|
||||||
inline Node* getChild(int i){return children[i];}
|
inline Node* getChild(int i){return children[i];}
|
||||||
|
|||||||
+10
-10
@@ -83,8 +83,12 @@ namespace vb01{
|
|||||||
KeyframeChannelType channelType = KeyframeChannelType::POS_X;
|
KeyframeChannelType channelType = KeyframeChannelType::POS_X;
|
||||||
string animName = "D";
|
string animName = "D";
|
||||||
KeyframeChannel channel = KeyframeChannel::createKeyframeChannel(channelType, animName, keyframes);
|
KeyframeChannel channel = KeyframeChannel::createKeyframeChannel(channelType, animName, keyframes);
|
||||||
Driver::VariableType driverType = Driver::POS_X;
|
|
||||||
Driver *driver = new Driver(originalD, channel, driverType);
|
int numKeys = 1;
|
||||||
|
Mesh *mesh = new Mesh(MeshData(nullptr, nullptr, 0, "", nullptr, 0, "", new MeshData::ShapeKey[numKeys], numKeys));
|
||||||
|
originalD->attachMesh(mesh);
|
||||||
|
|
||||||
|
Driver *driver = new Driver(mesh->getShapeKey(0), channel, Driver::POS_X);
|
||||||
originalB->addDriver(driver);
|
originalB->addDriver(driver);
|
||||||
|
|
||||||
Node *clonedA = originalA->clone();
|
Node *clonedA = originalA->clone();
|
||||||
@@ -94,21 +98,17 @@ namespace vb01{
|
|||||||
Node *clonedD = nullptr;
|
Node *clonedD = nullptr;
|
||||||
|
|
||||||
for(Node *desc : clonedDescendands){
|
for(Node *desc : clonedDescendands){
|
||||||
if(desc->getName() == "B"){
|
if(desc->getName() == "B")
|
||||||
clonedB = desc;
|
clonedB = desc;
|
||||||
break;
|
else if(desc->getName() == animName)
|
||||||
}
|
|
||||||
else if(desc->getName() == animName){
|
|
||||||
clonedD = desc;
|
clonedD = desc;
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Driver *driverClone = clonedB->getDriver(0);
|
Driver *driverClone = clonedB->getDriver(0);
|
||||||
CPPUNIT_ASSERT(driverClone->getAnimatable() == clonedD);
|
CPPUNIT_ASSERT(driverClone->getAnimatable() == clonedD->getMesh(0)->getShapeKey(0));
|
||||||
CPPUNIT_ASSERT(driverClone->getKeyframeChannel().type == channelType);
|
CPPUNIT_ASSERT(driverClone->getKeyframeChannel().type == channelType);
|
||||||
CPPUNIT_ASSERT(driverClone->getKeyframeChannel().animatable == animName);
|
CPPUNIT_ASSERT(driverClone->getKeyframeChannel().animatable == animName);
|
||||||
CPPUNIT_ASSERT(driverClone->getType() == driverType);
|
CPPUNIT_ASSERT(driverClone->getType() == Driver::POS_X);
|
||||||
}
|
}
|
||||||
|
|
||||||
void NodeTest::testClonedSkeletons(){
|
void NodeTest::testClonedSkeletons(){
|
||||||
|
|||||||
Reference in New Issue
Block a user