CelestiaGalaxy.mm
上传用户:center1979
上传日期:2022-07-26
资源大小:50633k
文件大小:2k
源码类别:

OpenGL

开发平台:

Visual C++

  1. //
  2. //  CelestiaGalaxy.mm
  3. //  celestia
  4. //
  5. //  Created by Bob Ippolito on Sat Jun 08 2002.
  6. //  Copyright (c) 2002 Chris Laurel. All rights reserved.
  7. //
  8. #import "CelestiaGalaxy.h"
  9. #import "CelestiaGalaxy_PrivateAPI.h"
  10. #import "CelestiaVector_PrivateAPI.h"
  11. #import "NSString_ObjCPlusPlus.h"
  12. #import "CelestiaAppCore.h"
  13. #include "celestiacore.h"
  14. @implementation CelestiaGalaxy(PrivateAPI)
  15. -(CelestiaGalaxy*)initWithGalaxy:(Galaxy*)g
  16. {
  17.     self = [super init];
  18.     _data = [[NSValue alloc] initWithBytes:reinterpret_cast<void*>(&g) objCType:@encode(Galaxy*)];
  19.     return self;
  20. }
  21. -(Galaxy*)galaxy
  22. {
  23.     return reinterpret_cast<Galaxy*>([_data pointerValue]);
  24. }
  25. @end
  26. /*
  27.     GalacticForm* getForm() const;
  28. */
  29. @implementation CelestiaGalaxy
  30. -(void)dealloc
  31. {
  32.     if (_data != nil) {
  33.         [_data release];
  34.         _data = nil;
  35.     }
  36.     [super dealloc];
  37. }
  38. -(NSString*)type
  39. {
  40.     return [NSString stringWithUTF8String:[self galaxy]->getType()];
  41. }
  42. //-(void)setType:(NSString*)s
  43. //{
  44. //    [self galaxy]->setType([s stdString]);
  45. //}
  46. -(NSString *)name
  47. {
  48.     return [NSString stringWithStdString:[[CelestiaAppCore sharedAppCore] appCore]->getSimulation()->getUniverse()->getDSOCatalog()->getDSOName([self galaxy])];
  49. }
  50. -(CelestiaVector*)orientation
  51. {
  52.     return [CelestiaVector vectorWithQuatf:[self galaxy]->getOrientation()];
  53. }
  54. -(void)setOrientation:(CelestiaVector*)q
  55. {
  56.     [self galaxy]->setOrientation([q quatf]);
  57. }
  58. -(CelestiaVector*)position
  59. {
  60.     return [CelestiaVector vectorWithPoint3d:[self galaxy]->getPosition()];
  61. }
  62. -(void)setPosition:(CelestiaVector*)q
  63. {
  64.     [self galaxy]->setPosition([q point3d]);
  65. }
  66. //-(void)setName:(NSString*)s
  67. //{
  68. //    [self galaxy]->setName([s stdString]);
  69. //}
  70. -(NSNumber *)radius
  71. {
  72.     return [NSNumber numberWithFloat:[self galaxy]->getRadius()];
  73. }
  74. -(void)setRadius:(NSNumber*)r
  75. {
  76.     [self galaxy]->setRadius([r floatValue]);
  77. }
  78. -(NSNumber *)detail
  79. {
  80.     return [NSNumber numberWithFloat:[self galaxy]->getDetail()];
  81. }
  82. -(void)setDetail:(NSNumber*)d
  83. {
  84.     [self galaxy]->setDetail([d floatValue]);
  85. }
  86. @end