const

CoppeliaSim/Vrep Remote API 封装

那年仲夏 提交于 2020-02-26 20:12:56
自己把CoppeliaSim remote API 中的部分函数封装了类,可以完成机器人的关节空间控制,以及笛卡尔空间控制。 VS2017 和 CoppeliaSim/Vrep 的配置参见我的博客: CoppeliaSim Remote API 实操 关节空间控制,需在CoppeliaSim/Vrep中关闭逆运动学,笛卡尔空间控制开启逆运动学。 下面是头文件,全部文件请在下方链接下载:(包括VS的永久配置文件,需按照自己文件的路径稍作修改) https://download.csdn.net/download/qq_29696095/12192775 // Copyright SJTU // author Li Wang 05liwang@sjtu.edu.cn 935342669@qq.com // this file is used to wrap the legacy remote API of CoppeliaSim // all the unit of data from coppeliasim is m or s or N or deg // orientation is euler anles, alpha, beta and gamma // T = rotx(a)*roty(b)*rotz(g) # ifndef COPPELIA_H_ # define

QList用法

杀马特。学长 韩版系。学妹 提交于 2020-02-26 19:13:56
QList常用函数 public函数 void append ( const T & value ) // 从尾部添加 void append ( const QList < T > & value ) // 从尾部添加 const T & at ( int i ) || T value ( int i ) const const T & back ( ) T & first ( ) T & front ( ) iterator begin ( ) iterator end ( ) bool contains ( const T & value ) const int count ( const T & value ) const int count ( ) || int size ( ) const bool empty ( ) const || bool isEmpty ( ) bool endsWith ( const T & value ) bool startsWith ( const T & value ) iterator erase ( iterator pos ) // 删除,并后移 int indexOf ( const T & value , int from = 0 ) const void insert ( int i , const T & value

C++变量和基本类型知识概要总结

烂漫一生 提交于 2020-02-26 15:38:40
整合基本的关于c++的变量和基本类型的知识。参考于C++primer第二章 仅包含部分,而非全部 inti=b; //i的值为1 i= 3.14; //i的值为3 double pi = i; // pi的值为3.0 unsigned char C = - 1; //假设char占8比特,c的值为255 signed char c2 = 256; //假设char占8比特,c2的值是未定义的 注意:当我们赋给无符号类型一个超过它表示范围的值时,结果就是初始值对无符号类型所表示的数值总值取模后的余数。 举个清新易懂的例子 例如:八比特大小的unsigned char 可以表示0至255区间内的值,如果赋了一个区间以外的值,则实际值就是该值对256取模后所得的余数。-1赋值给unsigned char的结果时255. 但是 !!赋值给有符号类型超过它表示范围的值时,结果就是未定义的。程序可能继续工作,可能崩溃,也可能产生垃圾数据。 int类型的加了一个无符号值时,int会先变成无符号类型然后再操作。 若两个无符号相减后变成负数了,结果会是取模后的值 ‘A’ 和 "A"是有区别的,'A’就是一个单独的字符A,而"A"则代表了一个字符的数组,包含两个字符,一个是字母A ,另一个是空字符。 对于C++程序员来说,变量和对象一般可以互换使用 初始化不是赋值

C++单循环链表(迭代器版)

天大地大妈咪最大 提交于 2020-02-26 15:35:39
1 #ifndef _LIST_H_ 2 #define _LIST_H_ 3 //虚基类 4 template<class ElemType> 5 class List 6 { 7 public: 8 List() {}; 9 virtual ~List() {}; 10 virtual void Clear() = 0;//清空数据结构 11 virtual void Insert(const int& i, const ElemType& X) = 0;//插入元素 12 virtual void ReMove(const int &i) = 0;//移除指定位置的元素 13 virtual void Erase(const ElemType& X) = 0;//删除表中所有X元素 14 virtual int Search(const ElemType& X) const = 0;//搜索某个元素 15 virtual void Traverse() const = 0;//遍历数据结构 16 virtual ElemType Visit(const int& i)const = 0;//访问某个元素 17 }; 18 #endif // !_LIST_H_ List.h 1 #ifndef __SCYCLISTLIST_H__ 2 #define _

osg 动态读取PageLOD数据文件后 处理数据节点 callback 方法

|▌冷眼眸甩不掉的悲伤 提交于 2020-02-26 15:30:16
创建读取文件回调类 //.h class CReadFileCallbackEx : public osgDB::ReadFileCallback { public: CReadFileCallbackEx(); virtual ~CReadFileCallbackEx(); virtual osgDB::ReaderWriter::ReadResult readNode(const std::string& filename, const osgDB::ReaderWriter::Options* options); }; //.cpp osgDB::ReaderWriter::ReadResult CReadFileCallbackEx::readNode( const std::string& filename, const osgDB::ReaderWriter::Options* options ) { osgDB::ReaderWriter::ReadResult rs = osgDB::ReadFileCallback::readNode(filename,options); if (rs.validNode()) { //处理数据节点,可以设置显示颜色等参数 osg::Node* pNode = rs.getNode(); } return rs; } 来源:

