当前位置: 首页>>代码示例>>Java>>正文


Java FastMath类代码示例

本文整理汇总了Java中org.oscim.utils.FastMath的典型用法代码示例。如果您正苦于以下问题:Java FastMath类的具体用法?Java FastMath怎么用?Java FastMath使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


FastMath类属于org.oscim.utils包,在下文中一共展示了FastMath类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: update

import org.oscim.utils.FastMath; //导入依赖的package包/类
@Override
public void update(GLViewport v) {
    if (!mInitialized) {
        init();
        mInitialized = true;
    }

    if (!isEnabled()) {
        setReady(false);
        return;
    }

    if (!v.changed() && !mReanimated && !isReady())
        return;

    setReady(true);

    // clamp location to a position that can be
    // safely translated to screen coordinates
    v.getBBox(mBBox, 0);

    mLocationIsVisible = mBBox.contains(mLocation);
    mIndicatorPosition.x = FastMath.clamp(mLocation.x, mBBox.xmin, mBBox.xmax);
    mIndicatorPosition.y = FastMath.clamp(mLocation.y, mBBox.ymin, mBBox.ymax);
}
 
开发者ID:andreynovikov,项目名称:trekarta,代码行数:26,代码来源:LocationOverlay.java

示例2: scaleMap

import org.oscim.utils.FastMath; //导入依赖的package包/类
/**
 * Scale map by scale width center at pivot in pixel relative to
 * screen center. Map scale is clamp to MIN_SCALE and MAX_SCALE.
 * 
 * @param scale
 * @param pivotX
 * @param pivotY
 * @return true if scale was changed
 */
public synchronized boolean scaleMap(float scale, float pivotX, float pivotY) {
	// just sanitize input
	//scale = FastMath.clamp(scale, 0.5f, 2);
	if (scale < 0.000001)
		return false;

	double newScale = mPos.scale * scale;

	newScale = FastMath.clamp(newScale, MIN_SCALE, MAX_SCALE);

	if (newScale == mPos.scale)
		return false;

	scale = (float) (newScale / mPos.scale);

	mPos.scale = newScale;

	if (pivotX != 0 || pivotY != 0)
		moveMap(pivotX * (1.0f - scale),
		        pivotY * (1.0f - scale));

	return true;
}
 
开发者ID:opensciencemap,项目名称:vtm,代码行数:33,代码来源:ViewController.java

示例3: getMapPosition

import org.oscim.utils.FastMath; //导入依赖的package包/类
/**
 * Get the current MapPosition.
 * 
 * @param pos MapPosition to be updated.
 * 
 * @return true iff current position is different from
 *         passed position.
 */
public synchronized boolean getMapPosition(MapPosition pos) {

	boolean changed = (pos.scale != mPos.scale
	        || pos.x != mPos.x
	        || pos.y != mPos.y
	        || pos.bearing != mPos.bearing
	        || pos.tilt != mPos.tilt);

	pos.bearing = mPos.bearing;
	pos.tilt = mPos.tilt;

	pos.x = mPos.x;
	pos.y = mPos.y;
	pos.scale = mPos.scale;
	pos.zoomLevel = FastMath.log2((int) mPos.scale);

	return changed;
}
 
开发者ID:opensciencemap,项目名称:vtm,代码行数:27,代码来源:Viewport.java

示例4: getMapPosition

import org.oscim.utils.FastMath; //导入依赖的package包/类
/**
 * Get the current MapPosition
 *
 * @param pos MapPosition object to be updated
 * @return true if current position is different from 'pos'.
 */
public synchronized boolean getMapPosition(MapPosition pos) {

	boolean changed = (pos.x != mAbsX || pos.y != mAbsY
			|| pos.scale != mAbsScale
			|| pos.angle != mRotation
			|| pos.tilt != mTilt);

	if (!changed)
		return false;

	int z = FastMath.log2((int) mAbsScale);

	pos.angle = mRotation;
	pos.tilt = mTilt;

	pos.x = mAbsX;
	pos.y = mAbsY;
	pos.scale = mAbsScale;

	pos.zoomLevel = z;

	return true;
}
 
开发者ID:opensciencemap,项目名称:vtm-android,代码行数:30,代码来源:MapViewPosition.java

示例5: moveAbs

import org.oscim.utils.FastMath; //导入依赖的package包/类
private synchronized void moveAbs(double x, double y) {
	double f = Tile.SIZE << ABS_ZOOMLEVEL;

	mAbsX = x / f;
	mAbsY = y / f;

	// clamp latitude
	mAbsY = FastMath.clamp(mAbsY, 0, 1);

	// wrap longitude
	while (mAbsX > 1)
		mAbsX -= 1;
	while (mAbsX < 0)
		mAbsX += 1;

	updatePosition();
}
 
开发者ID:opensciencemap,项目名称:vtm-android,代码行数:18,代码来源:MapViewPosition.java

示例6: animateFling

import org.oscim.utils.FastMath; //导入依赖的package包/类
public synchronized void animateFling(int velocityX, int velocityY,
		int minX, int maxX, int minY, int maxY) {

	if (velocityX * velocityX + velocityY * velocityY < 4096)
		return;

	mScrollX = 0;
	mScrollY = 0;

	float duration = 500;

	// pi times thumb..
	float flingFactor = (duration / 2500);
	mVelocityX = velocityX * flingFactor;
	mVelocityY = velocityY * flingFactor;
	FastMath.clamp(mVelocityX, minX, maxX);
	FastMath.clamp(mVelocityY, minY, maxY);

	mAnimFling = true;
	mAnimMove = false;
	mAnimScale = false;
	animStart(duration);
}
 
开发者ID:opensciencemap,项目名称:vtm-android,代码行数:24,代码来源:MapViewPosition.java

