Obj Loader animations?

Hi,

I am currently working on getting this .obj loader to work in OF:
http://www.dhpoware.com/demos/glObjViewer.html

The Geometry works allready but I am currently working on getting the materials and textures to work.

I have a few general questions though since I have never really worked with 3D animation or models.

If I would like to import an animation for a model, would I simply load one .obj file for each frame of the animation?

Hey Moka,

That looks like a nice find - I was looking for a obj loader that supported textures and didn’t have any luck so I hooked up someone’s 3ds loader instead, maybe its is useful? Currently works for 005 codeblocks - but should be easy to hookup for xcode

http://www.yesyesno.com/3dsExample.zip

I was thinking of making it into a ofx3dModelLoader addon which can load different file formats - so if your obj loader works it could provide the obj functionality for the addon.

Cheers,
Theo

Hi Moka,

No unfortunately it’s not as simple as that…animation can be metadata of the file format or it needs to be loaded in separately. See the open source library Cal3D http://home.gna.org/cal3d/ or the Collada http://www.collada.org format for more examples…

arg…just saw that .obj does not support animation at all :frowning:

I will check out cal3D next since I need animation.

I think the 3ds loader supports animations - only because the developer told me that there was an occasional small bug with complex animations.

Theo

ok thanks theo, I will check that out.

I read quite alot today and got the impression that .3ds is not a good format though. It will propably be good enough for our purposes though. I might try to hook up something for milkshape3D files anyways since they seem to be a good starting point for skeletal animation even though the format is pretty old.

try FBX, it supports a helluva lot and is pretty standard

http://download.autodesk.com/us/fbx/FBX-SDK-Help/files/

http://images.autodesk.com/adsk/files/f-…-erview.pdf

http://usa.autodesk.com/adsk/servlet/in-…-id=6839916

I’ve got these all bookmarked cos they’re on my todo list :stuck_out_tongue:

I will check that out memo. what is helluva?

Does anybody have a sample animated .3ds file, I would like to test it with theos class.

hey moka, sorry that was ‘hell of a’ :stuck_out_tongue:

FBX is a very complete and well supported format… i haven’t looked too deep into the SDK but it may be a bit too extensive, though if eventually wrapped up would be amazing cos it would allow importing (and exporting!) whole scenes with meshes, cameras, lights, materials, animations etc. (P.S. I’m gonna need a mesh exporter for oF soon, which is why I was looking into it).

turbosquid usually has a lot of free models, and you can find the odd animation too

http://www.turbosquid.com/Search/Index.-…-Type-1=114
(this is a search for 3d models of filetype ‘3ds’ with maxprice ‘0’ and have the ‘animated’ tag)

the free stuff is rarely good quality, but for very cheap you can get very good stuff

Thanks for the link. I just downloaded the sdk, Looks pretty powerful to me but might be an overkill.

I just downloaded Fcollada Framework and first compile didn’t throw any errors. I will try to implement it into an OF App.

If you want to look at practical use of Collada, the Horde3D engine has a Collada importer that then converts to its own binary format. Blender also has Collada importer/exporters. Both of these projects are open source so you can check out their code.

The reverse is also interesting…just came across this:
http://www.infostuka.org/opensource/col-…-processing
Maybe we could have something like this for OF? Export geometry to a 3D modeller for extra zing and ray traced lighting…

That would be a good thing. I will try to get Fcollada to work since i think it has that functionality. I didn’t look into it in detail though.

I just added FCollada to a OF Test file but I don’t really know how to do that in a good manner in Xcode.

What I did is simply adding it relative to the project. But if I do so all the includes inside of FCollada are wrong since they are dependent on the folder Structure.

e.g:
#include “FMath/FMath.h”

is there a way to make xCode still find the files without removing all the paths by hand? maybe someone else who has more experience with xCode and c++ could try setting up an xCode Project?

Thank youu!

hey moka - check out how we are doing the poco include in 00573 - it has a similar structure where it has includes split across folders.

