Claude Chappe' Curse - A C Game
Logo Institut d'Informatique Claude Chappe Logo Université de Le Mans Logo Raeptor Production
 
Loading...
Searching...
No Matches
Classes

Defines the Object structure and macros for method invocation in a class hierarchy. More...

Classes

class  Object
 A generic object structure. More...
 
class  Node
 Represents a node in the tree structure. More...
 
class  Camera
 A structure to represent a camera with position and rotation in 3D space. More...
 
class  BoxCShape
 
class  CapsuleCShape
 
class  CShape
 
class  MeshCShape
 
class  PlaneCShape
 
class  RayCShape
 
class  SphereCShape
 
class  Button
 Represents a button. More...
 
class  CheckBox
 
class  ControlFrame
 
class  Frame
 Represents a frame. More...
 
class  ImageFrame
 Represents an image frame. More...
 
class  InputArea
 Represents an input area. More...
 
class  Label
 Represents a label. More...
 
class  RadioButton
 Represents a radio button. More...
 
class  SelectList
 Represents a selectable list. More...
 
class  Slider
 Represents a slider component in the GUI. More...
 
class  DirectionalLight
 Represents a directional light source. More...
 
class  Light
 
class  PointLight
 Represents a point light source. More...
 
class  SpotLight
 Represents a spotlight source. More...
 
class  Mesh
 Structure representing a mesh. More...
 
class  Model
 Structure representing a 3D model. More...
 
class  Area
 Represents an area with collision shapes and nodes. More...
 
class  Body
 
class  KinematicBody
 Represents a kinematic body in the physics simulation. More...
 
class  RigidBody
 Represents a rigid body in the physics simulation. More...
 
class  StaticBody
 Represents a static body in the physics simulation. More...
 
class  PhysicalNode
 
class  RenderTarget
 A structure to handle render targets. More...
 
class  Scene
 
class  Skybox
 
class  TexturedMesh
 Structure representing a textured mesh. More...
 

Macros

#define SUPER(method_name, ...)   call_method_0(classManager.methodsCorrespondance.method_name[classManager.extends[__type__]], this, ##__VA_ARGS__)
 Invokes a method from the superclass.
 
#define METHOD_TYPE(default_type, method_name, obj, ...)   classManager.methodsCorrespondance.method_name[default_type], obj, ##__VA_ARGS__
 Invokes a method with a specified default type.
 
#define METHOD(method_name, obj, ...)   classManager.methodsCorrespondance.method_name[obj->type], obj, ##__VA_ARGS__
 Invokes a method on an object.
 

Functions

void call_method_0 (void(*func)(void *, va_list),...)
 

Detailed Description

Defines the Object structure and macros for method invocation in a class hierarchy.

This file contains the definition of the Object structure and several macros to facilitate method invocation in a class hierarchy. The macros handle method lookup and invocation, including support for inheritance and method overriding.

Macro Definition Documentation

◆ SUPER

#define SUPER (   method_name,
  ... 
)    call_method_0(classManager.methodsCorrespondance.method_name[classManager.extends[__type__]], this, ##__VA_ARGS__)

Invokes a method from the superclass.

This macro is used to invoke a method from the superclass of the current object. It performs a lookup in the class hierarchy to find the appropriate method and invokes it with the provided arguments.

Parameters
method_nameThe name of the method to invoke.
...Additional arguments to pass to the method.

◆ METHOD_TYPE

#define METHOD_TYPE (   default_type,
  method_name,
  obj,
  ... 
)    classManager.methodsCorrespondance.method_name[default_type], obj, ##__VA_ARGS__

Invokes a method with a specified default type.

This macro is used to invoke a method on an object with a specified default type. It performs a lookup in the class hierarchy to find the appropriate method and invokes it with the provided arguments.

Parameters
default_typeThe default type to use for method lookup.
method_nameThe name of the method to invoke.
objThe object on which to invoke the method.
...Additional arguments to pass to the method.

◆ METHOD

#define METHOD (   method_name,
  obj,
  ... 
)    classManager.methodsCorrespondance.method_name[obj->type], obj, ##__VA_ARGS__

Invokes a method on an object.

This macro is used to invoke a method on an object. It uses the object's type to perform a lookup in the class hierarchy and find the appropriate method, then invokes it with the provided arguments.

Parameters
method_nameThe name of the method to invoke.
objThe object on which to invoke the method.
...Additional arguments to pass to the method.

Function Documentation

◆ call_method_0()

void call_method_0 ( void(*)(void *, va_list)  func,
  ... 
)