- Visual C++源码
- Visual Basic源码
- C++ Builder源码
- Java源码
- Delphi源码
- C/C++源码
- PHP源码
- Perl源码
- Python源码
- Asm源码
- Pascal源码
- Borland C++源码
- Others源码
- SQL源码
- VBScript源码
- JavaScript源码
- ASP/ASPX源码
- C#源码
- Flash/ActionScript源码
- matlab源码
- PowerBuilder源码
- LabView源码
- Flex源码
- MathCAD源码
- VBA源码
- IDL源码
- Lisp/Scheme源码
- VHDL源码
- Objective-C源码
- Fortran源码
- tcl/tk源码
- QT源码
CelestiaUniversalCoord.mm
上传用户:center1979
上传日期:2022-07-26
资源大小:50633k
文件大小:2k
源码类别:
OpenGL
开发平台:
Visual C++
- //
- // CelestiaUniversalCoord.mm
- // celestia
- //
- // Created by Bob Ippolito on Fri Jun 07 2002.
- // Copyright (c) 2002 Chris Laurel. All rights reserved.
- //
- #import "CelestiaUniversalCoord.h"
- #import "CelestiaUniversalCoord_PrivateAPI.h"
- #import "CelestiaVector_PrivateAPI.h"
- @implementation CelestiaUniversalCoord(PrivateAPI)
- -(UniversalCoord)universalCoord
- {
- return *reinterpret_cast<const UniversalCoord*>([_data bytes]);
- }
- -(CelestiaUniversalCoord*)initWithUniversalCoord:(UniversalCoord)uni
- {
- self = [super init];
- _data = [[NSData alloc] initWithBytes:(void *)&uni length:sizeof(UniversalCoord)];
- return self;
- }
- @end
- @implementation CelestiaUniversalCoord
- -(NSData*)data
- {
- return _data;
- }
- -(id)initWithData:(NSData*)data
- {
- self = [super init];
- _data = [data retain];
- return self;
- }
- -(void)encodeWithCoder:(NSCoder*)coder
- {
- NSLog(@"[CelestiaUniversalCoord encodeWithCoder:%@]",coder);
- //[super encodeWithCoder:coder];
- [coder encodeObject:_data];
- }
- -(id)initWithCoder:(NSCoder*)coder
- {
- NSLog(@"[CelestiaUniversalCoord initWithCoder:%@]",coder);
- //self = [super initWithCoder:coder];
- self = [super init];
- _data = [[coder decodeObject] retain];
- return self;
- }
- -(void)dealloc
- {
- if (_data != nil) {
- [_data release];
- _data = nil;
- }
- [super dealloc];
- }
- -(CelestiaVector*)celestiaVector
- {
- return [CelestiaVector vectorWithPoint3d:Point3d([self universalCoord])];
- }
- -(NSNumber*)distanceTo:(CelestiaUniversalCoord*)t
- {
- return [NSNumber numberWithDouble:[self universalCoord].distanceTo([t universalCoord])];
- }
- -(CelestiaUniversalCoord*)difference:(CelestiaUniversalCoord*)t
- {
- return [[[CelestiaUniversalCoord alloc] initWithUniversalCoord:[self universalCoord].difference([self universalCoord])] autorelease];
- }
- @end