.NET平台下对C3D文件之读写

【题外话】

绝对光年.jpeg

新近实验室设本人修改C3D(The 3D Biomechanics Data
Standard)文件,虽然从网上找到了一个让c3d4sharp的类库,这个类库单纯读取C3D文件之语句还好,但是要如实现修改或者创造C3D文件就于费心了。同时c3d4sharp实现得比较简单,很多C3D文件里有数据还非支持。好于C3D文件总体不是颇复杂,于是自己便开始又勾了一个C3D文件读写的库房,现在以codeplex上缔造了个项目为C3D.NET。

第十三段(+):大同

自我在呼和浩特火车站绝续续地睡了同一夜,半夜火车顶站,阵阵轰鸣声把自己吵醒,当人流像潮水般下跌去,恢复平静的时候,我才能够再次入睡。
本人从来不拉动眼罩耳塞睡觉,在火车站里,我要时刻警惕着。
一半夜间醒过来的时光,我意识姜来人不见了,只剩余行李在自家身边,我心咯噔了瞬间。
截至自己看看他迷迷糊糊地由洗手间中走出去,我才松一口气。
口连会变的,而且转换得专程快,在不久前,我还当纪念怎么摆脱姜来,可是今天,我倒忽然担心他见面不辞而别。

仿佛清晨,人更加多,睡眠让堵塞得特别之屡屡,我干脆不睡了。
自己用在洗漱用品在盥洗室里草草地清洁,冷水洗了体面后,整个人还精神爽快。
自我进了一定量瓶咖啡回去座位高达,姜来为苏醒过来。刚睡醒的外,看上去呆呆的,我递他一样瓶子咖啡,他拿在手上,咕噜咕噜地皆喝就。
“现在几乎接触了。”他带在一样嘴巴咖啡味问我。
“还早也,现在7点未交。”我抬头看正在挂于站里的大钟表,慵懒地游说。
“我们几乎碰之列车。”
“10点35分。”
“我的上,还要当这样绵长。我实在后悔,昨晚怎么不失去平息快捷酒店呢?这同住宿我都并未歇好,现在浑身特别麻烦让。”他站起来,伸了只懒腰。
“后悔呢后矣。你失去洗漱一下,精神爽快点。”
“好吧。”他无可奈何地说。

早起7点过后,火车站挤满了总人口,行李堆得四处都是,我带来上耳机,看正在电子书,对之世界不闻不问。
姜来继续羁押他的《在中途》,不理解,他跟在书里的骨干去到什么地方了。
自己身边的座席来回换了一点波人,他们为下来,吃在喝在说着笑着,然后以为直达火车,在车上继续吃着喝在说着笑着,到另外一座都,过在同样的生。
毕竟熬至了10触及35分,我们登上了K1278不行列车,下一致站是山西大同。
巧上车,姜来对我说:“我们这次来内蒙古,都并未亲自踏上这里的草地,有硌可惜。”
自说:“没什么可惜的,我们一并达成,能见到重复多之草原,去内蒙古底草野,最好的章程,是自驾,我们且无会见开车,难道在草野上徒步也?”
“我们不能够骑车马为?”姜来问。
“你晤面跨马也?”我咨询。
“不会。”
“那您还是别考虑了。”

当我们的火车徐徐往南开去,我问姜来对山西生什么概念不?他说,不明了,应该充满地还是煤矿吧。
本人说,你擦了,那非被煤矿,那让金矿,挖出来的,都是钱。
立马句话,其实不是自我说之,这是我一个山西底好情人——小于,告诉我的。
他家做煤矿生意,他们无煤矿为黑金。他语自己,小时候,几乎各个一样户山西户,都来家属与亲属,间接或直接地从事煤矿生意。
一经他家,更加疯狂,父辈整个家族,从总到丢,都全心全意地投入到煤矿事业的建设,按照本底术语,应该让煤矿产业链全覆盖,从开煤炭,煤矿器械,到煤矿运输,甚至是煤矿提炼,都当外家族的挂下,蒸蒸日上,红红火火。
他家里有着人都对煤矿有类似神经质的古道热肠。
以山西从业煤矿行业之人,最怕的尽管是面临上矿难,也不怕是所谓的见红,所以,吉祥之新民主主义革命,在他的家门,并无讨喜,他说他俩下,从来不穿红色的服饰。
扭动,也得以设想,他的房,最喜爱的水彩,肯定是黑色。
他及我说,别人家了新年底时刻,挂的都是新民主主义革命的春联,唯独他们家族,用之凡黑色的纸,再配上鲜亮的金漆字。
自无法想像黑色的春联挂在家门口的则,但本身力所能及想象,如果世界一样片漆黑,那该多可怕。

小于是家族里,唯一没有从业煤矿事业的人口,他为了逃离家里人的约,高三回报志愿之时段,他挑选了漫漫的海南岛,毕业后,他捎到了上海做事,从此,和煤矿脱离。
旋即几年,国家积极发展清洁能源,对煤矿进行控产减产,小于家里逐渐从辉煌走向衰落,煤矿关了一个以一个。
仅次于很幸运地逃离了山西,可是,那些跟煤矿相依为命的人头,则无那么幸运,他们只得无力地,和煤矿共没有取得,就如那些,曾经埋藏了众多遗体的,深不见底的煤矿坑。
如此的故事,在山西遍地都是,就如漂浮在山西氛围受的煤屑粉,每一样总人口的呼吸,都带在淋淋的鲜血。
当时虽是自身对山西,简单而强行的记忆。

咱们的火车,从坪草地慢慢驶进高原地区,植被从草甸向常绿阔叶林渐变,人烟和山林一并茂盛。
从呼和浩特顶大同,只待坐4单钟头之列车,在车上小息一会就到达了。

大同总是单小市,火车站等之人啊不多,诺大的广场老冷静。
下午之阳光把火车站广场以得滚烫,大同尽人皆知较呼和浩特要是炎热,我们出站之后,没倒多远就是开冒汗,这同我们当呼和浩特之体感全不相同。
由于火车站广场附近当道维修,我们要乘坐的公交得如活动不行丰富的同段子总长。
俺们坐登山包,在同样长条无人穿行的道路及步履,路旁边还是数小型事业单位与微个体户的门店,店主大多以休养生息,少数晤三老三个别个别聚集于一起打牌,看到咱们走过,也无见面多看无异肉眼。
网上里说山西的GDP已经是全国倒数几誉为,看来也非是呀虚假消息。
起火车站及我们已的青旅,其实不多,我们达成了公交后,姜来咨询我:“你规定这家青旅不是私自旅馆也?”
自己不明了怎么回应是问题,一向为蛇咬,十年怕草绳,可是除了青旅,没别的选择。
既来之则安之,我本着姜来说:“我当大网站预约的,应该不见面生出问题,我看来其小网上评价特别高,虽然不是好有益于,但至少安全产生保证。”
“我耶就顺口一问,反正杀未了我们即便告一段落快捷酒店。”姜来说。

