mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-29 09:40:21 +00:00
Updating Objective-C matchers and adding a sample C++ file
This commit is contained in:
@@ -70,7 +70,7 @@ module Linguist
|
||||
end
|
||||
|
||||
disambiguate "Objective-C", "C++", "C" do |data|
|
||||
if (/@(interface|class|protocol|property|end|synchronised|selector|implementation)\b/.match(data))
|
||||
if (/^[ \t]*@(interface|class|protocol|property|end|synchronised|selector|implementation)\b/.match(data))
|
||||
Language["Objective-C"]
|
||||
elsif (/^\s*#\s*include <(cstdint|string|vector|map|list|array|bitset|queue|stack|forward_list|unordered_map|unordered_set|(i|o|io)stream)>/.match(data) ||
|
||||
/^\s*template\s*</.match(data) || /^[ \t]*try/.match(data) || /^[ \t]*catch\s*\(/.match(data) || /^[ \t]*(class|(using[ \t]+)?namespace)\s+\w+/.match(data) || /^[ \t]*(private|public|protected):$/.match(data) || /std::\w+/.match(data))
|
||||
|
||||
98
samples/C++/Entity.h
Normal file
98
samples/C++/Entity.h
Normal file
@@ -0,0 +1,98 @@
|
||||
/**
|
||||
* @file Entity.h
|
||||
* @page EntityPage Entity
|
||||
* @brief represent an entity in the game
|
||||
* @author vinz243
|
||||
* @version 0.1.0
|
||||
* This file represents an Entity in the game system
|
||||
* This parent type is a static entity which is shown and loaded into the Physics engine but never updated
|
||||
*/
|
||||
|
||||
#ifndef ENTITY_H
|
||||
#define ENTITY_H
|
||||
|
||||
#include "base.h"
|
||||
/// @namespace Whitedrop
|
||||
namespace Whitedrop {
|
||||
/** @class Entity
|
||||
* This parent type is a static entity which is shown and loaded into the Physics engine but never updated
|
||||
*/
|
||||
class Entity {
|
||||
public:
|
||||
/**
|
||||
* @brief Create static entity
|
||||
* @details creates a static entity instance according to the mesh and the id, the position
|
||||
* This needs to be attached to a World after!
|
||||
* The material name is not the file name but the material name!
|
||||
* @ref WorldPage
|
||||
* @param mesh the name of the mesh for the object, file must be in media/meshes
|
||||
* @param id an unique identifier for the object, shortest as possible
|
||||
* @param dimensions an Ogre::Vector3 which contains the dimensions in meter
|
||||
* @param position the Vector3 which contains it position
|
||||
* @param material the material name
|
||||
*/
|
||||
Entity(std::string mesh, std::string id, Ogre::Vector3 dimensions, Ogre::Vector3 position, std::string material);
|
||||
/**
|
||||
* @brief The copy constructor
|
||||
* @details A copy constr
|
||||
*
|
||||
* @param ref the Entity to be copied from
|
||||
*/
|
||||
Entity(const Entity &ref);
|
||||
|
||||
/**
|
||||
* @brief The assignement operator
|
||||
* @details
|
||||
*
|
||||
* @param ent the entity to be copied
|
||||
*/
|
||||
Entity& operator=(const Entity ent);
|
||||
|
||||
/**
|
||||
* @brief destrctor
|
||||
* @details
|
||||
*/
|
||||
virtual ~Entity(void);
|
||||
|
||||
/**
|
||||
* @brief a constance type of the entity
|
||||
* @details depends of the class.
|
||||
* May contain STATIC, DYNAMIC or ETHERAL
|
||||
*/
|
||||
const std::string type = "STATIC";
|
||||
|
||||
/**
|
||||
* @brief Attach the entity to specified sceneManager
|
||||
* @details This creates the OgreEntity using sceneMgr,
|
||||
* set material, create a Node with name as `<id>_n`,
|
||||
* scale it to match dimensions and translate the node to pos
|
||||
* @param sceneMgr the scene manager to use
|
||||
*/
|
||||
virtual void setup(Ogre::SceneManager* sceneMgr);
|
||||
|
||||
/**
|
||||
* @brief the update method
|
||||
* @details this method should be called on each world update.
|
||||
* Even though the method is necessary declared, the main impl of
|
||||
* a static entity should be empty since it is not updated by physics
|
||||
* However, a Dynamic entity should implement this function in order to:
|
||||
* 1) Get from the physics engine the actor position in the physic world
|
||||
* 2) Update the OgreEntity position and rotation from the previous actor
|
||||
* @return whether it was successful or not, if falsey engine should stop
|
||||
*/
|
||||
virtual bool update(void);
|
||||
|
||||
protected:
|
||||
std::string mMesh = "cube.mesh";
|
||||
std::string mId;
|
||||
std::string mMaterial;
|
||||
Ogre::Vector3 mDimensions;
|
||||
Ogre::Vector3 mPosition;
|
||||
Ogre::Entity* mEntity;
|
||||
Ogre::SceneNode* mNode;
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user