示例7: moveTo

import org.oscim.utils.FastMath; //导入依赖的package包/类
void moveTo(double x, double y) {
	mPos.x = x;
	mPos.y = y;

	/* clamp latitude */
	mPos.y = FastMath.clamp(mPos.y, 0, 1);

	/* wrap longitude */
	while (mPos.x > 1)
		mPos.x -= 1;
	while (mPos.x < 0)
		mPos.x += 1;
}
 
开发者ID:opensciencemap,项目名称:vtm,代码行数:14,代码来源:ViewController.java

示例8: setTilt

import org.oscim.utils.FastMath; //导入依赖的package包/类
public synchronized boolean setTilt(float tilt) {
	tilt = FastMath.clamp(tilt, 0, MAX_TILT);
	if (tilt == mPos.tilt)
		return false;
	mPos.tilt = tilt;
	updateMatrices();
	return true;
}
 
开发者ID:opensciencemap,项目名称:vtm,代码行数:9,代码来源:ViewController.java

示例9: setMapPosition

import org.oscim.utils.FastMath; //导入依赖的package包/类
public synchronized void setMapPosition(MapPosition mapPosition) {
	mPos.scale = FastMath.clamp(mapPosition.scale, MIN_SCALE, MAX_SCALE);
	mPos.x = mapPosition.x;
	mPos.y = mapPosition.y;
	mPos.tilt = mapPosition.tilt;
	mPos.bearing = mapPosition.bearing;
	updateMatrices();
}
 
开发者ID:opensciencemap,项目名称:vtm,代码行数:9,代码来源:ViewController.java

示例10: onMapEvent

import org.oscim.utils.FastMath; //导入依赖的package包/类
@Override
public void onMapEvent(Event event, MapPosition pos) {
	super.onMapEvent(event, pos);

	if (event != Map.POSITION_EVENT)
		return;

	FadeStep[] fade = mTileSource.getFadeSteps();

	if (fade == null) {
		//mRenderLayer.setBitmapAlpha(1);
		return;
	}

	float alpha = 0;
	for (FadeStep f : fade) {
		if (pos.scale < f.scaleStart || pos.scale > f.scaleEnd)
			continue;

		if (f.alphaStart == f.alphaEnd) {
			alpha = f.alphaStart;
			break;
		}
		double range = f.scaleEnd / f.scaleStart;
		float a = (float) ((range - (pos.scale / f.scaleStart)) / range);
		a = FastMath.clamp(a, 0, 1);
		// interpolate alpha between start and end
		alpha = a * f.alphaStart + (1 - a) * f.alphaEnd;
		break;
	}

	tileRenderer().setBitmapAlpha(alpha);
}
 
开发者ID:opensciencemap,项目名称:vtm,代码行数:34,代码来源:BitmapTileLayer.java

示例11: getFade

import org.oscim.utils.FastMath; //导入依赖的package包/类
public float getFade(double scale) {
	if (fadeScale < 0)
		return 1;

	float f = (float) (scale / (1 << fadeScale)) - 1;
	return FastMath.clamp(f, FADE_START, 1);
}
 
开发者ID:opensciencemap,项目名称:vtm,代码行数:8,代码来源:AreaStyle.java

示例12: getBlend

import org.oscim.utils.FastMath; //导入依赖的package包/类
public float getBlend(double scale) {
	if (blendScale < 0)
		return 0;

	float f = (float) (scale / (1 << blendScale)) - 1;
	return FastMath.clamp(f, 0, 1);
}
 
开发者ID:opensciencemap,项目名称:vtm,代码行数:8,代码来源:AreaStyle.java

示例13: fadePremul

import org.oscim.utils.FastMath; //导入依赖的package包/类
public static int fadePremul(int color, double alpha) {
	alpha = FastMath.clamp(alpha, 0, 1);

	alpha *= (color >>> 24) & 0xff;
	int c = (((int) alpha) & 0xff) << 24;

	alpha /= 255;

	c |= ((int) (alpha * ((color >>> 16) & 0xff))) << 16;
	c |= ((int) (alpha * ((color >>> 8) & 0xff))) << 8;
	c |= ((int) (alpha * (color & 0xff)));

	return c;
}
 
开发者ID:opensciencemap,项目名称:vtm,代码行数:15,代码来源:Color.java

示例14: fade

import org.oscim.utils.FastMath; //导入依赖的package包/类
public static int fade(int color, double alpha) {
	alpha = FastMath.clamp(alpha, 0, 1);

	alpha *= (color >>> 24) & 0xff;
	int c = (((int) alpha) & 0xff) << 24;

	return c | (color & 0x00ffffff);
}
 
开发者ID:opensciencemap,项目名称:vtm,代码行数:9,代码来源:Color.java

示例15: GeoPoint

import org.oscim.utils.FastMath; //导入依赖的package包/类
/**
 * @param lat
 *            the latitude in degrees, will be limited to the possible
 *            latitude range.
 * @param lon
 *            the longitude in degrees, will be limited to the possible
 *            longitude range.
 */
public GeoPoint(double lat, double lon) {
	lat = FastMath.clamp(lat,
	                     MercatorProjection.LATITUDE_MIN,
	                     MercatorProjection.LATITUDE_MAX);
	this.latitudeE6 = (int) (lat * CONVERSION_FACTOR);
	lon = FastMath.clamp(lon,
	                     MercatorProjection.LONGITUDE_MIN,
	                     MercatorProjection.LONGITUDE_MAX);
	this.longitudeE6 = (int) (lon * CONVERSION_FACTOR);
}
 
开发者ID:opensciencemap,项目名称:vtm,代码行数:19,代码来源:GeoPoint.java


注:本文中的org.oscim.utils.FastMath类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。