及了青旅,一切正常,老板娘是单可怜年轻的中年妇女,接待我们的时段大和气。青旅里,住客很多,六下方里,几乎停止满人。这家应该是下正规的青旅,我思。
姜来还睡在自之上铺,他初步好上了上铺,他说,在地方,空气好。
屋子不老,三布置左右铺床占据了绝大多数底上空,窗户外就是大同古城的步行街,隔在玻璃也能听见外面商户循环播放的促销广告,就比如于洗脑似。
房间里面只有咱有限独,其他的总人口还出玩玩了。
看日还早,我管姜来打上铺拽下,带他顶青旅旁边的主年古寺庙——华严寺。

自家之学员证明一直派上用场,姜来每次看我所以假学生说明还见面受自身翻白眼,他会见说这样可怜之人还为此生证真不苟脸。
假使无设脸都是下,最紧要之是,我能够看下一大笔钱。
当入口处,工作人员让自己显得学生证,姜来看自己就要被罚,幸灾乐祸地游说:“这年头,长这么一直的大学生也是金玉一见。”
自己乐着吃验票员出示学生证,她看了自己同眼睛,笑着说:“不老不老,这小伙长得水灵灵的,走吧,进去吧。”
举手投足进去寺里面之后,姜来絮絮叨叨地游说:“这个老阿姨肯定是老眼昏花,都28年的人头,还水灵灵的,阿姨对你有意思吧,谢已,要无您便由了阿姨,在山西完美过日子吧,说不定阿姨家是煤矿主,你之后有福了……”

华严寺历经千年之风霜,集结了三望的精髓,在辽代的地基及,清代秀美的盘挽手相连,殿院成林,明代留下来庄严佛塑和牌匾,在静谧的殿里生生不息,寺庙经过时又一时的丁之整,依旧维持正佛性。
堪称国宝的重楼式壁藏就以薄伽教藏殿里。
全国孤例的重楼式壁藏,上层为佛龛,下层为收藏经柜,为了采光和通风,殿后上马了平等粗窗户,窗中间产生相同所小木拱桥左右连连,五间天宫楼阁从左到右分布住着不同的神佛,这是我历来不曾见了的殿中殿。
于殿里,还有三十一尊来自辽代的皇彩塑,每一样尊的神和样子还各不相同,身上的飘袖和衣带自然唯美,婉丽动人。他们身上的彩漆已经颓落,裸露出本的纹路,镇守着华严寺早就多单新春,看到他们,就一定给看了史。
鉴于历史由来,寺庙成了国家重点保护文物,为了响应政府的召唤,不许烧香也不设功德箱,寺中所有的香炉都于杀铁板盖上,没有了功能性的香炉成为纯粹的法子装置。
姜来想烧香拜佛也从不法了。我当就吗甚好之,除了叫寺庙重美好干净清洁,更会吃佛法显得纯粹,所谓的烧香拜佛,不过大凡因欲望之下的吹捧。
寺院里还时有发生同等栋华严宝塔,登塔需要穿上鞋套,我们学及清的鞋套,小心翼翼地移动上前塔里。
当塔底底地宫,有云冈石窟缔造者昙曜的舍利子,姜来隔着相同叠厚厚的玻璃,仔细地摸舍利的身影,所谓的舍利子,其实也尽管是同一粗片白骨头。
供奉舍利子的金塔花纹繁复,华丽极致,围绕以地宫四周的,还有多独稍佛,他们在大街小巷看在咱,佛法全写于他们的眼底。
塔里之梯子非常陡峭,我们那个小心地向上爬,宝塔总共有五叠,其中,三重合明,两交汇暗,明层能移动至塔外,暗层则未可知,寓意着人生明暗有常。
俺们到底终于通过了拥堵的阶梯抵达宝塔顶层,大同古城的风貌尽收眼底。
俺们围绕在宝塔走了平缠绕,在一个聊角落里,还看基督教堂就于华严寺之跟前,寺庙暨教堂看上去关系和谐,看来佛祖和基督,应该是简单单好情人。
透过在线地图,我还发现,在大同古都之中,还有道教,伊斯兰教与天主教,小小的一模一样座古城,居然容纳了五不胜教派,这里吧毕竟得及是教共和国了。
黄昏底凉风习习,姜来说他于佛祖面前许了只愿,我问他字了啊愿,他说不能够告诉自己,不然就是不灵了。
自我说自家并未许愿。
外咨询我为什么。
“三秋那年,父母离婚,之后的各国一样年诞辰,每一样潮错过寺庙祭拜,我只许一个愿,我弗贪心,我只是盼爸妈能再归于好,就如此简单。这个意愿一直陪我交7年度,那无异年,我爸娶了初的内。从那后,我重新为不许愿了。”我说。
“你是不再相信心愿的力吧?”姜来提问我。
“我非相信。那还是自欺欺人。”
“可我深信不疑。”姜来的眸子里倒影着夕阳,他同样眨眼眼,这个世界就毁灭了千篇一律不成,他相同睁眼眼睛,这个世界而重建一次。
“你了解自家刚才许了个什么愿否?我请佛祖保佑,我们必然能打响环游中国。”姜来持续游说。
“我刚好不是暨你说了为?愿望说下就是不灵了。”我说。
“我才未担心呢,我了解我们必将能得逞。”姜来信誓旦旦地游说,他到底能顶出意外的自信。
“我这辈子许的愿望都没有一个实现,你说,我而无苟掉,许一个勿容许实现之愿望也?说不定,就真的能够实现吗。”我说。
“你本还有呀希望?”姜来问。
“我要我们无克成环游中国。”我笑着说。
“什么狗屁愿望,呸呸呸。”姜来为天空呸了几乎生,不懂得口水会无见面滴落至塔下路人的身上。
“这为负负得正,懂不知底。”
“懒得跟你扯,走吧,我们该出了。我如果达城墙看落日!”说了,姜来迅速地研究进小小之梯子,我抢和上来。

大同古都不是生死,也非到底多少,我们于华严寺出,不顶一半钟头就挪及南门城墙。
半路我们尚经过了华太古老的九龙壁,我们收获在挺期待移动进来,却独自发现除了同片九龙壁之外,啥呢从没,络绎不断的旅行团把细的小院占满,我们目瞪口呆了无至五分钟就是走下。
同咱们一齐走下的,还有另外一个黄毛丫头,她盯在姜来,上下打量了一致外来,脸上一体面愕然的神,我觉着其思量使说啊,结果,她回身就挪了。
姜来认为这黄毛丫头莫名其妙的。
“也许人家对您有意思,女孩子总是害羞的。”我说。
“我之人口,没什么意思,而且自己本着它们一些意思都未曾。”姜来头也无转,继续向城墙活动。