Basically the trick is to add only the parent folders location to your include search paths. Then the relative include path will make sense to the compiler as it will look one folder deeper.

Theo

I am sorry for asking this, but where do I change that? I looked in the general preferences for the folder but could not really find what you mean :frowning:

no problem:

go to project->edit project settings->build

scroll down to header search paths
you will see:
…/…/…/libs/poco/include

do the same for the FCollada path - make sure you don’t check the recursive button

Cheers!
Theo

Okay, works now, thanks Theo. I get 12 errors in the FCollada Vector class though:

  
/*  
	Copyright (C) 2005-2007 Feeling Software Inc.  
	Portions of the code are:  
	Copyright (C) 2005-2007 Sony Computer Entertainment America  
	  
	MIT License: [http://www.opensource.org/licenses/mit-license.php](http://www.opensource.org/licenses/mit-license.php)  
*/  
  
/**  
	@file FMVector3.h The file containing the class and global functions for 3 dimensional vectors.  
*/  
  
#ifndef _FM_VECTOR3_H_  
#define _FM_VECTOR3_H_  
  
class FMVector4;  
  
/**  
	A 3 dimensional vector.  
  
	Simple, non-optimized vector class: * is the dot-product, ^ is the   
	cross-product.  
	  
	@ingroup FMath  
*/  
class FCOLLADA_EXPORT  
ALIGN_STRUCT(16)  
FMVector3  
{  
public:  
	float x;	/**< The first coordinate. */  
	float y;	/**< The second coordinate. */  
	float z;	/**< The third coordinate. */  
private:  
	float w;	// For alignment purposes.  
  
public:  
	/**  
	 * Creates an empty FMVector3.  
	 */  
	#ifndef _DEBUG  
	inline FMVector3() {}  
	#else  
	inline FMVector3() { x = 123456789.0f; y = 123456789.0f; z = 123456789.0f; }  
	#endif   
  
	/** Creates the FMVector3 with the coordinates given.  
		@param _x The first coordinate.  
		@param _y The second coordinate.  
		@param _z The third coordinate. */  
	inline FMVector3(float _x, float _y, float _z) { x = _x; y = _y; z = _z; }  
  
	/** Copy constuctor.   
		@param rhs A second 3D vector. */  
	inline FMVector3(const FMVector3& rhs) { x = rhs.x; y = rhs.y; z = rhs.z; }  
  
	/** Constructor.  
		Reduces the 4D vector into 3D by removing the 4th dimension.  
		@param vect4 A 4D vector. */  
	FMVector3(const FMVector4& vect4);  
  
	/** Creates the FMVector3 from a list of floating-point values.  
		It takes the first three floating-point starting from and including \a startIndex  
		(0 indexing) in the array as the 3 coordinates. The first as the first   
		coordinate, the second as the second, and the third as the third.  
		@param source The floating-point value array.  
		@param startIndex The index of the first element. */  
	FMVector3(const float* source, uint32 startIndex = 0);  
	FMVector3(const double* source, uint32 startIndex = 0);	/**< See above. */  
  
	/**	Retrieves the squared length of the vector.  
		@return The squared length of this vector. */  
	inline float LengthSquared() const { return x * x + y * y + z * z; }  
  
	/**	Retrieves the length of the vector.  
		@return The length of this vector. */  
	inline float Length() const { return sqrtf(x * x + y * y + z * z); }  
  
	/** Normalizes this vector. */  
	inline void NormalizeIt() { float l = Length(); if (l > 0.0f) { x /= l; y /= l; z /= l; } else { x = y = 0; z = 1; }}  
  
	/** Get a normalized FMVector3 with the same direction as this vector.  
		@return A FMVector3 with length 1 and same direction as this vector. */  
	inline FMVector3 Normalize() const { float l = Length(); return (l > 0.0f) ? FMVector3(x / l, y / l, z / l) : FMVector3::XAxis; }  
  
	/** Project this FMVector3 onto another FMVector3.  
		@param unto The FMVector3 to project onto. */  
	inline void Project(const FMVector3& unto) { (*this) = Projected(unto); }  
  
	/** Get the projection of this FMVector3 onto another FMVector3.  
		@param unto The FMVector3 to project onto.  
		@return The projected FMVector3. */  
	inline FMVector3 Projected(const FMVector3& unto) const;  
  
	/** Get this FMVector3 as an array of \c floats.  
		@return The \c float array. */  
	inline operator float*() { return &x; }  
  
    /** Get this FMVector3 as an array of \c floats.  
		@return The \c float array. */  
	inline operator const float*() const { return &x; }  
  
	/** Set the values of this vector  
		@param x The new X value  
		@param y The new Y value  
		@param z The new Z value */  
	inline void Set(float x, float y, float z) { this->x = x; this->y = y, this->z = z; }  
  
	/** Assign this FMVector3 to the given float array.  
		Assigns each coordinate of this FMVector3 to the elements in the \c  
		float array. The first element to the first coordinate, the second to  
		the second, and the third to the third. It returns this FMVector3.  
		@param v The \c float array to assign with.  
		@return This vector. */  
	inline FMVector3& operator =(const float* v) { x = *v; y = *(v + 1); z = *(v + 2); return *this; }  
  
	/** Assigns the FMVector3 passed to outselves.  
		Copies XYZ from the passed vector  
		@param rhs The vector copy off */  
	inline FMVector3& operator =(const FMVector3& rhs) { x=rhs.x; y=rhs.y; z=rhs.z; return *this; }  
  
	/** Update each component of this FMVector to the minimum of two FMVector3s.  
		Updates each of the three components to be the minimum of the current  
		value and that of the corresponding value of the given FMVector3.  
		@param min The FMVector to take values from. */  
	inline void ComponentMinimum(const FMVector3& min) { if (x < min.x) x = min.x; if (y < min.y) y = min.y; if (z < min.z) z = min.z; }  
  
	/** Retrieves the smallest component of the vector.  
		@return The smallest component of the vector. */  
	inline float ComponentMinimum() const { return min(fabsf(x), min(fabsf(y), fabsf(z))); }  
  
	/** Update each component of this FMVector to the maximum of two FMVector3s.  
		Updates each of the three components to be the maximum of the current  
		value and that of the corresponding value of the given FMVector3.  
		@param max The FMVector to take values from. */  
	inline void ComponentMaximum(const FMVector3& max) { if (x > max.x) x = max.x; if (y > max.y) y = max.y; if (z > max.z) z = max.z; }  
  
	/** Retrieves the largest component of the vector.  
		@return The largest component of the vector. */  
	inline float ComponentMaximum() const { return max(fabsf(x), max(fabsf(y), fabsf(z))); }  
  
	/** Clamp each component of this FMVector by the corresponding components  
		in the specified min and max FMVector3.  
		Clamp refers to setting a value within a given range. If the value is  
		lower than the minimum of the range, it is set to the minimum; same for  
		the maximum.  
		@param min The FMVector to take the minimum values from.  
		@param max The FMVector to take the maximum values from. */  
	inline void ComponentClamp(const FMVector3& min, const FMVector3& max) { ComponentMinimum(min); ComponentMaximum(max); }  
  
	/** Retrieves the average of the three vector components.  
		@return The component average. */  
	inline float ComponentAverage() const { return (fabsf(x) + fabsf(y) + fabsf(z)) / 3.0f; }  
  
public:  
	static const FMVector3 XAxis; /**< The FMVector3 representing the x axis */  
	static const FMVector3 YAxis; /**< The FMVector3 representing the y axis */  
	static const FMVector3 ZAxis; /**< The FMVector3 representing the z axis */  
	static const FMVector3 Origin;/**< The FMVector3 representing the origin */  
	static const FMVector3 Zero;  /**< The FMVector3 containing all zeroes: (0,0,0). */  
	static const FMVector3 One;	  /**< The FMVector3 containing all ones: (1,1,1). */  
};  
  
