MObject3d

(Difference between revisions)
Jump to: navigation, search
(Position)
(Type)
Line 146: Line 146:
  
 
===Type===
 
===Type===
 +
See below.
 
====getType====
 
====getType====
[...]
+
When you have a pointer to an object but you don't know what the object is (e.g. when looping through a vector of objects), you can use ''getType()''.
 +
 
 +
MObject3D returns the '''M_OBJECT3D''' identifier, but this is a virtual method which is overrided by the derived objects (e.g. [[MOEntity]], [[MOCamera]]).
 +
 
 +
So in the case of MOEntity, the object will return the '''M_OBJECT3D_ENTITY''' identifier so you can tell that you're working with a [[MOEntity]] object.
 +
 
 +
<pre>
 +
unsigned int size = vector_of_objects.size();
 +
for(unsigned int i=0; i<size; i++)
 +
{ unsigned int id = (size-1)-i;
 +
if(vector_of_objects[id]->getType == M_OBJECT3D_ENTITY)
 +
{ printf("I've found an entity!\n");
 +
}
 +
}
 +
</pre>
  
 
===Update===
 
===Update===
 
====update====
 
====update====
 
[...]
 
[...]

Revision as of 22:33, 21 October 2013

MObject3d is a base object from which other important objects are derived (e.g. MOEntity, MOCamera, MOText).

It allows basic operations like translation/rotation, parent/child linking, etc.

All its methods can be called from the derived object:

camera->setPosition(MVector3(0,0,0));

This works because [[MOCamera]] is derived from MObject3d which has the method setPosition().

Notice the derived objects has the O in the name for "Object3d" to suggest their base class (e.g. MOEntity).


Contents

Source code

MObject3d.h

MObject3d.cpp

API

Matrix

updateMatrix

[...]

computeLocalMatrix

[...]

getMatrix

[...]

Childs

unlinkChilds

[...]

computeChildsMatrices

[...]

Transform

getUniformRotatedVector

[...]

getInverseRotatedVector

[...]

getRotatedVector

[...]

getInversePosition

[...]

getTransformedVector

[...]

Position

Position simply tells where the object is in space coordinate (X, Y and Z). MVector3 is used to generate specific coordinate:

MVector3 pos = MVector3(10,10,10); //pos is a point with coordinate 10,10,10
camera->setPosition(pos); //a camera object is now set to the coordinates 10,10,10
player->setPosition(MVector3(50,50,50)); //the player is set explicitly to position 50,50,50
MVector3 point = camera->getPosition(); //get the position of the camera object and stores it in "point".

setPosition

Set the position of the object.

getTransformedPosition

[...]

getPosition

Get the position of the object.

Rotation

setEulerRotation

[...]

setAxisAngleRotation

[...]

addAxisAngleRotation

[...]

setRotation

[...]

getTransformedRotation

[...]

getEulerRotation

[...]

getRotation

[...]

Scale

setScale

[...]

getTransformedScale

[...]

getScale

[...]

Linking

linkTo

[...]

unLink

[...]

setParent

[...]

addChild

[...]

hasParent

[...]

getChildsNumber

[...]

getParent

[...]

getChild

[...]

Behaviors

updateBehaviors

[...]

drawBehaviors

[...]

deleteBehavior

[...]

invertBehavior

[...]

changeBehavior

[...]

addBehavior

[...]

getBehaviorsNumber

[...]

getBehavior

[...]

Need to update

needToUpdate

[...]

Active

setActive

[...]

isActive

[...]

Visibility

Invisible objects can still be transformed and have an influence in the scene (e.g. physics).

setVisible

Set the visibility of the object. True or false.

isVisible

Check if the object is visible. True or false.

updateVisibility

[...]

Name

setName

[...]

getName

[...]

Type

See below.

getType

When you have a pointer to an object but you don't know what the object is (e.g. when looping through a vector of objects), you can use getType().

MObject3D returns the M_OBJECT3D identifier, but this is a virtual method which is overrided by the derived objects (e.g. MOEntity, MOCamera).

So in the case of MOEntity, the object will return the M_OBJECT3D_ENTITY identifier so you can tell that you're working with a MOEntity object.

unsigned int size = vector_of_objects.size();
for(unsigned int i=0; i<size; i++)
{	unsigned int id = (size-1)-i;
	if(vector_of_objects[id]->getType == M_OBJECT3D_ENTITY)
	{	printf("I've found an entity!\n");
	}
}

Update

update

[...]

Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox