OK .Would you complete the sentence : ..........have their own Coordinate System. ?
If not the only alternative for me would be: Objects with coordinate system have their own coordinate system.!!!
OK .Would you complete the sentence : ..........have their own Coordinate System. ?
"Many" would be the right word here. If they have a placement they have their own coordinate system. But there are objects where the Placement is hidden, so I would not go into detail here on this intro level.
I apologize for my rude sentence, thanks for the plain reply.
I think that this is the most important information: the core modelling kernel (OCC) describes an object, and the scenegraph (Coin3D) places that object somewhere in space. This placement is done with reference to a coordinate system, which needs 6 numbers, also called degrees of freedom: 3 numbers of position (X, Y Z) and 3 numbers for orientation (Eurler's angles). FreeCAD is "only" a glue between these 2, and provides a method to calculate the 6 numbers for the 6 degrees of freedom.
I think that internally a rotation is defined by quaternions, which is the proper way to do it :adrianinsaval wrote: ↑Mon Jul 04, 2022 1:48 pm internally FreeCAD doesn't directly use euler angles but a vector and an angle to rotate around said vector
Code: Select all
private:
void normalize();
void evaluateVector ();
double quat[4];
Vector3d _axis; // the axis kept not to lose direction when angle is 0
double _angle; // this angle to keep the angle chosen by the user
Code: Select all
bool Rotation::isIdentity() const
{
return ((this->quat[0] == 0.0 &&
this->quat[1] == 0.0 &&
this->quat[2] == 0.0) &&
(this->quat[3] == 1.0 ||
this->quat[3] == -1.0));
}