android P SurfaceFlinger---图层创建过程

我怕爱的太早我们不能终老 提交于 2020-02-26 14:38:25
由上节的内容可知,SurfaceComposerClient是应用程序与surfaceflinger之间的通信桥梁,不过SurfaceComposerClient只是一个封装,实质是通过内部的ISurfaceComposerClient来执行的,ISurfaceComposerClient对应的服务端实现是Client。 SurfaceComposerClient.h sp<ISurfaceComposerClient> mClient; SurfaceComposerClient.cpp void SurfaceComposerClient::onFirstRef() { sp<ISurfaceComposer> sf(ComposerService::getComposerService()); if (sf != nullptr && mStatus == NO_INIT) { sp<ISurfaceComposerClient> conn; conn = sf->createConnection(); if (conn != nullptr) { mClient = conn; mStatus = NO_ERROR; } } } ISurfaceComposer.cpp class BpSurfaceComposer : public BpInterface

将'const'用于功能参数

妖精的绣舞 提交于 2020-02-26 14:00:20
你用 const 走多远? 您只是在必要时使函数为 const 还是在整个过程中都使用它? 例如,假设有一个简单的变量,它带有一个布尔值: void SetValue(const bool b) { my_val_ = b; } 那个 const 实际上有用吗? 我个人选择广泛使用它,包括参数,但是在这种情况下,我想知道它是否值得? 我也惊讶地发现您可以从函数声明中的参数中省略 const ,但可以将其包含在函数定义中,例如: .h文件 void func(int n, long l); .cpp文件 void func(const int n, const long l) 是否有一个原因? 对我来说似乎有点不寻常。 #1楼 从API的角度来看,多余的const是不利的: 在代码中为值传递的内在类型参数添加多余的const会使 您的API混乱, 而对调用者或API用户没有任何有意义的承诺(这只会妨碍实现)。 当不需要时,API中太多的“ const”就像“ 哭泣的狼 ”,最终人们会开始忽略“ const”,因为它遍地都是,在大多数时候没有任何意义。 API中额外的const的“ reducio ad absurdum”参数对于前两点是好的,那就是如果更多的const参数是好的,那么每个可以有const的参数都应该有const。 实际上,如果确实如此,您希望const成为参数的默认值

iOS日常工作之常用宏定义大全

若如初见. 提交于 2020-02-26 10:07:26
前言: 在工作中, 很多小伙伴都会在PCH文件定义一些常用的宏,但是又怕写这些简单的宏浪费时间,又有时候忘记怎么定义了怎么办?本人在工作中也是如此。所以在这里给大家分享一些常用的宏定义,喜欢的小伙伴可以直接在项目中使用(持续更新)! 为了大家使用方便,请点击: GitHub - 宏定义头文件下载 1.获取屏幕宽度与高度 1 2 #define SCREEN_WIDTH [UIScreen mainScreen].bounds.size.width #define SCREENH_HEIGHT [UIScreen mainScreen].bounds.size.height 根据一个网友脱离语言提醒, 如果支持横屏可以用下面的宏: 1 2 3 4 5 6 7 8 9 #if __IPHONE_OS_VERSION_MAX_ALLOWED >= 80000 // 当前Xcode支持iOS8及以上 #define SCREEN_WIDTH ([[UIScreen mainScreen] respondsToSelector:@selector(nativeBounds)]?[UIScreen mainScreen].nativeBounds.size.width/[UIScreen mainScreen].nativeScale:[UIScreen mainScreen].bounds

node的httpserver简单创建

天涯浪子 提交于 2020-02-26 09:58:53
1.设计原则为文件夹名字可以依据资源来命名,静态资源统一命名 ps:路径中绝对和相对路径,依据server.js本身的位置而言 const http = require("http"); const url = require("url"); const fs = require("fs"); const server = http.createServer(); server.on("request",(req,res)=>{ console.info(req.url); if(req.url.indexOf("/index.html") != -1){ fs.readFile("../index.html","utf-8",(err,data)=>{ if(err){console.info("error read");return} res.end(data); }) }else if(req.url.indexOf("game") != -1){ fs.readFile("../" + req.url,"utf-8",(err,data)=>{ if(err){console.info("error read");return} res.end(data); }) }else{ res.end("404"); } }) server.listen(5080,"127.0.0

Const array of strings [duplicate]

爱⌒轻易说出口 提交于 2020-02-26 08:47:28
问题 This question already has answers here : Closed 7 years ago . Possible Duplicate: Declare a Const Array I need an array of const strings in the class. Something like public class some_class_t { public const string[] names = new string[4] { "alpha", "beta", "gamma", "delta" }; } But this code causes an error: A constant 'names' of reference type 'string[]' can only be initialized with null. What should I do? 回答1: Declare it as readonly instead of const : public readonly string[] names = {