我们打南门发表上城墙。
南城墙的瓮城,是四面城墙中极充分的,里里外外一共三双重,翁城外,还有半月造型的月城,重重叠障,拒人总里。
以和平年代,城墙只具有历史之意义,御敌防守的功力都丧失,即便如此,新修的大同古都墙,依旧保留着自时光的得意。
落得了城,每动几十米就是生出相同栋箭楼,箭楼及的灯笼,随着黄昏底亲临,也慢慢点亮。
城墙很丰富,总共发生7.24公里,要是走绕一围,我觉得我会很的。
当我们发现城墙上得租赁自行车的下,我们兴奋得过起来。
当城上骑车自行车,这绝是聪明绝顶的意见。
然而,当我们达成了车,在坑坑洼洼之路面及骑行时,我才意识,这未必是一个好的主心骨,没骑车多远,我之屁股就受不了。
姜来为一律,只是,他于自己明白,他下站于车子的踏板上,半以正,他说,只要屁股不沾坐垫,那即便无会见受罪。
当我们骑车了一半,我见状迎面而来一个女孩子,骑法和姜来同样招来一样,看来它底屁股呢十分为难了。
它圈了咱们一样眼睛,转眼就打咱的身边穿,在斜阳生,我们目光短兵相接,我服气有其,是方以九龙壁遇见的女孩子。
姜来只顾着骑,都不曾理会到它,我及他说自这事的早晚,他说:“你道大同生充分呢?大同就是这样点很,再次相遇也杀正常。”
但是自己老是觉得,这妮子的眼光有接触未合拍,可是,哪里来问题,我而说不出来。

坐臀部痛,我不得不在姜来身后慢慢骑在。
从今南往北,两止的青山绿水各不相同,西边的古都,颓废,残旧,阴沉,是土生土长时代之意味;东边的新城,热闹,新颖,活泼,象征着新世界。
区区独世界当中,高耸的城像是一模一样鸣灰色屏障,或者说,一久斑驳的症结——它将立刻简单只世界相互维系,相互牵连,这是同等种,类似相互寄生的涉,他们谁也缺乏不了哪个。
天涯海角地朝着去,西边的崇山峻岭上发出齐整的风力发电机在运行,他们各转动一环,阳光就深受搅碎成多少片,落于地上的下,已经改成了金黄色的散装,有些会让风吹走,有些会吃人捡走,大部分虽会默默地非常去,这是他俩轮回了无数不折不扣的运气。
日光下山后,城墙上的城楼,角楼,箭楼,统统亮起了黄彤彤的灯光,影子开始在砖墙上盛开。
我们跨到了北门,发现翁城的城上悬挂在一个特大型的雕塑,是一个赤身裸体的胖子,灯光打在身上,浑身发白,姜来观后头哈哈哈大笑,他认为这个雕塑其实是最好折腾笑了。
自身因学术的角度解析,我看就是因超现实的章程对历史进行奚落,不温不火,“圆润”且方便。
姜来说任不掌握。我把这话翻译成“中文”告诉他:
“这就是是瞎鸡吧扯蛋。”

跨到西北角,正在翻修的城还尚未拼,无法持续上扬,我们回头返回,还了车子,从东门活动下城。
星夜,城墙上还有游客在出游,大妈大爷在东门底广场放正音乐,整齐地过着广场舞蹈。
自身想起了在天津海河际看到的广场跳舞,准确地游说,也非克被广场跳舞,因为她俩同意是一贯地立在一个地方。
他们多哀号口,排成一列,走以无限前方的人数背着音箱,用麦克风指导着后的人流,后面的食指随后他,沿着河边一边手舞足蹈一边活动着,不知情的口还看这是什么邪教组织在练功为。
那么时候姜来还他们得了单特别诗意的讳——蛇舞。

晚底旧城特别安静,小市的夜间为主如此,没有过多之吵闹,也非会见过度繁华,一切所得其所。
归来青旅,楼下的步行街商铺为都关门了。
姜来于床上,把咱旅游中国底故事分享给与房子的伙伴们,姜来讲到兴奋之当儿少眼会发光,当然,也必不可少加盐加醋,讲到尾的时候,那都是一个天马行空的故事,我赶快打断了外,让他赶忙睡。
仲时时还未曾亮,我深受醒了尚以梦幻被的姜来,同房子的总人口还在梦乡,有的在呻吟,还有的以游说正在梦话。
俺们到楼下快餐店吃了早饭,穿过西门,上了公交车,准备赴云冈石窟,我来大同之重要目的,就是为着她。
今天色阴沉,大地和皇上融为一体,都是暗淡的。
咱们以了一个差不多时之切削,终于抵达了云冈石窟。

云冈石窟不殊,为了给山水还产生可看性,在石窟外面还挖掘了一个人工湖,人工湖及是相同所新盖的庙宇,这些人工搭建的新景观,当年早已吃国家文物局叫停,据说是担心湖水蒸发,会指向石窟岩体造成不可挽回的毁坏。至于为什么还能建成,也许是政治以及经济中及的某种妥协吧。
当,若干年过后,这些新造之青山绿水,也许又见面再也变成新文物,历史嘛,本来就是是一个妙趣横生之循环。

走上前洞窟,我终于盼了原始人对佛法之解,他们吧无形之佛赐予各色各样有形的千姿百态,用抠于石上之故事,循循导人向善。每一样尊敬佛像,每一个花纹,每一样轴壁画,甚至每一个笑容,都深藏着麻烦言喻的神性,空气中,除了漂浮着的煤尘,还有佛的恒心。
洞窟依山而打,从北魏暨今天,已经出一千几近年的历史,时光凝固在石块上,记录了总年之风雨。
第二十窟的大佛在云冈石窟的极中央,裸露在他之释迦坐像面象祥和,目光慈悲,俯视着云云众生,可是,第二十窟的大佛并无是极端可怜的。
最充分之佛像,其实藏于吃半座山覆盖的老三窟里,可是,唯独光明普照的第二十窟获得了极多信徒,他们以很佛面前烧红跪拜,认真诚恳。
姜来站于大佛前面,双手并十一拜。
“这次许了哟愿为?”我问。
“没有字。在华严寺许过了。”他说。“我要是佛祖,我呢会烦。”
我笑了。

蓦然,我见到站在姜来边的,是我们昨天片坏相见的女孩子,她手合十,头小低着,闭着双眼,无声地念道,好像在念经。
自因此眼神向姜来表示,姜来回过头看了瞬间,默默地游说了句:“都第三差碰到这女的了,她怎么阴魂不散。好吓人。”
姜来看自己已低于了音响,其实并无,他的言辞被女孩子听到了。
它们睁开双双眼,走向前,小心翼翼地对姜来说:“你……是姜来呢?”
姜来给吓了一跳,连忙问:“我是,你是……?”
“你果然是独坏傻逼,姜来,我是年莲,你莫记我了吧?”

游了云冈石窟,我们并回到了市区。我们是凭——我,姜来,年莲。
在回的车上,姜来与自身晾在单方面,和年莲有说生乐。
原,年莲是姜来的小学同学,他们自小学毕业后,就再为无见了,十几近年以后的今天,他们当永的山西大同,以死偶然的艺术再次相遇,当姜来听到年莲这个名字的时,他激动地和她相认,这种久别重逢,看上去确实值得恭喜。
“谢已,我报告您,年莲是自己小学的好对象,从小学五年级开始,她即使从头追逐我了。可我本着它们一些兴还无,一直不肯其,可是,她那么孜孜不倦的饱满……”姜来刹车了瞬间,卖了个点子。
“…….最终还是无会撼动自己,小学毕业之后,我们便再也为从没见面了。”姜来毫不掩饰着温馨以往之自豪,当着年莲的面说。
“你及时口确实不见面说,哪起您这么的丁介绍对象之。”我说。
“没关系,没干,我从小学二年级就认识姜来,他那么道,我不过知道了。”年莲长发飘飘,长得不可开交甜美,说话的声音特别晴朗。
“所以我说得没错吧。你什么,从小开始就无加大了我,果然就是是阴魂不散。哈哈哈。”姜来说。
“我起九龙壁出来,看到了若,那时候我还免承认你是未是姜来,我觉着自己眼花了,毕竟十多年没见了,我狐疑自己看错了,于是,我转身就挪。”
“第二潮以城上面骑自行车,我远远地便看您了,你注意着跨单车,没顾本人,但自己凝视在公,看了特别长远很遥远,我心里面在怀念,难道他真正是姜来?但上无限暗,我或者不确定。”
“直到今天白天,第三差相遇你,我才认准了您就是是姜来,隔了如此老,你要那么的可以,看来当年底自,眼光还是甚据的。可您的人性一点吗未尝换,大白天乱说人家坏话的秉性或老样子。”年莲笑着说。
“这点自己同意,他的嘴巴好像是得矣帕金森综合症,没法治。”我笑着说。
“嘿嘿嘿,嘿嘿嘿。”姜来尴尬地笑起来。
“年莲,我和你赔礼道歉,你知道我一直是口直心快,心善嘴贱,怪我未曾观点,没认出你,谁叫你本添加得如此美,换做是其他人,我相信呢认不出来。”姜来说。
及时话听上像是道歉,其实是更换在法在赞年莲,年莲听了事后,心花怒放。
“嘴甜舌滑的铁。要是你十大抵年前应自己的追,你本即使足以占据我之抖了。可惜现在,你本莫机会了。”年莲说话的早晚,不留心起撩起协调的头发,阵阵抚媚从头发流露。
“没悟出,你长大了以后为与自同不若脸。对了,你怎么也来大同了?”姜来问。
“这题目,我呢要是问你呀。你怎么也来大同了。”年莲反过来问。
“我们以出境游中国也。我们且已经出去挪了尽快一个月份了。”姜来骄傲地针对正在年莲说,声音亮畅快,车上的总人口且闻了。
“这么厉害。我是来大同散消,我正要准备离呢。”年莲若无其事地协议。
“离婚!离婚?”姜来重新了有限满以确认好从不听错。
“对,你未曾听错,我如果离婚。像自家如此妩媚动人之老婆,当然就结婚了,大学毕业没多久,我哪怕结婚了,这都或多或少年前之转业了。你呢?老婆孩子尚好啊?”年莲问。
“什么老婆孩子,我还从未结婚也,老子才26载好不好,”姜来骄傲地说。
“你们男人不怕是好,越老越吃香,不像我们这些女人,要是过了25东还从未嫁出去,那就是是上死之天灾人祸了。”年莲说。
“可若这样早嫁出去,现在休也是使去婚么?对了,你干什么而离婚吧?”姜来问。
“说起来,很复杂。到站了,我们下车吧。”年莲主动带在姜来手,下了车,他们之涉嫌,难道就提高了?

回市区就是傍晚,年莲带我们交同家大精美的山西饭店吃晚餐,她点了满桌的面食,饿了同龙的我们,吃东西的时段就是比如三特饕餮,山西果然是炎黄面食的都,只有你意外,没有举行不出去的,当我视灿烂的面食在我眼前,我豁然想起了一如既往句子广告词:
世界面食在炎黄,中国面食在山西。
姜来以及年莲聊得动感,点了一如既往瓶子山西极端出名的汾酒,我惊奇地尝了同样人,辣得自全身发烫,白酒实际是极端吓人了。
他俩俩吆喝得淋漓畅快,年莲的体面就通红,据说喝酒脸红的人数实际上最好无入喝,得咽喉癌,食道癌,胃癌的几率领是常人的几十倍增。
自我耶是只同吆喝酒就会见体面红的人头,所以自己弗易于喝酒。有人因此称自己特别会保养,其实,那只是是自个儿本着体自私的另外一栽表现方法。

“姜来,你现在发生女对象啊?”借着酒意,年莲尝试再次深刻地问询姜来,当一个妻子问另外一个男人来没发女性对象,这纯属是司马昭之心。
“没有,我觉着一个人口特别好之。”姜来随口就回应,看来他未掌握女人的意念。
继,年莲问了一个,那恐惧自己此路人听了吗最好尴尬的题材,她说:
“如果自身离了,你肯跟当今底自我在一起啊?”她刻意将“现在底自己”这几只字说得专程重。
姜来先是呆了愣,然后哈哈哈大笑起来,餐厅里之人还听见了。
“废话,当然是未情愿了。这当是本身先是主零碎一如既往浅的不容吧。”
“姜来,你或那么讨人厌,一点且无见面迁就别人。”年莲摆来了平入臭脸,可立刻幅臭脸,也是喜人之丑脸。
“下次亦可转换个噱头也?从五年级至现行,你还免放开了我哟。”姜来借着酒气,坐在年莲身边,右手搭在她底肩头上,就像个别单好哥们儿。
“臭流氓,放开而的咸猪手,什么让不放了您,我只是有夫之妇。”
“可您快速便得解脱了。”
“哎,别提就破事了。来来来,喝酒喝。”年莲拿起酒杯,发现中已经没有酒,我快为它们酒杯倒满酒。
“对了,姜来,你吗从没和自家优介绍你朋友。你们是怎认识的呦。”年莲对正值姜来问道,姜来将昨晚叙让青旅小伙伴的故事复述了同一体,姜来每次说话故事,都用一味各种夸张的修辞手法。
尽管像其他人一样,年莲也任得入神。
“谢已,姜来,你们两只底阅历足够写一本书了。我真正佩服你们。”年莲说。“可是,我毕竟认为,你们的故事,好像差了点什么。”
“什么东西?”我同姜来异口同声地发问。
“差一个阴主角!”年莲说。
本身及姜来面面相觑,姜来和本人的想法应该是如出一辙的,这是咱近年来才起之默契。
“难道,年莲,你是,想当以此故事中的,女主角?你该不会见,想和咱们并出游中国吧?”我特别认真地发问其,我希望不要让自己说遭,千万切。
“什么什么,我才无甘于与你们住青旅睡火车每天累得像只狗似的。我是纪念说,你们只要无苟放我的离异故事,你们要是是摹写环游中国之回忆录,我之故事,应该会以中,占一座位吧。”
自跟姜来松了一样丁暴,原来它仅想拿故事分享给咱们。
中原老大死,环游中国底征途大狭小,两丁同行,已经是极限了,三人同行?我之上什么,我真正不敢想象。

年莲喝了一整瓶汾酒觉得还不够过瘾,提议我们转移个酒店喝酒。
我们看了下日,已经快十一点了,明天朝还要等到火车,我们拒绝了其的请。
“年莲,今天同公久别重逢,我特意喜欢,但是,我们明天清早将要出发,我实在不可知重喝了,明天自而是起不来,那就算夭折了,谢已会把我十分了。”姜来说。
年莲跟着我们走来餐厅的大门,走路摇摇晃晃地,就如相同独自醉醺醺的企鹅,她于食堂门口拉正姜来不放,姜来同样面子无奈地看正在自己,他在向自己求救,我爱从未能助。
说时迟那时快,年莲坐在地上,哭了四起,哭得撕心裂肺的。
自我同姜来不久拿其援她到饭店外,姜来说我们错了,我们去酒吧陪你喝,你不用哭,你绝不哭。
咱们像哄孩子同一安慰着它们,可是它们一样句子话也无说,除了安慰她,叫她未苟哭之外,我们都不明白该说啊好,刚才还漂亮地,怎么突然就哭起来,我与姜来还无语了。

