25 #ifndef __I6ENGINE_MODULES_GRAPHICSNODE_H__ 
   26 #define __I6ENGINE_MODULES_GRAPHICSNODE_H__ 
   46         class BoundingBoxComponent;
 
   48         class GraphicsManager;
 
   50         class LuminousComponent;
 
   53         class ParticleComponent;
 
  108                 void createMeshComponent(
const int64_t coid, 
const std::string & meshName, 
const bool visible, 
const Vec3 & position, 
const Quaternion & rotation, 
const Vec3 & scale);
 
  109                 void updateMeshComponent(
const int64_t coid, 
const std::string & meshName, 
const bool visible);
 
  114                 void updateMeshComponentVisibility(
const int64_t coid, 
const bool visible);
 
  119                 void updateMeshComponentShadowCasting(
const int64_t coid, 
const bool enabled);
 
  128                 void setMaterial(
const int64_t coid, 
const std::string & materialName);
 
  139                 void setCustomParameter(uint32_t num, 
const Vec4 & value);
 
  144                 void playAnimation(
const int64_t coid, 
const std::string & anim, 
bool looping, 
double offsetPercent);
 
  149                 void setAnimationSpeed(int64_t coid, 
double animationSpeed);
 
  154                 void stopAnimation(int64_t coid);
 
  160                 void addAnimationFrameEvent(int64_t coid, uint64_t frame, 
const std::function<
void(
void)> & func);
 
  167                 void deleteMeshComponent(
const int64_t coid);
 
  176                 void createCameraComponent(
const int64_t coid, 
const Vec3 & position, 
const Vec3 & lookAt, 
const double nC, 
double aspect, 
const double fov);
 
  177                 void updateCameraComponent(
const int64_t coid, 
const Vec3 & position, 
const Vec3 & lookAt, 
const double nC, 
double aspect, 
const double fov);
 
  182                 void updateCameraFrustumComponent(
const int64_t coid, 
const double left, 
const double right, 
const double top, 
const double bottom);
 
  187                 void enableCompositor(int64_t coid, 
const std::string & compositor, 
bool enabled);
 
  194                 void createOrUpdateViewport(
const int64_t coid, 
int zOrder, 
const double left, 
const double top, 
const double width, 
const double height, 
const double red, 
const double green, 
const double blue, 
const double alpha);
 
  201                 void deleteCameraComponent(
const int64_t coid);
 
  228                 void deleteLuminousComponent(
const int64_t coid);
 
  236                 void createParticleComponent(
const int64_t coid, 
const std::string & emitterName, 
const Vec3 & pos);
 
  241                 void particleFadeOut(int64_t coid);
 
  246                 void deleteParticleComponent(
const int64_t coid);
 
  256                 void createOrUpdateBillboard(int64_t coid, 
const std::string & identifier, 
const Vec3 & offset, 
double width, 
double height, 
double u0, 
double v0, 
double u1, 
double v1);
 
  261                 void deleteBillboard(int64_t coid, 
const std::string & identifier);
 
  266                 void deleteBillboardSetComponent(int64_t coid);
 
  271                 void createMovableText(int64_t coid, 
const std::string & font, 
const std::string & text, 
double size, 
const Vec3 & colour);
 
  276                 void updateMovableText(int64_t coid, 
const std::string & font, 
const std::string & text, 
double size, 
const Vec3 & colour);
 
  281                 void updateMovableTextSetAutoScaleCallback(int64_t coid, 
const std::function<
double(
const Vec3 &, 
const Vec3 &)> & callback);
 
  286                 void deleteMovableText(int64_t coid);
 
  291                 void drawBoundingBox(int64_t coid, 
const Vec3 & colour);
 
  296                 void removeBoundingBox(int64_t coid);
 
  301                 void createLine(int64_t coid, 
const Vec3 & from, 
const Vec3 & to, 
const Vec3 & colour);
 
  306                 void removeLine(int64_t coid);
 
  311                 void attachToBone(int64_t coid, 
GraphicsNode * otherNode, 
const std::string & boneName);
 
  316                 void detachFromBone(int64_t coid, 
GraphicsNode * otherNode, 
const std::string & boneName);
 
  321                 void listenAttachment(
GraphicsNode * otherNode, int64_t coid, 
const std::string & boneName);
 
  326                 void stopListenAttachment();
 
  351                 int64_t _gameObjectID;
 
  356                 Ogre::SceneNode * _sceneNode;
 
  361                 std::map<int64_t, CameraComponent *> _cameras;
 
  366                 std::map<int64_t, LuminousComponent *> _lights;
 
  371                 std::map<int64_t, ParticleComponent *> _particles;
 
  376                 std::map<int64_t, MeshComponent *> _meshes;
 
  378                 std::map<int64_t, BillboardComponent *> _billboardSets;
 
  380                 std::map<int64_t, MovableTextComponent *> _movableTexts;
 
  382                 std::map<int64_t, BoundingBoxComponent *> _boundingBoxes;
 
  384                 std::map<int64_t, LineComponent *> _lines;
 
  386                 int64_t _attachedCoid;
 
  387                 std::string _attachedBone;
 
  393                 std::vector<MeshComponent *> _tickingMeshes;
 
  394                 std::vector<MovableTextComponent *> _tickingMovableTexts;
 
Implements 4-dimensional vectors. 
Saves all graphics-related data associated with one GameObject. 
Class describing a 3d rotation. 
Handles all light related functionality. 
Implements 3-dimensional vectors. 
#define ASSERT_THREAD_SAFETY_HEADER
Ogre::SceneNode * getSceneNode() const 
Gets SceneNode of the object. 
Handles all light related functionality. 
void addTicker(MeshComponent *mesh)
void removeTicker(MeshComponent *mesh)
LightType
type of the light emitted