亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cpjoint.c

?? Compressed file has password
?? C
字號:
/* Copyright (c) 2007 Scott Lembcke* * Permission is hereby granted, free of charge, to any person obtaining a copy* of this software and associated documentation files (the "Software"), to deal* in the Software without restriction, including without limitation the rights* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell* copies of the Software, and to permit persons to whom the Software is* furnished to do so, subject to the following conditions:* * The above copyright notice and this permission notice shall be included in* all copies or substantial portions of the Software.* * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE* SOFTWARE.*/#include <stdlib.h>#include <math.h>#include "chipmunk.h"// TODO: Comment me!cpFloat cp_joint_bias_coef = 0.1f;void cpJointDestroy(cpJoint *joint){}voidcpJointFree(cpJoint *joint){	if(joint) cpJointDestroy(joint);	free(joint);}static voidcpJointInit(cpJoint *joint, const cpJointClass *klass, cpBody *a, cpBody *b){	joint->klass = klass;	joint->a = a;	joint->b = b;}static inline cpVectrelative_velocity(cpVect r1, cpVect v1, cpFloat w1, cpVect r2, cpVect v2, cpFloat w2){	cpVect v1_sum = cpvadd(v1, cpvmult(cpvperp(r1), w1));	cpVect v2_sum = cpvadd(v2, cpvmult(cpvperp(r2), w2));		return cpvsub(v2_sum, v1_sum);}static inline cpFloatscalar_k(cpBody *a, cpBody *b, cpVect r1, cpVect r2, cpVect n){	cpFloat mass_sum = a->m_inv + b->m_inv;	cpFloat r1cn = cpvcross(r1, n);	cpFloat r2cn = cpvcross(r2, n);	return mass_sum + a->i_inv*r1cn*r1cn + b->i_inv*r2cn*r2cn;}static inline voidapply_impulses(cpBody *a , cpBody *b, cpVect r1, cpVect r2, cpVect j){	cpBodyApplyImpulse(a, cpvneg(j), r1);	cpBodyApplyImpulse(b, j, r2);}static inline voidapply_bias_impulses(cpBody *a , cpBody *b, cpVect r1, cpVect r2, cpVect j){	cpBodyApplyBiasImpulse(a, cpvneg(j), r1);	cpBodyApplyBiasImpulse(b, j, r2);}static voidpinJointPreStep(cpJoint *joint, cpFloat dt_inv){	cpBody *a = joint->a;	cpBody *b = joint->b;	cpPinJoint *jnt = (cpPinJoint *)joint;		jnt->r1 = cpvrotate(jnt->anchr1, a->rot);	jnt->r2 = cpvrotate(jnt->anchr2, b->rot);		cpVect delta = cpvsub(cpvadd(b->p, jnt->r2), cpvadd(a->p, jnt->r1));	cpFloat dist = cpvlength(delta);	jnt->n = cpvmult(delta, 1.0f/(dist ? dist : INFINITY));		// calculate mass normal	jnt->nMass = 1.0f/scalar_k(a, b, jnt->r1, jnt->r2, jnt->n);		// calculate bias velocity	jnt->bias = -cp_joint_bias_coef*dt_inv*(dist - jnt->dist);	jnt->jBias = 0.0f;		// apply accumulated impulse	cpVect j = cpvmult(jnt->n, jnt->jnAcc);	apply_impulses(a, b, jnt->r1, jnt->r2, j);}static voidpinJointApplyImpulse(cpJoint *joint){	cpBody *a = joint->a;	cpBody *b = joint->b;		cpPinJoint *jnt = (cpPinJoint *)joint;	cpVect n = jnt->n;	cpVect r1 = jnt->r1;	cpVect r2 = jnt->r2;	//calculate bias impulse	cpVect vbr = relative_velocity(r1, a->v_bias, a->w_bias, r2, b->v_bias, b->w_bias);	cpFloat vbn = cpvdot(vbr, n);		cpFloat jbn = (jnt->bias - vbn)*jnt->nMass;	jnt->jBias += jbn;		cpVect jb = cpvmult(n, jbn);	apply_bias_impulses(a, b, jnt->r1, jnt->r2, jb);		// compute relative velocity	cpVect vr = relative_velocity(r1, a->v, a->w, r2, b->v, b->w);	cpFloat vrn = cpvdot(vr, n);		// compute normal impulse	cpFloat jn = -vrn*jnt->nMass;	jnt->jnAcc =+ jn;		// apply impulse	cpVect j = cpvmult(n, jn);	apply_impulses(a, b, jnt->r1, jnt->r2, j);}static const cpJointClass pinJointClass = {	CP_PIN_JOINT,	pinJointPreStep,	pinJointApplyImpulse,};cpPinJoint *cpPinJointAlloc(void){	return (cpPinJoint *)malloc(sizeof(cpPinJoint));}cpPinJoint *cpPinJointInit(cpPinJoint *joint, cpBody *a, cpBody *b, cpVect anchr1, cpVect anchr2){	cpJointInit((cpJoint *)joint, &pinJointClass, a, b);		joint->anchr1 = anchr1;	joint->anchr2 = anchr2;		cpVect p1 = cpvadd(a->p, cpvrotate(anchr1, a->rot));	cpVect p2 = cpvadd(b->p, cpvrotate(anchr2, b->rot));	joint->dist = cpvlength(cpvsub(p2, p1));	joint->jnAcc = 0.0f;		return joint;}cpJoint *cpPinJointNew(cpBody *a, cpBody *b, cpVect anchr1, cpVect anchr2){	return (cpJoint *)cpPinJointInit(cpPinJointAlloc(), a, b, anchr1, anchr2);}static voidslideJointPreStep(cpJoint *joint, cpFloat dt_inv){	cpBody *a = joint->a;	cpBody *b = joint->b;	cpSlideJoint *jnt = (cpSlideJoint *)joint;		jnt->r1 = cpvrotate(jnt->anchr1, a->rot);	jnt->r2 = cpvrotate(jnt->anchr2, b->rot);		cpVect delta = cpvsub(cpvadd(b->p, jnt->r2), cpvadd(a->p, jnt->r1));	cpFloat dist = cpvlength(delta);	cpFloat pdist = 0.0f;	if(dist > jnt->max) {		pdist = dist - jnt->max;	} else if(dist < jnt->min) {		pdist = jnt->min - dist;		dist = -dist;	}	jnt->n = cpvmult(delta, 1.0f/(dist ? dist : INFINITY));		// calculate mass normal	jnt->nMass = 1.0f/scalar_k(a, b, jnt->r1, jnt->r2, jnt->n);		// calculate bias velocity	jnt->bias = -cp_joint_bias_coef*dt_inv*(pdist);	jnt->jBias = 0.0f;		// apply accumulated impulse	if(!jnt->bias) //{		// if bias is 0, then the joint is not at a limit.		jnt->jnAcc = 0.0f;//	} else {		cpVect j = cpvmult(jnt->n, jnt->jnAcc);		apply_impulses(a, b, jnt->r1, jnt->r2, j);//	}}static voidslideJointApplyImpulse(cpJoint *joint){	cpSlideJoint *jnt = (cpSlideJoint *)joint;	if(!jnt->bias) return;  // early exit	cpBody *a = joint->a;	cpBody *b = joint->b;		cpVect n = jnt->n;	cpVect r1 = jnt->r1;	cpVect r2 = jnt->r2;		//calculate bias impulse	cpVect vbr = relative_velocity(r1, a->v_bias, a->w_bias, r2, b->v_bias, b->w_bias);	cpFloat vbn = cpvdot(vbr, n);		cpFloat jbn = (jnt->bias - vbn)*jnt->nMass;	cpFloat jbnOld = jnt->jBias;	jnt->jBias = cpfmin(jbnOld + jbn, 0.0f);	jbn = jnt->jBias - jbnOld;		cpVect jb = cpvmult(n, jbn);	apply_bias_impulses(a, b, jnt->r1, jnt->r2, jb);		// compute relative velocity	cpVect vr = relative_velocity(r1, a->v, a->w, r2, b->v, b->w);	cpFloat vrn = cpvdot(vr, n);		// compute normal impulse	cpFloat jn = -vrn*jnt->nMass;	cpFloat jnOld = jnt->jnAcc;	jnt->jnAcc = cpfmin(jnOld + jn, 0.0f);	jn = jnt->jnAcc - jnOld;		// apply impulse	cpVect j = cpvmult(n, jn);	apply_impulses(a, b, jnt->r1, jnt->r2, j);}static const cpJointClass slideJointClass = {	CP_SLIDE_JOINT,	slideJointPreStep,	slideJointApplyImpulse,};cpSlideJoint *cpSlideJointAlloc(void){	return (cpSlideJoint *)malloc(sizeof(cpSlideJoint));}cpSlideJoint *cpSlideJointInit(cpSlideJoint *joint, cpBody *a, cpBody *b, cpVect anchr1, cpVect anchr2, cpFloat min, cpFloat max){	cpJointInit((cpJoint *)joint, &slideJointClass, a, b);		joint->anchr1 = anchr1;	joint->anchr2 = anchr2;	joint->min = min;	joint->max = max;		joint->jnAcc = 0.0f;		return joint;}cpJoint *cpSlideJointNew(cpBody *a, cpBody *b, cpVect anchr1, cpVect anchr2, cpFloat min, cpFloat max){	return (cpJoint *)cpSlideJointInit(cpSlideJointAlloc(), a, b, anchr1, anchr2, min, max);}static voidpivotJointPreStep(cpJoint *joint, cpFloat dt_inv){	cpBody *a = joint->a;	cpBody *b = joint->b;	cpPivotJoint *jnt = (cpPivotJoint *)joint;		jnt->r1 = cpvrotate(jnt->anchr1, a->rot);	jnt->r2 = cpvrotate(jnt->anchr2, b->rot);		// calculate mass matrix	// If I wasn't lazy, this wouldn't be so gross...	cpFloat k11, k12, k21, k22;		cpFloat m_sum = a->m_inv + b->m_inv;	k11 = m_sum; k12 = 0.0f;	k21 = 0.0f;  k22 = m_sum;		cpFloat r1xsq =  jnt->r1.x * jnt->r1.x * a->i_inv;	cpFloat r1ysq =  jnt->r1.y * jnt->r1.y * a->i_inv;	cpFloat r1nxy = -jnt->r1.x * jnt->r1.y * a->i_inv;	k11 += r1ysq; k12 += r1nxy;	k21 += r1nxy; k22 += r1xsq;		cpFloat r2xsq =  jnt->r2.x * jnt->r2.x * b->i_inv;	cpFloat r2ysq =  jnt->r2.y * jnt->r2.y * b->i_inv;	cpFloat r2nxy = -jnt->r2.x * jnt->r2.y * b->i_inv;	k11 += r2ysq; k12 += r2nxy;	k21 += r2nxy; k22 += r2xsq;		cpFloat det_inv = 1.0f/(k11*k22 - k12*k21);	jnt->k1 = cpv( k22*det_inv, -k12*det_inv);	jnt->k2 = cpv(-k21*det_inv,  k11*det_inv);			// calculate bias velocity	cpVect delta = cpvsub(cpvadd(b->p, jnt->r2), cpvadd(a->p, jnt->r1));	jnt->bias = cpvmult(delta, -cp_joint_bias_coef*dt_inv);	jnt->jBias = cpvzero;		// apply accumulated impulse	apply_impulses(a, b, jnt->r1, jnt->r2, jnt->jAcc);}static voidpivotJointApplyImpulse(cpJoint *joint){	cpBody *a = joint->a;	cpBody *b = joint->b;		cpPivotJoint *jnt = (cpPivotJoint *)joint;	cpVect r1 = jnt->r1;	cpVect r2 = jnt->r2;	cpVect k1 = jnt->k1;	cpVect k2 = jnt->k2;		//calculate bias impulse	cpVect vbr = relative_velocity(r1, a->v_bias, a->w_bias, r2, b->v_bias, b->w_bias);	vbr = cpvsub(jnt->bias, vbr);		cpVect jb = cpv(cpvdot(vbr, k1), cpvdot(vbr, k2));	jnt->jBias = cpvadd(jnt->jBias, jb);		apply_bias_impulses(a, b, jnt->r1, jnt->r2, jb);		// compute relative velocity	cpVect vr = relative_velocity(r1, a->v, a->w, r2, b->v, b->w);		// compute normal impulse	cpVect j = cpv(-cpvdot(vr, k1), -cpvdot(vr, k2));	jnt->jAcc = cpvadd(jnt->jAcc, j);		// apply impulse	apply_impulses(a, b, jnt->r1, jnt->r2, j);}static const cpJointClass pivotJointClass = {	CP_PIVOT_JOINT,	pivotJointPreStep,	pivotJointApplyImpulse,};cpPivotJoint *cpPivotJointAlloc(void){	return (cpPivotJoint *)malloc(sizeof(cpPivotJoint));}cpPivotJoint *cpPivotJointInit(cpPivotJoint *joint, cpBody *a, cpBody *b, cpVect pivot){	cpJointInit((cpJoint *)joint, &pivotJointClass, a, b);		joint->anchr1 = cpvunrotate(cpvsub(pivot, a->p), a->rot);	joint->anchr2 = cpvunrotate(cpvsub(pivot, b->p), b->rot);		joint->jAcc = cpvzero;		return joint;}cpJoint *cpPivotJointNew(cpBody *a, cpBody *b, cpVect pivot){	return (cpJoint *)cpPivotJointInit(cpPivotJointAlloc(), a, b, pivot);}static voidgrooveJointPreStep(cpJoint *joint, cpFloat dt_inv){	cpBody *a = joint->a;	cpBody *b = joint->b;	cpGrooveJoint *jnt = (cpGrooveJoint *)joint;		// calculate endpoints in worldspace	cpVect ta = cpBodyLocal2World(a, jnt->grv_a);	cpVect tb = cpBodyLocal2World(a, jnt->grv_b);	// calculate axis	cpVect n = cpvrotate(jnt->grv_n, a->rot);	cpFloat d = cpvdot(ta, n);		jnt->grv_tn = n;	jnt->r2 = cpvrotate(jnt->anchr2, b->rot);		// calculate tangential distance along the axis of r2	cpFloat td = cpvcross(cpvadd(b->p, jnt->r2), n);	// calculate clamping factor and r2	if(td <= cpvcross(ta, n)){		jnt->clamp = 1.0f;		jnt->r1 = cpvsub(ta, a->p);	} else if(td >= cpvcross(tb, n)){		jnt->clamp = -1.0f;		jnt->r1 = cpvsub(tb, a->p);	} else {		jnt->clamp = 0.0f;		jnt->r1 = cpvsub(cpvadd(cpvmult(cpvperp(n), -td), cpvmult(n, d)), a->p);	}			// calculate mass matrix	// If I wasn't lazy and wrote a proper matrix class, this wouldn't be so gross...	cpFloat k11, k12, k21, k22;	cpFloat m_sum = a->m_inv + b->m_inv;		// start with I*m_sum	k11 = m_sum; k12 = 0.0f;	k21 = 0.0f;  k22 = m_sum;		// add the influence from r1	cpFloat r1xsq =  jnt->r1.x * jnt->r1.x * a->i_inv;	cpFloat r1ysq =  jnt->r1.y * jnt->r1.y * a->i_inv;	cpFloat r1nxy = -jnt->r1.x * jnt->r1.y * a->i_inv;	k11 += r1ysq; k12 += r1nxy;	k21 += r1nxy; k22 += r1xsq;		// add the influnce from r2	cpFloat r2xsq =  jnt->r2.x * jnt->r2.x * b->i_inv;	cpFloat r2ysq =  jnt->r2.y * jnt->r2.y * b->i_inv;	cpFloat r2nxy = -jnt->r2.x * jnt->r2.y * b->i_inv;	k11 += r2ysq; k12 += r2nxy;	k21 += r2nxy; k22 += r2xsq;		// invert	cpFloat det_inv = 1.0f/(k11*k22 - k12*k21);	jnt->k1 = cpv( k22*det_inv, -k12*det_inv);	jnt->k2 = cpv(-k21*det_inv,  k11*det_inv);			// calculate bias velocity	cpVect delta = cpvsub(cpvadd(b->p, jnt->r2), cpvadd(a->p, jnt->r1));	jnt->bias = cpvmult(delta, -cp_joint_bias_coef*dt_inv);	jnt->jBias = cpvzero;		// apply accumulated impulse	apply_impulses(a, b, jnt->r1, jnt->r2, jnt->jAcc);}static inline cpVectgrooveConstrain(cpGrooveJoint *jnt, cpVect j){	cpVect n = jnt->grv_tn;	cpVect jn = cpvmult(n, cpvdot(j, n));	cpVect t = cpvperp(n);	cpFloat coef = (jnt->clamp*cpvcross(j, n) > 0.0f) ? 1.0f : 0.0f;	cpVect jt = cpvmult(t, cpvdot(j, t)*coef);			return cpvadd(jn, jt);}static voidgrooveJointApplyImpulse(cpJoint *joint){	cpBody *a = joint->a;	cpBody *b = joint->b;		cpGrooveJoint *jnt = (cpGrooveJoint *)joint;	cpVect r1 = jnt->r1;	cpVect r2 = jnt->r2;	cpVect k1 = jnt->k1;	cpVect k2 = jnt->k2;		//calculate bias impulse	cpVect vbr = relative_velocity(r1, a->v_bias, a->w_bias, r2, b->v_bias, b->w_bias);	vbr = cpvsub(jnt->bias, vbr);		cpVect jb = cpv(cpvdot(vbr, k1), cpvdot(vbr, k2));	cpVect jbOld = jnt->jBias;	jnt->jBias = grooveConstrain(jnt, cpvadd(jbOld, jb));	jb = cpvsub(jnt->jBias, jbOld);		apply_bias_impulses(a, b, jnt->r1, jnt->r2, jb);		// compute impulse	cpVect vr = relative_velocity(r1, a->v, a->w, r2, b->v, b->w);	cpVect j = cpv(-cpvdot(vr, k1), -cpvdot(vr, k2));	cpVect jOld = jnt->jAcc;	jnt->jAcc = grooveConstrain(jnt, cpvadd(jOld, j));	j = cpvsub(jnt->jAcc, jOld);		// apply impulse	apply_impulses(a, b, jnt->r1, jnt->r2, j);}static const cpJointClass grooveJointClass = {	CP_GROOVE_JOINT,	grooveJointPreStep,	grooveJointApplyImpulse,};cpGrooveJoint *cpGrooveJointAlloc(void){	return (cpGrooveJoint *)malloc(sizeof(cpGrooveJoint));}cpGrooveJoint *cpGrooveJointInit(cpGrooveJoint *joint, cpBody *a, cpBody *b, cpVect groove_a, cpVect groove_b, cpVect anchr2){	cpJointInit((cpJoint *)joint, &grooveJointClass, a, b);		joint->grv_a = groove_a;	joint->grv_b = groove_b;	joint->grv_n = cpvperp(cpvnormalize(cpvsub(groove_b, groove_a)));	joint->anchr2 = anchr2;		joint->jAcc = cpvzero;		return joint;}cpJoint *cpGrooveJointNew(cpBody *a, cpBody *b, cpVect groove_a, cpVect groove_b, cpVect anchr2){	return (cpJoint *)cpGrooveJointInit(cpGrooveJointAlloc(), a, b, groove_a, groove_b, anchr2);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人的网站免费观看| 免费观看日韩av| 日韩一级大片在线观看| av在线综合网| 久久99最新地址| 亚洲综合男人的天堂| 国产偷国产偷精品高清尤物| 欧美在线短视频| 成人av资源在线观看| 理论电影国产精品| 亚洲成人福利片| 亚洲男女一区二区三区| 久久九九99视频| 日韩一本二本av| 欧美精品在线观看播放| 一本色道久久综合精品竹菊| 成人午夜激情视频| 国产美女一区二区| 久久99国产精品麻豆| 亚洲图片一区二区| 亚洲欧洲中文日韩久久av乱码| 2023国产精华国产精品| 日韩免费看的电影| 欧美精品久久天天躁| 日本丰满少妇一区二区三区| 99视频精品免费视频| 久久精品一区蜜桃臀影院| 国产精品亚洲一区二区三区在线| 国产欧美精品日韩区二区麻豆天美| 麻豆成人av在线| 欧美经典一区二区| 精品三级在线看| 成人午夜短视频| 首页欧美精品中文字幕| 久久久久久**毛片大全| 欧美亚洲一区三区| 麻豆精品视频在线观看视频| 亚洲永久精品国产| 国产精品久久久久久久浪潮网站 | 91精品国产aⅴ一区二区| 色婷婷一区二区| aaa欧美大片| 97久久精品人人爽人人爽蜜臀| 成人免费毛片aaaaa**| 成人做爰69片免费看网站| 国产精品影视网| 成人免费观看视频| 99精品视频中文字幕| 色综合久久88色综合天天6 | 678五月天丁香亚洲综合网| 91福利视频网站| 欧美日韩国产成人在线91| 欧美高清激情brazzers| 日韩欧美一级二级| 久久综合狠狠综合久久激情| 欧美国产日韩在线观看| 亚洲丝袜另类动漫二区| 亚洲一区二区三区四区在线免费观看| 亚洲一区二区三区四区在线观看 | 天天色综合成人网| 毛片一区二区三区| 国产成人亚洲精品狼色在线| 99久免费精品视频在线观看| 色国产综合视频| 精品视频全国免费看| 欧美精品日日鲁夜夜添| 不卡视频一二三四| 欧美色综合影院| 高清在线观看日韩| 久久夜色精品国产欧美乱极品| 精品国产乱码久久久久久牛牛| 精品国内片67194| 久久免费美女视频| 中文字幕日韩一区| 午夜私人影院久久久久| 国产一区二区三区免费播放| 一区二区三区在线观看视频| 亚洲午夜一区二区| 久久国产婷婷国产香蕉| 97se亚洲国产综合自在线观| 欧美一区二区三区在线视频| 精品电影一区二区| 夜夜嗨av一区二区三区四季av| 日韩—二三区免费观看av| 国产精品66部| 欧美日韩成人一区| 国产精品视频在线看| 三级欧美在线一区| 99久久精品费精品国产一区二区| 欧美日韩成人综合在线一区二区| 国产亚洲欧美日韩俺去了| 亚洲大片免费看| av电影在线观看完整版一区二区| 91精品国产色综合久久ai换脸 | 日韩欧美一区中文| 国产精品毛片无遮挡高清| 日本视频在线一区| 色综合色综合色综合色综合色综合| 制服丝袜中文字幕亚洲| 亚洲美女屁股眼交3| 国产综合久久久久影院| 欧美网站大全在线观看| 中文字幕欧美三区| 激情文学综合网| 制服丝袜激情欧洲亚洲| 最新中文字幕一区二区三区| 激情图片小说一区| 91精品国产综合久久久久久久| 亚洲男人都懂的| 成人中文字幕电影| 精品国产网站在线观看| 爽好久久久欧美精品| 日本道精品一区二区三区| 欧美国产视频在线| 精品国产成人系列| 亚洲线精品一区二区三区八戒| 欧美日本在线看| 免费一级欧美片在线观看| 欧美性受xxxx| 亚洲精品日韩专区silk| 欧美三级在线播放| 亚洲综合精品自拍| 欧美精品久久一区二区三区| 婷婷综合五月天| 日韩色在线观看| 韩国精品在线观看| 亚洲黄一区二区三区| eeuss鲁片一区二区三区| 日韩视频一区二区在线观看| 亚洲第一福利视频在线| 欧美亚洲日本一区| 一区二区三区免费看视频| 成人免费毛片片v| 国产精品区一区二区三| 国产精品一卡二| 久久久青草青青国产亚洲免观| 国产在线精品一区二区不卡了| 欧美哺乳videos| 久草在线在线精品观看| 亚洲精选一二三| 日韩片之四级片| 色综合久久久网| 日本v片在线高清不卡在线观看| 国产人妖乱国产精品人妖| 一本一本大道香蕉久在线精品| 亚洲成人免费视频| 国产亚洲一二三区| 欧美三级一区二区| 激情五月激情综合网| 亚洲色欲色欲www| 欧美成人乱码一区二区三区| 91在线视频免费91| 国内精品视频666| 一区二区三区在线免费播放| 久久久亚洲精华液精华液精华液| 99久精品国产| 丁香五精品蜜臀久久久久99网站| 亚洲一区免费观看| 免费观看日韩av| 亚洲一区二区三区国产| 麻豆一区二区三区| 偷偷要91色婷婷| 午夜精品123| 国产日产亚洲精品系列| 69堂成人精品免费视频| 欧美挠脚心视频网站| 欧美亚洲一区二区三区四区| 国产精品免费av| 99久久精品国产一区二区三区| 久久久久久久久99精品| 蜜臀va亚洲va欧美va天堂| 国产亚洲欧美中文| 91国偷自产一区二区开放时间 | 国产精品网曝门| 91福利社在线观看| 韩国v欧美v亚洲v日本v| 国产精品久久一卡二卡| 欧美日韩亚洲综合一区| 国产麻豆91精品| 国产高清在线精品| av综合在线播放| 欧美三级日韩三级国产三级| 欧美美女直播网站| wwwwww.欧美系列| 亚洲猫色日本管| 亚洲亚洲精品在线观看| 亚洲大型综合色站| 久久不见久久见免费视频7| 麻豆91精品91久久久的内涵| 国产在线精品不卡| 色婷婷av一区二区三区软件 | 日韩精品中文字幕一区 | 亚洲精品一区二区三区四区高清 | 久久久久88色偷偷免费| 美美哒免费高清在线观看视频一区二区 | 麻豆成人在线观看| 欧美日韩国产综合一区二区| 午夜不卡av在线| 欧美一区二区啪啪| 一区二区三区精品在线观看|