借着路灯,我来看长发之下的其,妆容已经哭花,泪水在眼角下开辟了同样漫漫流向悲伤的河床,河床下是月经及肉,她底楷模,让丁专门同情。
它缓了苏,抬起峰,用一度哭肿的立即着咱,她哽咽说着吃丁最惋惜的言辞:
“你们会陪同我回来办离婚手续也?我一个人数,实在撑不下去了。我求你们了。姜来,谢已,我求求你们。我…真的深了……”
说话还尚未说了,年莲就晕倒在地上,准确地说,应该是醉倒了,她一样身酒气,即使多隔三米之外,都能够闻得到。
路边走过的总人口,看了我们同样眼,迅速地离,事不拉自家,高高吊起于。
“现在怎么收拾?”我问姜来。
姜来把年莲的条放在自己的坏腿上,他轻轻地地摇头了摇其底峰,除了散落于地上的发在袅袅,还是没影响,她的宁静的呼吸声是唯一证明她还活着在的印痕。
“这一瞬间,我为非懂得该怎么惩罚了。”姜来好无奈地说。
年莲的提包被甩到路边,我走过去,捡了归来,手提袋的扣子没有看好,往上一致提,里面东西便全滚下,眉笔,粉饼,钱包,驾照,各种杂七乱八的事物混杂在协同成为了单杂货铺,当自身还以动脑筋正,为什么女人的包包会这么复杂的时候,我见到伴随在一堆化妆品一并丢掉得于地上的,还有雷同管手掌那么长的刀,哐当一信誉,清脆响亮。
口红,绝对是一个太太最有甚伤力的枪杆子,这管武器,几乎每个女人之担保里还具有。
然,年莲比其它的贤内助再次复杂,我从来没有见了哪个家里会在管里放平管刀子。
姜来也盼从保证里遗落下的刀,吓了一跳。
年莲的右侧垂在地上,姜来管它们底手抬起来,借着路灯暖黄的但,仔细审视,看罢后,他相同面子惶恐。
自己赶快将地上的事物同湾脑丢到管里,走至年莲的身边,姜来抬起其底手段,我看来姜来脸上的惊惧的出处。
年莲的手腕上,好几志刀割的疤痕已竣工了痂,鲜红的疤痕相互纠缠,如掌纹一般根植在招上,如果没有错的话,这应当就是是风传着之自杀未遂。
一经伤感是种传染病,被染的,肯定是左边。我打年莲的左,果然,左手上面吧一如既往布满疤痕,两就手腕,已经被百相似摧残,看无发出原来的师。
现今,这种无名之传染病也走至自家身上,自从我触碰到年莲的手,身上的各一个毛孔,就开始不歇地打哆嗦。
本身忽然想起,刚收拾东西的时段,有一致布置快捷酒店的房卡在自身眼前一闪而过。我急忙将管里之东西尽数相反出在地上翻找,那把获得满血腥的刀子也夹杂在中,姜来把刀自杂物里挑出来,翻过来翻过去看了几乎肉眼,然后,他把刀扔到一旁的垃圾箱里,刀在半空中转了几圈,经过了同一长长的圆润的抛物线,准确地取得于了垃圾箱里。
本身拨一堆化妆品,找到了房卡,房卡上面写着酒店的地址,酒店的职,就以咱们青旅的阴。
自与姜来当路边拦了同样部出租车,把年莲抬上了车后,我深受司机带我们到年莲住的小吃摊。
大同古城不怪,出租车开始不交5分钟就到酒楼了。
酒吧没有电梯,姜来只好坐年莲,艰难地向上爬,酒店的屋子号特别想得到,年莲的房间,位于20/3/1如泣如诉,这不是凭2楼31哀号房,而是靠第20下分公司/3楼/1号房,这意味,我们如果爬上3楼。
尚好年莲不还,姜来还是能一举把其背及3楼,房间的门口挂在雷同片请勿打扰的牌,应该是年莲出门的时候挂及失去之,我把她拿走下,打开房门,重新将它挂及。
姜来把年莲丢到床上,喘了点滴总人口大气,我看来他满身都在冒充着热气,像一个正好出炉的馒头。

开拓灯,我看到的,是一个双人房,我无顶理解为什么它一个丁也只要自然双人房,在自眼里,她连无是一个太太,而是多只问题的集合体。
房里的衣物到处都是,胸罩和内裤随随便便地抛弃在地上,马桶上,卫生间的地方,还有同片刚用过的卫生巾,上面得到满了鲜血,已经发黑,洗手盘上面的护肤品,化妆品,堆成一所小土丘。
都凌晨12接触了,时间吗不早了。
自问姜来:“我们而无扭转青旅吧。”
姜来没说,看正在年莲,陷入了考虑。
“要不,我们今天夕就算以此间睡吧,反正这里出少摆放铺,我们可以看一下她。”我说。
姜来只说了一个好字。
姜来帮年莲脱掉鞋子,盖好了被,还精心地,将它们头上之头发理了理,她看起来,就比如童话里之睡美人,可是,这样的绝色,为什么而自残,我确实想不通。
姜来说他不困,让自己先睡,他将房的灯关上从此,坐在沙发上,打开电视,调成静音,电视里播放着本地电视台的电视节目,中间还插播着深夜电视购物广告,广告里之召集人嘴巴张得气势磅礴,表情特别长,他们正声嘶力竭的叫卖着保健品,收藏品,奢侈品……
静音之后,他们都变成了哑巴,也许只有聋子才听到他们的讲话。
姜来于屋子里点了同一根本烟,一呼一吸之间,火光或明或暗,就比如相同止萤火虫火虫,电视屏幕发出的蓝光打在烟及,烟雾把姜来的颜笼罩,渐渐地,我看无清姜来了。
睡在床上,眼睛目不转睛在电视的屏幕,慢慢夺了热点,我是一致令老相机,快门和光圈都松弛了,我记得自己夹目拍下之尾声一幅画面,是姜来默默抽烟的规范。

 

第十三回(-):鱼城

圈在自我身边的,是四修金鱼,金鱼的水彩对承诺正在风,火,水,土四种植因素。
代表风的金鱼是一朵云,隐约看到轮廓,在它身边有稀有风暴包裹正在;
意味着和的金鱼是同一团火,像燃烧在的火种,火苗在它们身上四处乱窜;
代表和的金鱼是如出一辙摊海,水花源源不断地不断从其身上溅起;
代表土的金鱼是一律片泥,干枯的标上所有了裂痕,碎泥成了灰纷纷扬扬。