/** Vector addition with two FMVector3.  
	@param a The first vector.  
	@param b The second vector.  
	@return The FMVector3 representation of the resulting vector. */  
inline FMVector3 operator +(const FMVector3& a, const FMVector3& b) { return FMVector3(a.x + b.x, a.y + b.y, a.z + b.z); }  
  
/** Vector subtraction with two FMVector3.  
	@param a The first vector.  
	@param b The second vector.  
	@return The FMVector3 representation of the resulting vector. */  
inline FMVector3 operator -(const FMVector3& a, const FMVector3& b) { return FMVector3(a.x - b.x, a.y - b.y, a.z - b.z); }  
  
/** Positive operator of the given FMVector3.  
	It applies the positive operator to each of the components of the FMVector3.  
	@param a The vector to apply the positive operator to.  
	@return The FMVector3 representation of the resulting vector. */  
inline FMVector3 operator +(const FMVector3& a) { return FMVector3(+a.x, +a.y, +a.z); }  
  
/** Negates the given FMVector3.  
	It negates each of the components of the FMVector3.  
	@param a The vector to negate.  
	@return The FMVector3 representation of the resulting vector. */  
inline FMVector3 operator -(const FMVector3& a) { return FMVector3(-a.x, -a.y, -a.z); }  
  
/** Dot product of two FMVector3.  
	@param a The first vector.  
	@param b The second vector.  
	@return The result of the dot product. */  
inline float operator *(const FMVector3& a, const FMVector3& b) { return a.x * b.x + a.y * b.y + a.z * b.z; }  
  
/** Scalar multiplication with a FMVector3.  
	@param a The vector.  
	@param b The scalar.  
	@return The FMVector3 representing the resulting vector. */  
inline FMVector3 operator *(const FMVector3& a, float b) { return FMVector3(a.x * b, a.y * b, a.z * b); }  
  
/** Scalar multiplication with a FMVector3.  
	@param a The scalar.  
	@param b The vector.  
	@return The FMVector3 representing the resulting vector. */  
inline FMVector3 operator *(float a, const FMVector3& b) { return FMVector3(a * b.x, a * b.y, a * b.z); }  
  
/** Scalar division with a FMVector3.  
	@param a The vector.  
	@param b The scalar.  
	@return The FMVector3 representing the resulting vector. */  
inline FMVector3 operator /(const FMVector3& a, float b) { return FMVector3(a.x / b, a.y / b, a.z / b); }  
  
/** Cross product of two FMVector3.  
	@param a The first vector.  
	@param b The second vector.  
	@return The result of the dot product. */  
inline FMVector3 operator ^(const FMVector3& a, const FMVector3& b) { return FMVector3(a.y * b.z - a.z * b.y, a.z * b.x - a.x * b.z, a.x * b.y - a.y * b.x); }  
  
/** Assignment of the addition of two FMVector3.  
	@param b The first vector, which will also be assigned to the result.  
	@param a The second vector.  
	@return The first vector, after it has been assigned new values. */  
inline FMVector3& operator +=(FMVector3& b, const FMVector3& a) { b.x += a.x; b.y += a.y; b.z += a.z; return b; }  
  
/**	Assignment of the subtraction of two FMVector3.  
	@param b The first vector, which will also be assigned to the result.  
	@param a The second vector.  
	@return The first vector, after it has been assigned new values. */  
inline FMVector3& operator -=(FMVector3& b, const FMVector3& a) { b.x -= a.x; b.y -= a.y; b.z -= a.z; return b; }  
  
/** Assignment of the scalar multiplication of a FMVector3.  
	@param b The vector, which will also be assigned to the result.  
	@param a The scalar.  
	@return The vector, after it has been assigned new values. */  
