mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +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