她们于自家的身边,就像四充分保安,形影不去,当我怀念点碰他们之时光,他们见面火速游走,手收回来,他们还要自行游回。
“你好幸运。”一个老头子走及我的身边对本人说。
外满头白发,脸上的深壑的皱褶都可以勾兑死苍蝇,黑色的老前辈斑比太阳黑子还要黑,他凭借着拐棍,走路非常缓慢,每走相同步,都像过去了一个世纪。
“为什么自己是万幸的?”我反问他。
“你有所了这宇宙,还不够幸运吗?”
自我于四周看了拘留,我真正站在相同切片荒芜的地,寸草不生,如果说自己有了这宇宙,那自己是宇宙也不休太特别了。
老头子用拐杖戳了穿我身边的金鱼,他们火速地躲开,游及自家之身后,就如四只小孩,看到陌生人,会害怕。
“死亡是以此宇宙里最为自私的红包。它从未慷慨,但也没有吝惜。你刚好沾了其,随之而来的,就是初的天体。”
“你是说,我死了?”
“不不不,在无边的自然界里,从来不曾人能够确实地十分去。死亡而大凡个经过,不是归根到底点。每一样不成死亡,随之而来的,都是崭新的新兴,而你,拥有的,就是一个属您的新的宇宙空间。”
“这是自己的自然界?”我大怀疑自己好来无出听错,这种话语,进了哪个之耳根,都见面当不可信。
“是的,你的,全部,都是若的。”老头子背对在自,把拐杖插进地里,抬起峰,举起粗糙的手,他的动作,有相同种宗教仪式感。
“那你干什么会冒出在自之天体里。”我本着在他的背影说。
外把放下,回过头,对正值自家说:
“你这题目,问错了。再提问一样举。”
自我来接触疑惑,但自我要么论做了。
“为什么我之天体里,只有自己及你?”
“又错了。再来。”
身边的鱼继续在空间游在,他们开展的规范让自己回忆了小时候之协调,如果全的想还来生死,那么,唯一的题材,也只是关于生死本身。
“为什么,你还不曾怪。”我咨询了一个听便上类似不极端礼貌之题目,可自己只好想到这个题材。
“你算问到问题上了。”
外赖着拐棍走及自之身边,离我只有一个拳的离,我们过分接近,空气受,我居然能闻到他嘴里陈年的含意,是一亿按历史书焚化过后的明智之意味。
“我便是若创造的总人口,你想我很,我不怕很,你想自己生,我就算生活。”他说道的话音带在安静,我力所能及任出他说话里,那种主仆的味道,是温和的从,一心一意的从。
“如果立刻是本身之天地,为什么这边呀还不曾,只有你?”我问问。
“因为若的中心,现在啊还不曾。”
“那您到底是何人啊?”
“我是你的老师,我是若的兆,我是你的明智,我哉是公的雇工,你创造自己的时,就是这样定义自己之。”
“我是什么时候,创造而的?”
“在您用自身的下,你就是创办了自身。”
“我呀都可以创建?”
“对,你的金鱼会为你创造一切,他们即使是这个世界之着力造型,有矣她们,你什么都得以创建。”
立即话听起挺让人兴奋,创造一切?那自己弗纵是神了?
“我怀念只要一律长长的河流,一长条流向天空的江。”我说。
季久金鱼动起来,一眨眼的功,一长巨大的河里就起在自己之身边,河流无视着地力与天地规则,向天奔流。
老头子笑了笑笑,什么还不说。
“我怀念只要一如既往栋结冰的火山。”
爷们笑了笑,什么都非说。
“我想如果添加满鱼鳞的鸟。”
老伴笑了笑,什么都未说。
“我眷恋使平等幢黄金之的坞。”
爷们笑了笑笑,什么还非说。
“我想要…….”

自身花了好丰富日子,从零散届出,把一个整机的世界创造出来,这里来一切我怀念如果兑现之好奇事物,身边的荒废早就没有,取而代之的是一个毕陌生的世界,一个特抱在幻想着之社会风气。
自家看正在他俩,却怎么还乐意不起。
是世界,无论由什么角度看,都专门之违和。
添加在腿的蛇在街头巷尾爬行,八只乳房的贤内助与来三彻底阴茎的汉子在赤裸裸地做善,空中的UFO不断掉落奇形怪状的外星人,天空蒙飘荡在一座座山,山底还有成片的荒漠,会喷火的狗还有会自己烹饪的猫,这不是一个健康的世界,可是,这就是是自我眷恋要之世界?
当场底好奇心已经破灭,只剩下和夫世界无穷无尽的后悔,当自身思念咨询老伴,有没起法子重新又来之时刻,他就一去不复返得没有。
“我想如果老头子重新出现。”
老头子还是无出现。四久金鱼吧同并没有了。这个世界,好像已经改头换面了,我更为无法更改。
自身站于这世界之最好上端,以上帝的看法看正在自创建的合,我的子民,我的国度,我之辰,我之宇宙空间。
当即就是是自我之社会风气也?这真是自之世界为?

自己忽然想起老头子的言辞。
也许我可怜了,这所有就好重头再来,我思使死。
自我纵身跳下,一心寻死,我理解,自由落体运动最终见面叫本人带一个崭新的大自然。
自我坚信不移。

目录 《绝对光年》小说

未完待续,欢迎关注!(14/31)

至于作者:
aloho
。定位为一个幽伤主义的诗人。男,在大上海生活,正为三字头奔赴,搞了摄影和电音,做了网金产品经营,偶尔是一个但开LOGO的平面设计师,拥有一个最好连载的私诗计划[aloho的床头诗]

2016年云游中国,回来后克服了一样年描绘以半记实半虚构的小说《绝对光年》,自诩这是相同仍魔幻主义公路小说。

【文章索引】

  1. C3D文件格式的布局
  2. C3D文件头之构造
  3. C3D文件参数集合的布局
  4. C3D文件数量区域的组织
  5. 采取C3D.NET读写文件示例

 

【一、C3D文件格式的结构】

先是说C3D文件整体不是生复杂,也未曾多犬牙交错的定义,C3D的文档格式可以从那官网下载或在线阅读。首先C3D文件是因Section为单位存储的,每一个Section固定啊512字节。Section一定是本顺序存储的,不过有意思的凡,Section的序号是打1方始之,而无是0。C3D文件分为三片段,分别是Section
ID = 1的C3D文件头(固定啊一个Section,512字节),Section
ID一般等2(在文书头内见面受来)的C3D参数集合以及Section
ID不清楚当几(在文书头和参数集合中还见面受闹)的C3D数据有。

但C3D也发充分复杂的地方,一个是有关整型的行使,可以行使应用有标志的(Int16),也足以以无符号的(UInt16),只不过后者会积存的数据量要多片而已,既然这样,不知缘何当初还要用闹号子的整型。而且最好重大之凡,文档内没另外标识能指出文档使用的凡何种整型。官方给起底缓解办法是,可以依据例如帧总数、帧索引等判定,如果念来负数,则以无符号的,否则用闹号的。

