Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathan Letwory <nathan@letworyinteractive.com>2010-10-10 01:17:14 +0400
committerNathan Letwory <nathan@letworyinteractive.com>2010-10-10 01:17:14 +0400
commitf72eef5de7fd109e9d71021adc0990b040b750b2 (patch)
tree25cbfd24782559266af455985f101d23d8295694 /source/blender/collada/collada_internal.cpp
parent6b8ca3ccdf7643002237fc59ef42ee1046ce2a70 (diff)
COLLADA
Import unit_settings to scene. Note: I use here RNA to do this, and I think I might slowly work on replacing low-level DNA usage with RNA where possible.
Diffstat (limited to 'source/blender/collada/collada_internal.cpp')
-rw-r--r--source/blender/collada/collada_internal.cpp32
1 files changed, 29 insertions, 3 deletions
diff --git a/source/blender/collada/collada_internal.cpp b/source/blender/collada/collada_internal.cpp
index 67ee4818f7e..6f401c1856f 100644
--- a/source/blender/collada/collada_internal.cpp
+++ b/source/blender/collada/collada_internal.cpp
@@ -28,12 +28,38 @@ UnitConverter::UnitConverter() : unit(), up_axis(COLLADAFW::FileInfo::Z_UP) {}
void UnitConverter::read_asset(const COLLADAFW::FileInfo* asset)
{
+ unit = asset->getUnit();
+ up_axis = asset->getUpAxisType();
}
-// TODO
-// convert vector vec from COLLADA format to Blender
-void UnitConverter::convertVec3(float *vec)
+UnitConverter::UnitSystem UnitConverter::isMetricSystem()
{
+ switch(unit.getLinearUnitUnit()) {
+ case COLLADAFW::FileInfo::Unit::MILLIMETER:
+ case COLLADAFW::FileInfo::Unit::CENTIMETER:
+ case COLLADAFW::FileInfo::Unit::DECIMETER:
+ case COLLADAFW::FileInfo::Unit::METER:
+ case COLLADAFW::FileInfo::Unit::KILOMETER:
+ return UnitConverter::Metric;
+ case COLLADAFW::FileInfo::Unit::INCH:
+ case COLLADAFW::FileInfo::Unit::FOOT:
+ case COLLADAFW::FileInfo::Unit::YARD:
+ return UnitConverter::Imperial;
+ default:
+ return UnitConverter::None;
+ }
+}
+
+float UnitConverter::getLinearMeter()
+{
+ return (float)unit.getLinearUnitMeter();
+}
+
+void UnitConverter::convertVector3(COLLADABU::Math::Vector3 &vec, float *v)
+{
+ v[0] = vec.x;
+ v[1] = vec.y;
+ v[2] = vec.z;
}
// TODO need also for angle conversion, time conversion...