inline FMVector3& operator *=(FMVector3& b, float a) { b.x *= a; b.y *= a; b.z *= a; return b; }  
  
/** Assignment of the scalar division of a FMVector3.  
	@param b The vector, which will also be assigned to the result.  
	@param a The scalar.  
	@return The vector, after it has been assigned new values. */  
inline FMVector3& operator /=(FMVector3& b, float a) { b.x /= a; b.y /= a; b.z /= a; return b; }  
  
/** Returns whether two 3D vectors or points are equivalent.  
	@param p A first vector.  
	@param q A second vector.  
	@return Whether the vectors are equivalent. */  
inline bool IsEquivalent(const FMVector3& p, const FMVector3& q) { return IsEquivalent(p.x, q.x) && IsEquivalent(p.y, q.y) && IsEquivalent(p.z, q.z); }  
inline bool operator == (const FMVector3& p, const FMVector3& q) { return IsEquivalent(p, q); } /**< See above. */  
  
// Already documented above.  
inline FMVector3 FMVector3::Projected(const FMVector3& unto) const { return ((*this) * unto) / unto.LengthSquared() * unto; }  
  
/** A dynamically-sized array of 3D vectors or points. */  
typedef fm::vector<FMVector3> FMVector3List;  
  
#endif // _FM_VECTOR3_H_  
  

What it tells me is that all the max and min functions in there are ambigious. I guess it has something about them being nested.

EDIT: Okay, I fixed it. I just replaced all “max” and “min” with “MAX” and “MIN”. What is the difference though?

EDIT2: I just realized that they simply had their own max/min functions. Somehow I think it can’t find the library because now that I try to load a collada .dae file I get this error at another max function:

  
#define NOMINMAX /**< Rid us of the default versions of MINMAX. */  
#ifdef max  
#undef max  
#endif // max  
#ifdef min  
#undef min  
#endif // min  
  
#ifndef FCOLLADA_NOMINMAX  
/** Retrieves the largest of two values. */  
template<class T>  
inline T& max(T& x, T& y) { return (x > y) ? x : y; }  
template<class T>  
inline const T& max(const T& x, const T& y) { return (x > y) ? x : y; } /**< See above. */  
  
/** Retrieves the smallest of two values. */  
template <class T>  
inline T& min(T& x, T& y) { return (x < y) ? x : y; }  
template <class T>  
inline const T& min(const T& x,const T& y) { return (x < y) ? x : y; } /**< See above. */  
#endif // FCOLLADA_NOMINMAX  