别一个凡C3D文件能够于不同品种的CPU上变化,这表现被不同CPU可能应用的字节序(Endian)和浮点数字不同,比如大家用的CPU都是使Little-Endian以及IEEE754的浮点数标准。从网上查还发现发生DEC
(VAX)以及IBM等CPU采用不同的浮点数标准,详见我事先同一首稿子:http://www.cnblogs.com/mayswind/p/3365594.html。而C3D则是永葆3像样CPU,Intel
CPU采用Little-Endian以及IEEE754标准的浮点数,DEC
(VAX)采用的Little-Endian以及故意的浮点数,MIPS
(SGI)采用的Big-Endian以及IEEE754标准的浮点数,所以于读取文档的时节恐怕得格外开展处理,在第三节会详细说明。

 

【二、C3D文件头之布局】

先是来说第一局部,也尽管是C3D的公文头,C3D的文书头一定就占1个Section,即一定的512字节,所以如果读取前512字节就可以将全头数据获得到了。虽然每个Section有512字节的多,但是对于C3D的文件头才占了挺少之同一局部,在文书头挨产生雅量空的区域。其中第一有些凡文件头参数有,内容如下:

字节 类型 说明
00H Byte 参数集合开始的Section ID(通常为0x02,但也不一定)
01H Byte 文件标识(固定为0x50)
02H-03H Int16 每帧里3D坐标点的个数
04H-05H Int16 每帧里模拟测量的个数
06H-07H Int16 第1帧的序号(最小为1)
08H-09H Int16 最后1帧的序号
0AH-0BH Int16 最大插值差距
0CH-0FH Single 比例因子(正数表示存储的帧为整数帧,负数为浮点帧)
10H-11H Int16  数据区域开始的Section ID
12H-13H Int16 每帧模拟采样个数
14H-17H Single 帧率

在此之后的老二组成部分,也不怕是储存的波,听上应该占据多字节,但是由于限制了轩然大波数量极其多无克跨越18独,同时事件名称最为丰富吗4字节,所以事件部分吗只是占好少之半空中。由于C3D主要是以记录运动的数额,可能于里面起无数于重要的地方,事件便用来标记出这些地方的。一个事变包括三独内容,分别是无限丰富四字节的风波名称、一字节的轩然大波是否应显示的状态及一个四字节的只有精度浮点数表示事件出现的日子。

字节 类型 说明
12AH-12BH Int16 事件名是否支持4字节(支持为0x3039,不支持为0)
12CH-12DH Int16 事件数量(最大为18)
130H-176H Single[] 按事件顺序存储的每个事件发生的时间(第1个帧为0.0s)
178H-188H Byte[] 按事件顺序存储的每个事件是否应该显示(1为显示,0为不显示)
18CH-1D2H Char[] 按事件顺序存储的每个事件的名称(每个事件占4字节)

 

【三、C3D文件参数集合的构造】 

C3D文件存储了大量的参数,其采用了看似目录的计囤了参数,不过还好不过出一级。即参数有只有参数组和参数,并且每个参数组里只能发出参数不可知重复包含参数组,每个参数必须以一个参数组内。参数集合起始于文件头被之率先只字节表示的Section
ID,通常为2,但是也非必然,有的文件会以文件头晚留下起空白,然后参数集合起始的Section
ID就延期了。所以判断是否也C3D文件千万不要同开始读进去个Int16然后判断是免是0x5002,而自然要看清第二单字节是未是0x50,确定参数集合的职位为肯定要是依据文件的首先许节来。

而对参数集合,开头的4字节概念如下:

字节 类型 说明
00H Byte 第一个参数所在的Section在整个参数集合中的位置(通常为0x01,说明开头4字节之后就是第一个参数)
01H Byte 参数集合部分标识(固定为0x50)
02H Byte 参数集合所占Section数量
03H Byte 生成文件的CPU类型(0x54为Intel,0x55为DEC (VAX, PDP-11),0x56为MIPS (SGI/MIPS))

里头前2个字节官方说一直忽略就实施,但是以配合于写入的时节还是如写进的。第3配节其实我们本梯次读到头也无待这数额。这中间第一之凡CPU类型,由于不同CPU类型采用的许节序以及存储的浮点数字有所不同,所以我们还需基于CPU类型进行相应的处理。

对于Intel和DEC生成的文档,都是使Little-Endian字节序存储的文档,所以毫无疑问要是用Little-Endian来读取Int16、Single等种类;而MIPS则运用的Big-Endian字节序存储文档,所以在读取的下肯定要是一口咬定时计算机默认的字节序以及文档采用的配节序。

倘若对Intel和MIPS生成的文档,对于浮点数字的囤积都是使标准的IEEE754浮点数字,对于.NET而言不需进行其他处理;而DEC生成的文档则使用特有浮点数,需要用4独字节全部读取以后再也进行超常规之更换,转换方法见自己前的文章:http://www.cnblogs.com/mayswind/p/3365594.html。

在这之下就囤在富有的参数了,参数分为两类,分别是参数组和参数。

对此参数组,要存储以下6独内容:

字节 类型 说明
00H SByte 参数组名称长度(如果为负数则表示该参数组锁定请不要修改,而长度为绝对值)
01H SByte 参数组ID的负数
02H – … Char[] 参数组名称(仅包含大写字母、0-9以及下划线_)
… + 1 – … + 2 Int16 下一参数组/参数的偏移(包含本内容的2字节)
… + 3 Byte 参数组描述长度
… + 4 –  Char[] 参数组描述内容(ASCII码)

C3D文件并未规定一个参数组后边跟其余一个参数组还是暨该参数组里的有所参数,所以读取的时段要专注下。而参数的情虽然跟参数组基本雷同,只是在产同样参数组/参数的撼动与参数组描述长度之间存放着该参数的骨子里多少罢了,由于位置描述起来最为难为了,这里虽非写了。

字节

类型

说明

前面的内容

 

Int16

生一致参数组/参数的皇(包含本内容之2字节)

 

Byte

参数存放内容之类别(-1 Char,1 Byte,2
Int16,4 Single),绝对值即为长

 

Byte

参数内容维数(0-3)

 

Byte[]

参数每一样维大小(如果维数为0,就从不这个有)

 

Byte[] 

参数实际内容

 

Byte

参数组描述长度

而后的情

这边要验证的就是是,由于参数可以存放数组,所以多了维数的标识,即当维数为0时,存放的情节呢Char、Byte、Int16、Single等转移出底字节数组;而当维数为1常,存放的也Char[]、Byte[]、Int16[]、Single[]当易出底字节数组,以此类推。而对数组的贮存,其实就是是数组每个元素依次进行仓储,而对多维数组,则是按行优先开展仓储的,比如三维数组,先囤Data[0,0,1]再存储Data[0,0,2],依次类推。

不过用证实的凡,对于Char[]以及Char[,]即时半种植,如果表示的话语实际该相应之是String以及String[]。

 

【四、C3D文件数量区域之布局】

C3D数据区域为帧为单位寄放的,其实一定给此区域就是一个轴的集结。而C3D帧其实分为两种植,一种是整数幅,而另一样栽是浮点帧。这两头的区别在,前者存储的享有内容还是Int16,而后人则也Single,除此之外,前者的3D坐标点(X、Y、Z)还亟需倍加比例因子才得以,而后人存储的内容相当给已就以了百分比因子了。

数量区域开始于参数集合中的”POINT”参数组中之”DATA_START”参数,其表示数据区域开始的Section
ID,除此之外,在文件头挨为发出平等客副本。不过以法定的说法,如果文件头与参数集合中都有些内容,优先读取参数集合中的数额。

