[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [47865] branches/soc-2012-bratwurst/source /blender/collada: export constraint to COLLADA edit.

Sukhitha Jayathilake pr.jayathilake at gmail.com
Thu Jun 14 05:43:27 CEST 2012


Revision: 47865
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=47865
Author:   phabtar
Date:     2012-06-14 03:43:11 +0000 (Thu, 14 Jun 2012)
Log Message:
-----------
export constraint to COLLADA edit.

Modified Paths:
--------------
    branches/soc-2012-bratwurst/source/blender/collada/DocumentImporter.cpp
    branches/soc-2012-bratwurst/source/blender/collada/DocumentImporter.h
    branches/soc-2012-bratwurst/source/blender/collada/ExtraHandler.cpp
    branches/soc-2012-bratwurst/source/blender/collada/SceneExporter.cpp

Modified: branches/soc-2012-bratwurst/source/blender/collada/DocumentImporter.cpp
===================================================================
--- branches/soc-2012-bratwurst/source/blender/collada/DocumentImporter.cpp	2012-06-14 03:11:36 UTC (rev 47864)
+++ branches/soc-2012-bratwurst/source/blender/collada/DocumentImporter.cpp	2012-06-14 03:43:11 UTC (rev 47865)
@@ -396,13 +396,19 @@
 	return obn;
 }
 
+void DocumentImporter::create_constraints(ExtraTags *et){}
+
 void DocumentImporter::write_node (COLLADAFW::Node *node, COLLADAFW::Node *parent_node, Scene *sce, Object *par, bool is_library_node)
 {
 	Object *ob = NULL;
 	bool is_joint = node->getType() == COLLADAFW::Node::JOINT;
 	bool read_transform = true;
 
+	ExtraTags *et = getExtraTags(node->getUniqueId());
+
 	std::vector<Object*> * objects_done = new std::vector<Object *>();
+    
+	create_constraints(et);
 
 	if (is_joint) {
 		if ( par ) {
@@ -941,11 +947,12 @@
 	Lamp *lamp = NULL;
 	std::string la_id, la_name;
 
-	TagsMap::iterator etit;
+	ExtraTags *et = getExtraTags(light->getUniqueId());
+	/*TagsMap::iterator etit;
 	ExtraTags *et = 0;
 	etit = uid_tags_map.find(light->getUniqueId().toAscii());
 	if (etit != uid_tags_map.end())
-		et = etit->second;
+		et = etit->second;*/
 
 	la_id = light->getOriginalId();
 	la_name = light->getName();

Modified: branches/soc-2012-bratwurst/source/blender/collada/DocumentImporter.h
===================================================================
--- branches/soc-2012-bratwurst/source/blender/collada/DocumentImporter.h	2012-06-14 03:11:36 UTC (rev 47864)
+++ branches/soc-2012-bratwurst/source/blender/collada/DocumentImporter.h	2012-06-14 03:43:11 UTC (rev 47865)
@@ -73,9 +73,11 @@
 	Object* create_camera_object(COLLADAFW::InstanceCamera*, Scene*);
 	Object* create_lamp_object(COLLADAFW::InstanceLight*, Scene*);
 	Object* create_instance_node(Object*, COLLADAFW::Node*, COLLADAFW::Node*, Scene*, bool);
+	void create_constraints(ExtraTags *et);
 	void write_node(COLLADAFW::Node*, COLLADAFW::Node*, Scene*, Object*, bool);
 	MTex* create_texture(COLLADAFW::EffectCommon*, COLLADAFW::Texture&, Material*, int, TexIndexTextureArrayMap&);
 	void write_profile_COMMON(COLLADAFW::EffectCommon*, Material*);
+	
 	void translate_anim_recursive(COLLADAFW::Node*, COLLADAFW::Node*, Object*);
 
 	/** This method will be called if an error in the loading process occurred and the loader cannot
@@ -127,6 +129,8 @@
 	/** Get an extisting ExtraTags for uid */
 	ExtraTags* getExtraTags(const COLLADAFW::UniqueId &uid);
 
+
+
 private:
 
 	/** Current import stage we're in. */

Modified: branches/soc-2012-bratwurst/source/blender/collada/ExtraHandler.cpp
===================================================================
--- branches/soc-2012-bratwurst/source/blender/collada/ExtraHandler.cpp	2012-06-14 03:11:36 UTC (rev 47864)
+++ branches/soc-2012-bratwurst/source/blender/collada/ExtraHandler.cpp	2012-06-14 03:43:11 UTC (rev 47865)
@@ -64,7 +64,8 @@
 bool ExtraHandler::parseElement ( 
 	const char* profileName, 
 	const unsigned long& elementHash, 
-	const COLLADAFW::UniqueId& uniqueId ) {
+	const COLLADAFW::UniqueId& uniqueId ) 
+{
 		if (BLI_strcaseeq(profileName, "blender")) {
 			//printf("In parseElement for supported profile %s for id %s\n", profileName, uniqueId.toAscii().c_str());
 			currentUid = uniqueId;

Modified: branches/soc-2012-bratwurst/source/blender/collada/SceneExporter.cpp
===================================================================
--- branches/soc-2012-bratwurst/source/blender/collada/SceneExporter.cpp	2012-06-14 03:11:36 UTC (rev 47864)
+++ branches/soc-2012-bratwurst/source/blender/collada/SceneExporter.cpp	2012-06-14 03:43:11 UTC (rev 47865)
@@ -203,8 +203,19 @@
 	if (ob->constraints.first != NULL ){
 		bConstraint *con = (bConstraint*) ob->constraints.first;
 		while(con){
-			node.addExtraTechniqueParameter("blender","constraintType",con->type);
-			node.addExtraTechniqueParameter("blender","constraintName",con->name);
+			std::string con_name(id_name(con));
+			std::string con_tag = con_name + "_constraint";
+			node.addExtraTechniqueChildParameter("blender",con_tag,"type",con->type);
+			node.addExtraTechniqueChildParameter("blender",con_tag,"enforce",con->enforce);
+			node.addExtraTechniqueChildParameter("blender",con_tag,"flag",con->flag);
+			node.addExtraTechniqueChildParameter("blender",con_tag,"headtail",con->headtail);
+			node.addExtraTechniqueChildParameter("blender",con_tag,"lin_error",con->lin_error);
+			/*node.addExtraTechniqueParameter("blender","lin_error",con->next);*/
+			node.addExtraTechniqueChildParameter("blender",con_tag,"own_space",con->ownspace);
+			node.addExtraTechniqueChildParameter("blender",con_tag,"rot_error",con->rot_error);
+			node.addExtraTechniqueChildParameter("blender",con_tag,"tar_space",con->tarspace);
+			node.addExtraTechniqueChildParameter("blender",con_tag,"lin_error",con->lin_error);
+
 			con = con->next;
 		}
 	}




More information about the Bf-blender-cvs mailing list