cd /Users/matthiasdorfelt/Desktop/openFrameworks/00573-Xcode-Fat-YCAM-WithGui/apps/examples/FCollada
setenv MACOSX_DEPLOYMENT_TARGET 10.4
/Developer/usr/bin/g+±4.0 -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -L/Users/matthiasdorfelt/Desktop/openFrameworks/00573-Xcode-Fat-YCAM-WithGui/apps/examples/FCollada -L/Users/matthiasdorfelt/Desktop/openFrameworks/00573-Xcode-Fat-YCAM-WithGui/apps/examples/FCollada/…/…/…/libs/freeimage/lib -L/Users/matthiasdorfelt/Desktop/openFrameworks/00573-Xcode-Fat-YCAM-WithGui/apps/examples/FCollada/…/…/…/libs/fmodex/lib -L/Users/matthiasdorfelt/Desktop/openFrameworks/00573-Xcode-Fat-YCAM-WithGui/apps/examples/FCollada/…/…/…/libs/freetype/lib -L/Users/matthiasdorfelt/Desktop/openFrameworks/00573-Xcode-Fat-YCAM-WithGui/apps/examples/FCollada/…/…/…/libs/GLee/lib -L/Users/matthiasdorfelt/Desktop/openFrameworks/00573-Xcode-Fat-YCAM-WithGui/apps/examples/FCollada/…/…/…/libs/poco/lib -L/Users/matthiasdorfelt/Desktop/openFrameworks/00573-Xcode-Fat-YCAM-WithGui/apps/examples/FCollada/…/…/…/libs/rtAudio/lib -L/Users/matthiasdorfelt/Desktop/openFrameworks/00573-Xcode-Fat-YCAM-WithGui/apps/examples/FCollada/FCollada/build/Debug -L/Users/matthiasdorfelt/Desktop/openFrameworks/00573-Xcode-Fat-YCAM-WithGui/apps/examples/FCollada/FCollada/build/FCollada.build/Debug/FColladaS.build/Objects-normal/i386 -L/Users/matthiasdorfelt/Desktop/openFrameworks/00573-Xcode-Fat-YCAM-WithGui/apps/examples/FCollada/FCollada/build/FCollada.build/Debug/FColladaS.build/Objects-normal/ppc -L/Users/matthiasdorfelt/Desktop/openFrameworks/00573-Xcode-Fat-YCAM-WithGui/apps/examples/FCollada/FCollada/build/FCollada.build/Release/FColladaS.build/Objects-normal/i386 -L/Users/matthiasdorfelt/Desktop/openFrameworks/00573-Xcode-Fat-YCAM-WithGui/apps/examples/FCollada/FCollada/build/FCollada.build/Release/FColladaS.build/Objects-normal/ppc -L/Users/matthiasdorfelt/Desktop/openFrameworks/00573-Xcode-Fat-YCAM-WithGui/apps/examples/FCollada/FCollada/build/Release -L/Users/matthiasdorfelt/Desktop/openFrameworks/00573-Xcode-Fat-YCAM-WithGui/apps/examples/FCollada/FCollada/build/Debug -L/Users/matthiasdorfelt/Desktop/openFrameworks/00573-Xcode-Fat-YCAM-WithGui/apps/examples/FCollada/FCollada/build/FCollada.build/Debug/FColladaS.build/Objects-normal/i386 -L/Users/matthiasdorfelt/Desktop/openFrameworks/00573-Xcode-Fat-YCAM-WithGui/apps/examples/FCollada/FCollada/build/FCollada.build/Debug/FColladaS.build/Objects-normal/ppc -L/Users/matthiasdorfelt/Desktop/openFrameworks/00573-Xcode-Fat-YCAM-WithGui/apps/examples/FCollada/FCollada/build/FCollada.build/Release/FColladaS.build/Objects-normal/i386 -L/Users/matthiasdorfelt/Desktop/openFrameworks/00573-Xcode-Fat-YCAM-WithGui/apps/examples/FCollada/FCollada/build/FCollada.build/Release/FColladaS.build/Objects-normal/ppc -L/Users/matthiasdorfelt/Desktop/openFrameworks/00573-Xcode-Fat-YCAM-WithGui/apps/examples/FCollada/FCollada/build/Release -F/Users/matthiasdorfelt/Desktop/openFrameworks/00573-Xcode-Fat-YCAM-WithGui/apps/examples/FCollada -filelist /Users/matthiasdorfelt/Desktop/openFrameworks/00573-Xcode-Fat-YCAM-WithGui/apps/examples/FCollada/build/openFrameworks.build/Release/openFrameworks.build/Objects-normal/i386/openFrameworks.LinkFileList -mmacosx-version-min=10.4 -Wl,-dead_strip /Users/matthiasdorfelt/Desktop/openFrameworks/00573-Xcode-Fat-YCAM-WithGui/apps/examples/FCollada/…/…/…/libs/freeimage/lib/freeimage.a -lfmodex /Users/matthiasdorfelt/Desktop/openFrameworks/00573-Xcode-Fat-YCAM-WithGui/apps/examples/FCollada/…/…/…/libs/freetype/lib/freetype.a /Users/matthiasdorfelt/Desktop/openFrameworks/00573-Xcode-Fat-YCAM-WithGui/apps/examples/FCollada/…/…/…/libs/GLee/lib/GLee.a /Users/matthiasdorfelt/Desktop/openFrameworks/00573-Xcode-Fat-YCAM-WithGui/apps/examples/FCollada/…/…/…/libs/rtAudio/lib/rtAudio.a -framework AGL -framework ApplicationServices -framework AudioToolbox -framework Carbon -framework CoreAudio -framework CoreFoundation -framework CoreServices -framework GLUT -framework OpenGL -framework QuickTime -lCppUnit -lPocoFoundation -lPocoNet -lPocoUtil -lPocoXML -lFColladaS -lFColladaS -o /Users/matthiasdorfelt/Desktop/openFrameworks/00573-Xcode-Fat-YCAM-WithGui/apps/examples/FCollada/build/openFrameworks.build/Release/openFrameworks.build/Objects-normal/i386/openFrameworks
ld: library not found for -lFColladaS
collect2: ld returned 1 exit status
ld: library not found for -lFColladaS
collect2: ld returned 1 exit status
cd /Users/matthiasdorfelt/Desktop/openFrameworks/00573-Xcode-Fat-YCAM-WithGui/apps/examples/FCollada
setenv MACOSX_DEPLOYMENT_TARGET 10.4
/Developer/usr/bin/g+±4.0 -arch ppc -isysroot /Developer/SDKs/MacOSX10.4u.sdk -L/Users/matthiasdorfelt/Desktop/openFrameworks/00573-Xcode-Fat-YCAM-WithGui/apps/examples/FCollada -L/Users/matthiasdorfelt/Desktop/openFrameworks/00573-Xcode-Fat-YCAM-WithGui/apps/examples/FCollada/…/…/…/libs/freeimage/lib -L/Users/matthiasdorfelt/Desktop/openFrameworks/00573-Xcode-Fat-YCAM-WithGui/apps/examples/FCollada/…/…/…/libs/fmodex/lib -L/Users/matthiasdorfelt/Desktop/openFrameworks/00573-Xcode-Fat-YCAM-WithGui/apps/examples/FCollada/…/…/…/libs/freetype/lib -L/Users/matthiasdorfelt/Desktop/openFrameworks/00573-Xcode-Fat-YCAM-WithGui/apps/examples/FCollada/…/…/…/libs/GLee/lib -L/Users/matthiasdorfelt/Desktop/openFrameworks/00573-Xcode-Fat-YCAM-WithGui/apps/examples/FCollada/…/…/…/libs/poco/lib -L/Users/matthiasdorfelt/Desktop/openFrameworks/00573-Xcode-Fat-YCAM-WithGui/apps/examples/FCollada/…/…/…/libs/rtAudio/lib -L/Users/matthiasdorfelt/Desktop/openFrameworks/00573-Xcode-Fat-YCAM-WithGui/apps/examples/FCollada/FCollada/build/Debug -L/Users/matthiasdorfelt/Desktop/openFrameworks/00573-Xcode-Fat-YCAM-WithGui/apps/examples/FCollada/FCollada/build/FCollada.build/Debug/FColladaS.build/Objects-normal/i386 -L/Users/matthiasdorfelt/Desktop/openFrameworks/00573-Xcode-Fat-YCAM-WithGui/apps/examples/FCollada/FCollada/build/FCollada.build/Debug/FColladaS.build/Objects-normal/ppc -L/Users/matthiasdorfelt/Desktop/openFrameworks/00573-Xcode-Fat-YCAM-WithGui/apps/examples/FCollada/FCollada/build/FCollada.build/Release/FColladaS.build/Objects-normal/i386 -L/Users/matthiasdorfelt/Desktop/openFrameworks/00573-Xcode-Fat-YCAM-WithGui/apps/examples/FCollada/FCollada/build/FCollada.build/Release/FColladaS.build/Objects-normal/ppc -L/Users/matthiasdorfelt/Desktop/openFrameworks/00573-Xcode-Fat-YCAM-WithGui/apps/examples/FCollada/FCollada/build/Release -L/Users/matthiasdorfelt/Desktop/openFrameworks/00573-Xcode-Fat-YCAM-WithGui/apps/examples/FCollada/FCollada/build/Debug -L/Users/matthiasdorfelt/Desktop/openFrameworks/00573-Xcode-Fat-YCAM-WithGui/apps/examples/FCollada/FCollada/build/FCollada.build/Debug/FColladaS.build/Objects-normal/i386 -L/Users/matthiasdorfelt/Desktop/openFrameworks/00573-Xcode-Fat-YCAM-WithGui/apps/examples/FCollada/FCollada/build/FCollada.build/Debug/FColladaS.build/Objects-normal/ppc -L/Users/matthiasdorfelt/Desktop/openFrameworks/00573-Xcode-Fat-YCAM-WithGui/apps/examples/FCollada/FCollada/build/FCollada.build/Release/FColladaS.build/Objects-normal/i386 -L/Users/matthiasdorfelt/Desktop/openFrameworks/00573-Xcode-Fat-YCAM-WithGui/apps/examples/FCollada/FCollada/build/FCollada.build/Release/FColladaS.build/Objects-normal/ppc -L/Users/matthiasdorfelt/Desktop/openFrameworks/00573-Xcode-Fat-YCAM-WithGui/apps/examples/FCollada/FCollada/build/Release -F/Users/matthiasdorfelt/Desktop/openFrameworks/00573-Xcode-Fat-YCAM-WithGui/apps/examples/FCollada -filelist /Users/matthiasdorfelt/Desktop/openFrameworks/00573-Xcode-Fat-YCAM-WithGui/apps/examples/FCollada/build/openFrameworks.build/Release/openFrameworks.build/Objects-normal/ppc/openFrameworks.LinkFileList -mmacosx-version-min=10.4 -Wl,-dead_strip /Users/matthiasdorfelt/Desktop/openFrameworks/00573-Xcode-Fat-YCAM-WithGui/apps/examples/FCollada/…/…/…/libs/freeimage/lib/freeimage.a -lfmodex /Users/matthiasdorfelt/Desktop/openFrameworks/00573-Xcode-Fat-YCAM-WithGui/apps/examples/FCollada/…/…/…/libs/freetype/lib/freetype.a /Users/matthiasdorfelt/Desktop/openFrameworks/00573-Xcode-Fat-YCAM-WithGui/apps/examples/FCollada/…/…/…/libs/GLee/lib/GLee.a /Users/matthiasdorfelt/Desktop/openFrameworks/00573-Xcode-Fat-YCAM-WithGui/apps/examples/FCollada/…/…/…/libs/rtAudio/lib/rtAudio.a -framework AGL -framework ApplicationServices -framework AudioToolbox -framework Carbon -framework CoreAudio -framework CoreFoundation -framework CoreServices -framework GLUT -framework OpenGL -framework QuickTime -lCppUnit -lPocoFoundation -lPocoNet -lPocoUtil -lPocoXML -lFColladaS -lFColladaS -o /Users/matthiasdorfelt/Desktop/openFrameworks/00573-Xcode-Fat-YCAM-WithGui/apps/examples/FCollada/build/openFrameworks.build/Release/openFrameworks.build/Objects-normal/ppc/openFrameworks
ld: library not found for -lFColladaS
collect2: ld returned 1 exit status
ld: library not found for -lFColladaS
collect2: ld returned 1 exit status

What could cause that? If I switch the build configuration to debug it does find the files again. weirdness.

Did anyone get any further with this? Moka?

I noticed this file on the “secret” file section of the site.

http://www.openframeworks.cc/files/0057-…-orking.zip

I think it would be a very useful thing for an addon, I’d be willing to fold it in.

Cheers,

Joel

hey,

the file linked compiles but I still could not get it to work correctly, please let me know if you have any success!