Привет, я знаю, что многие веб-парсеры wavefrontobj доступны в сети для загрузки модели .obj, но в основном загружаются без текстур, поэтому мне нужно знать, как мы можем загрузить TEXTURES (.png и .jpg). Также я написал код для масштабирования 3d-модели и для взаимодействия с ней, но она не работает. Так может кто-нибудь помочь мне там справиться с этой проблемой. Любой пример приложения, обладающего всеми вышеуказанными возможностями, будет высоко оценен.
Заранее спасибо ..
Код для масштабирования:
- (void)scale:(id)sender
{
if([(UIPinchGestureRecognizer*)sender state] == UIGestureRecognizerStateEnded)
{
lastScale = 1.0;
return;
}
CGFloat prevZoomValue = zoomValue;
CGFloat scale = (1.0 - (lastScale - [(UIPinchGestureRecognizer*)sender scale]))/10;
if ([(UIPinchGestureRecognizer*)sender scale] < 1)
{
//user is zooming in
// range 1.0 to 0.0
zoomValue -= scale;
}
else
{
//user is zooming out
// range > 1.0
zoomValue += scale/10;
}
// if zoom value is not in the range then restore last value
if (!(zoomValue < -0.1 && zoomValue > -10.0))
{
zoomValue = prevZoomValue;
lastScale = [(UIPinchGestureRecognizer*)sender scale];
}
}
Код для взаимодействия:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
// NSMutableSet *currentTouches = [[[event touchesForView:self] mutableCopy] autorelease];
// [currentTouches minusSet:touches];
secondsInterval = CFAbsoluteTimeGetCurrent();
//longPressTimer = [NSTimer scheduledTimerWithTimeInterval:0.01 target:self selector:@selector(startLongPressCounter) userInfo:nil repeats:YES];
// New touches are not yet included in the current touches for the view
lastMovementPosition = [[touches anyObject] locationInView:self];
rotateX = endMovementPosition.x;
rotateY = endMovementPosition.y;
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
idleRotate = FALSE;
CGPoint currentMovementPosition = [[touches anyObject] locationInView:self];
NSLog(@"touchesMoved");
rotateX = (lastMovementPosition.x - currentMovementPosition.x);
rotateY = (lastMovementPosition.y - currentMovementPosition.y);
//[self renderByRotatingAroundX:(lastMovementPosition.x - currentMovementPosition.x) rotatingAroundY:(lastMovementPosition.y - currentMovementPosition.y)];
lastMovementPosition = currentMovementPosition;
}