对此每个帧,又富含两独片,第一有也3D坐标点部分,第二片段也仿照采样部分。

  • 对此每帧的3D坐标点部分,存储方该帧所有3D坐标点的数额,每个3D坐标点包括4独Int16要么Single数据,分别是X坐标、Y坐标、Z坐标以及Residual和Camera
    Mask,其中Residual和Camera
    Mask共占用一个Int16。比较好玩的凡,对于浮点帧,Residual和Camera
    Mask仍然为或一个Int16,只不过存储的上如果拿相应之数值转换为Single再开展仓储。

    • 于浮点帧,存储的X、Y、Z坐标就是其实的坐标;而对此整数轴,存储的X、Y、Z的坐标还亟需倍加比例因子才得以,比例因子存储于参数集合中之”POINT”参数组吃之”SCALE”参数。
    • Residual和Camera
      Mask共占一个Int16,将那个更换为字节数组之后,高位字节(第1单字节)的万丈位表示Residual的标记,即意味着该坐标点是否管用,如果为0虽说象征中,如果为1尽管意味着无效,而剩余的7单字节则也Camera
      Mask,每一样个代表一个摄影机,从没有到高位分别表示7独摄像机是否使用(为1呢运用,为0乎未以)。而Residual的真实数据虽然也字节数组的第0字节乘以比例因子(浮点帧则也比例因子的绝对值)。
  • 而仿照采样部分,则存储在该帧所有的模拟采样的多少,不过每个帧可能含有多单拟采样,同时每个模仿采样可能而含有多单channel,存储的多寡就是为该channel下记录之数。不过存储的数码和实际的多少还索要基于下述公式进行折算,其中data
    value为存储的数目,real world value为实际的数额。

    • zero
      offset可以从”ANALOG”参数组中的”OFFSET”中取,该数量也Int16底反复组,第i位据的即使是第i只channel的zero
      offset。
    • channel
      scale可以由”ANALOG”参数组被的”SCALE”中落,该多少吧Single的累组,第i位因的哪怕是dii个channel的scale。
    • general
      scale是具有拟采样都得倍加的百分比,该多少可自”ANALOG”参数组吃之”GEN_SCALE”中获取,为Single。

    real world value = (data value – zero offset) channel scale general scale

 

【五、使用C3D.NET读写文件示例】

前方说了这么多,其实只要用C3D.NET来分析的话语实际是非常简单的。大家可从https://c3d.codeplex.com/下载C3D.NET底二进制文件要源码,引用后根本的切近都当C3D这个命名空间下。

对遍历所有的3D坐标可以运用以下的办法,首先可以自文本要打流中创建C3D文件,然后打文本头着读取存储的第1帧的序号,然后读取采样点的数码就是好了,当然也可以不自参数组中读取,直接运用file.AllFrames[i].Point3Ds.Length也可以:

 1 C3DFile file = C3DFile.LoadFromFile("文件路径");
 2 Int16 firstFrameIndex = file.Header.FirstFrameIndex;
 3 Int16 pointCount = file.Parameters["POINT:USED"].GetData<Int16>();
 4 
 5 for (Int16 i = 0; i < file.AllFrames.Count; i++)
 6 {
 7     for (Int16 j = 0; j < pointCount; j++)
 8     {
 9         Console.WriteLine("Frame {0} : X = {1}, Y = {2}, Z = {3}",
10             firstFrameIndex + i,
11             file.AllFrames[i].Point3Ds[j].X,
12             file.AllFrames[i].Point3Ds[j].Y ,
13             file.AllFrames[i].Point3Ds[j].Z);
14     }
15 }

设若读取模拟采样的话,采用的法为类似:

 1 Single frameRate = file.Parameters["POINT", "RATE"].GetData<Single>();
 2 Int16 analogChannelCount = file.Parameters["ANALOG", "USED"].GetData<Int16>();
 3 Int16 analogSamplesPerFrame = (Int16)(file.Parameters["ANALOG", "RATE"].GetData<Int16>() / frameRate);
 4 
 5 for (Int16 i = 0; i < file.AllFrames.Count; i++)
 6 {
 7     for (Int16 j = 0; j < analogChannelCount; j++)
 8     {
 9         for (Int16 k = 0; k < analogSamplesPerFrame; k++)
10         {
11             Console.WriteLine("Frame {0}, Sample {1} : {2}",
12                 firstFrameIndex + i, j + 1,
13                 file.AllFrames[i].AnalogSamples[j][k]);
14         }
15     }
16 }

除去一次性将C3D文件内容全方位读取出来的这种方法外,还得采取C3DReader来一帧一帧的读取。

 1 using (FileStream fs = new FileStream("文件路径", FileMode.Open, FileAccess.Read))
 2 {
 3     C3DReader reader = new C3DReader(fs);
 4     C3DHeader header = reader.ReadHeader();
 5     C3DParameterDictionary dictionary = reader.ReadParameters();
 6     Int32 index = header.FirstFrameIndex;
 7 
 8     while (true)
 9     {
10         C3DFrame frame = reader.ReadNextFrame(dictionary);
11 
12         if (frame == null)
13         {
14             break;
15         }
16 
17         for (Int16 j = 0; j < frame.Point3Ds.Length; j++)
18         {
19             Console.WriteLine("Frame {0} : X = {1}, Y = {2}, Z = {3}",
20                 index++,
21                 frame.Point3Ds[j].X,
22                 frame.Point3Ds[j].Y,
23                 frame.Point3Ds[j].Z);
24         }
25     }
26 }

对开创一个C3D文件,只待采取C3DFile.Create()就得创造一个拖欠的C3D文件之,不包含其他的参数集合。而保存C3D文件则一直以file.SaveTo(“文件路径”)就得了。

对增长参数集合好采取以下的代码:

1 //首先需要添加参数集合,ID为正数
2 file.Parameters.AddGroup(1, "POINT", "");
3 //然后往指定ID的参数集合中添加参数即可
4 file.Parameters[1].Add("USED", "").SetData<Int16>(5);

补加帧可以利用如下的代码:

1 file.AllFrames.Add(new C3DFrame(new C3DPoint3DData[] {
2     new C3DPoint3DData() { X = x, Y = y, Z = z, Residual = residual, CameraMask = cameraMask},
3     new C3DPoint3DData() { X = x, Y = y, Z = z, Residual = residual, CameraMask = cameraMask},
4     new C3DPoint3DData() { X = x, Y = y, Z = z, Residual = residual, CameraMask = cameraMask},
5     new C3DPoint3DData() { X = x, Y = y, Z = z, Residual = residual, CameraMask = cameraMask},
6     new C3DPoint3DData() { X = x, Y = y, Z = z, Residual = residual, CameraMask = cameraMask} }));

当,也可以拿C3DPoint3DData数组换成C3DAnalogSamples数组,或者双方同时加上也可。

 

【相关链接】

  1. C3D.ORG:http://www.c3d.org/
  2. c3d4sharp – C3D File reading/writing tools written in
    C#:http://code.google.com/p/c3d4sharp/
  3. C3D.NET:https://c3d.codeplex.com/