Simplifying surface feature placement

Discussion forum for Celestia developers; topics may only be started by members of the developers group, but anyone can post replies.
Topic author
chris
Site Admin
Posts: 4211
Joined: 28.01.2002
With us: 22 years 5 months
Location: Seattle, Washington, USA

Simplifying surface feature placement

Post #1by chris » 06.06.2008, 23:48

It is quite a chore to correctly place and orient objects on the surface of a planet in Celestia. The difficulties are evident if you read this thread:

viewtopic.php?f=6&p=104425#p104425

A long discussion follows; if you'd rather skip it, the point is that it would be nice to place objects on the surface of planets using SSC definitions like this:

Code: Select all

SurfaceObject "Lunar Rover" "Sol/Earth/Moon"
{
    Mesh "lunar.3ds"
    Radius 0.002
    SurfacePosition [ 56 -12 0.21 ]
    SurfaceFixedRotation { Heading 65  }
}


Positioning the object correctly isn't too hard if you use the LongLat property, but there are some catches:
  • LongLat doesn't help to properly orient the object
  • LongLat cannot be used for objects that move relative to the surface of a planet.
  • LongLat is a huge hack. I don't expect anyone outside the dev team to care too much, but there are problems with it. For one thing, it doesn't interact properly with reference frames.

The function of LongLat can be more elegantly handled with a BodyFixed frame and a FixedPosition trajectory. These both place an object on the surface of the Earth:

Code: Select all

"Fixed - LongLat" "Sol/Earth"
{
    LongLat [ -122 47.5 0.1 ]
}

"Fixed - Frame" "Sol/Earth"
{
    OrbitFrame { BodyFixed { Center "Sol/Earth" } }
    FixedPosition [ -2283.448 -3654.281 4702.502 ]
}


However, as is apparent from the code above, the elegance of the frame based approach is only conceptual and not syntactic. It's considerably harder to use FixedPosition and OrbitFrame, largely because the add-on creator must manually convert longitude, latitude, and altitude into rectangular coordinates for use with FixedPosition. So, the first addition I want to propose is a spherical coordinate version of FixedPosition. For lack of better ideas, it could be called SurfacePosition and have three values: longitude, latitude, and altitude (in kilometers). The simplified definition looks like this:

Code: Select all

"Fixed - Frame" "Sol/Earth"
{
    OrbitFrame { BodyFixed { Center "Sol/Earth" } }
    SurfacePosition [ -122 47.5 0.1 ]   
}


That's better, but it's still not as simple as using LongLat. The problem is that we have to explicitly set the frame. But what if we added a new object type with a different default frame? Add-on creators could use the new object type to place an object on the surface of a planet without ever being aware that they were dealing with frames. It might look like this:

Code: Select all

SurfaceObject "Fixed" "Sol/Earth"
{
    SurfacePosition [ -122 47.5 0.1 ]
}


This is as simple as LongLat. Explicitly declaring that the body is a surface object is a nice documentation bonus. But, the real payoff comes when we try and orient the object. Doing this right now is difficult because the parameters for orienting an object in space aren't intuitive for orienting an object on the surface of a planet. In Google Earth's KML files, the orientation parameters are heading, tilt, and roll. Heading is the angle reckoned from the local north direction. Tilt is equivalent to pitch or horizon angle. These angles give the orientation of an object in a frame where one axis points straight up toward the sky, and another axis points north. In Celestia 1.5.0, you can set up a frame, but there's a lot of typing involved. Here's an example from Selden's very cool Sidereal Clock add-on"

Code: Select all

        TwoVector
        {
            Center "Sol/Earth/Sidereal_Clock"
            Primary   
            {
                Axis "-y"
                RelativePosition {Target "Sol/Earth"}
            }
            Secondary   
            {
                Axis "z"
                ConstantVector   
                {
                    Vector [ 0 0 1]
                    Frame {  BodyFixed { Center "Sol/Earth" } }
                }
            }
        }


Just as we made a BodyFixed frame the default orbit frame for the new SurfaceObject type, we can make this complicated TwoVector frame the default body frame. We can now position one of the Mars rovers on the surface with this definition:

Code: Select all

SurfaceObject "MER-A (Spirit) Rover" "Sol/Mars"
{
   Class "spacecraft"
   Mesh "spirit.3ds"
   Beginning "2004 01 04"
   Radius 0.0009 # 1.8m diameter *roughly*
   SurfacePosition [175.4785 -14.5718 0.0009]
}


By default, the rover will face north and have its wheels on the ground. A new type of FixedRotation--let's call it SurfaceFixedRotation--would let us adjust the orientation of the rover in an intuitive way. To make it face east, we'd add this line to definition:

SurfaceFixedRotation { Heading 90 }

If it happens to be inclined a few degrees because it's climbing a hill, we might have this:

SurfaceFixedRotation { Heading 90 Tilt 5 }

All of this can be implemented by modifying just the solar system parser in Celestia--there's no need to change the 'guts' of the program. If people think that it is important and useful, it could even make it into Celestia 1.6.0.

--Chris

BobHegwood
Posts: 1803
Joined: 12.10.2007
With us: 16 years 8 months

Re: Simplifying surface feature placement

Post #2by BobHegwood » 07.06.2008, 00:04

Well, as you know, I am responsible for the aforementioned thread and discussion of this surface orientation quandary. What you have described above looks to me like a very elegant solution to an otherwise vastly complicated procedure. :wink:

If you're looking for feedback here, I would certainly be in favor of the changes. One question though...
If this is implemented, will we then have to retro-actively go back and modify (once again) the coding that already works just fine? Took some expert opinions, and tutorials from some patient people to get me up to speed on the other method. Will this coding have to be modified once again?

If that's the case, I don't think that I'd like the changes proposed here. I mean that I can now supply relevant coordinates and locations with relative ease now. Would hate to throw this out the window after having spent so much time on learning the details in the first place.

Just my opinion, so feel free to disregard, but thanks again for the on-going development. Looks good to me from this end.

Thanks, Brain-Dead
Brain-Dead Geezer Bob is now using...
Windows Vista Home Premium, 64-bit on a
Gateway Pentium Dual-Core CPU E5200, 2.5GHz
7 GB RAM, 500 GB hard disk, Nvidia GeForce 7100
Nvidia nForce 630i, 1680x1050 screen, Latest SVN

Topic author
chris
Site Admin
Posts: 4211
Joined: 28.01.2002
With us: 22 years 5 months
Location: Seattle, Washington, USA

Re: Simplifying surface feature placement

Post #3by chris » 07.06.2008, 00:08

BobHegwood wrote:Well, as you know, I am responsible for the aforementioned thread and discussion of this surface orientation quandary. What you have described above looks to me like a very elegant solution to an otherwise vastly complicated procedure. :wink:

If you're looking for feedback here, I would certainly be in favor of the changes. One question though...
If this is implemented, will we then have to retro-actively go back and modify (once again) the coding that already works just fine? Took some expert opinions, and tutorials from some patient people to get me up to speed on the other method. Will this coding have to be modified once again?

If that's the case, I don't think that I'd like the changes proposed here. I mean that I can now supply relevant coordinates and locations with relative ease now. Would hate to throw this out the window after having spent so much time on learning the details in the first place.

Just my opinion, so feel free to disregard, but thanks again for the on-going development. Looks good to me from this end.

Thanks for the feedback, Bob. The proposed changes would definitely not affect compatibility with existing add-ons. All of the techniques you've spent time learning would still work. Believe me, I don't want to make your job of keeping up all the add-ons on the Motherlode any harder than it already is ;)

--Chris

BobHegwood
Posts: 1803
Joined: 12.10.2007
With us: 16 years 8 months

Re: Simplifying surface feature placement

Post #4by BobHegwood » 07.06.2008, 00:31

chris wrote:
Thanks for the feedback, Bob. The proposed changes would definitely not affect compatibility with existing add-ons. All of the techniques you've spent time learning would still work. Believe me, I don't want to make your job of keeping up all the add-ons on the Motherlode any harder than it already is ;)

--Chris

Well it was an extremely useful exercise, and I have also used the thread on my home page as a "Tutorial" reference for others with less than PhD's in their educational backgrounds. In fact, I'll be adding a "Tutorial" section to my page here shortly, and that section will direct people to these kinds of questions. I have done the same thing for Doctor Schrempp's and Steve's (a.k.a. Cartrite's) new Virtual Texture tutorial over on the CM Forum. These two gentlemen patiently explained to me (step-by-step) what I needed to understand in order to create Virtual Textures with Fridger's new tools. These things are useful, and should be made available to a broader audience in my opinion.

As always, many, many thanks for all that you do here. I'm simply some average Bozo who loves to explore the Universe, so anything you do here is always appreciated by myself.

As to the Motherlode work, I have downloaded, tested, re-written descriptions for, and created screen shots for almost everything on the Motherlode now. I still have work to do on the scripts pages, but the rest of the site is starting to shape up very nicely. I have also added new links to the "Surface Location" thread within one or two of the older add-ons so that others can also follow the thread when they have trouble understanding how to install and use the surface add-ons which were created at some point in the past.

Again, many thanks here. -Brain-Dead Bob :roll:
Brain-Dead Geezer Bob is now using...
Windows Vista Home Premium, 64-bit on a
Gateway Pentium Dual-Core CPU E5200, 2.5GHz
7 GB RAM, 500 GB hard disk, Nvidia GeForce 7100
Nvidia nForce 630i, 1680x1050 screen, Latest SVN

CAP-Team
Posts: 194
Joined: 27.12.2006
Age: 49
With us: 17 years 6 months
Location: Vriezenveen, the Netherlands
Contact:

Re: Simplifying surface feature placement

Post #5by CAP-Team » 07.06.2008, 13:42

It would be handy if this surface placing of objects can also be used within timeline definitions, for the huygens lander for example.
Windows 7 Ultimate x64, Intel Core i7 2600K 3.4 Ghz, 4 GB RAM, 120 GB SSD + 1 TB hdd, nVidia GTX460 1 GB, Celestia 1.6.0.xxxx
Download my latest SVN Build

Avatar
Chuft-Captain
Posts: 1779
Joined: 18.12.2005
With us: 18 years 6 months

Re: Simplifying surface feature placement

Post #6by Chuft-Captain » 07.06.2008, 14:54

I think this simplification of the SSC's (or something like it) will be welcomed by all addon creators Chris.

One thing you may not have yet considered is that invariably once a Rover's been placed on the surface, someone (probably me :wink: ) will want to move it across the surface, perhaps under the control of a LUA function (eg. A scripted SurfacePosition... perhaps analogous to a ScriptedOrbit, and possibly incorporating a ScriptedOrientation as the rover changes it's bearing.

Have you considered this?
"Is a planetary surface the right place for an expanding technological civilization?"
-- Gerard K. O'Neill (1969)

CATALOG SYNTAX HIGHLIGHTING TOOLS LAGRANGE POINTS

Avatar
Hungry4info
Posts: 1133
Joined: 11.09.2005
With us: 18 years 9 months
Location: Indiana, United States

Re: Simplifying surface feature placement

Post #7by Hungry4info » 07.06.2008, 16:05

Oh this would be very, very useful! :D
Would it also be possible to set a rotation period around a specified axis?

For example, I may want to place a satellite above the equator. And I also may want it to have a separate model containing solar arrays, which I would put in the same location. I would want to set it so that the rotation period of the solar arrays are the same as the orbital period of Earth, so that they face the sun, and not track Earth.
Current Setup:
Windows 7 64 bit. Celestia 1.6.0.
AMD Athlon Processor, 1.6 Ghz, 3 Gb RAM
ATI Radeon HD 3200 Graphics

SU(3)xSU(2)xU(1)
Posts: 59
Joined: 05.05.2008
With us: 16 years 1 month

Re: Simplifying surface feature placement

Post #8by SU(3)xSU(2)xU(1) » 07.06.2008, 16:11

Chris,

I will be very grateful, if you implement these new methods of puting objects on surfaces of planets and moons. I'd like to know if it's possible to implement similar simplifications for puting objects also on surfaces of irregular asteroids, like spacecraft NEAR on Eros surface. I suppose it would be much more difficult. What do you think?

Paul
"Physicists know what's important, but they don't know what is true. Mathematicians know what's true, but they don't know what is important."

BobHegwood
Posts: 1803
Joined: 12.10.2007
With us: 16 years 8 months

Re: Simplifying surface feature placement

Post #9by BobHegwood » 07.06.2008, 16:18

SU(3)xSU(2)xU(1) wrote:Chris,

I will be very grateful, if you implement these new methods of puting objects on surfaces of planets and moons. I'd like to know if it's possible to implement similar simplifications for puting objects also on surfaces of irregular asteroids, like spacecraft NEAR on Eros surface. I suppose it would be much more difficult. What do you think?

Paul

Now there's a good idea... So far, the only way I can do this is through much trial and error. :wink:
Brain-Dead Geezer Bob is now using...
Windows Vista Home Premium, 64-bit on a
Gateway Pentium Dual-Core CPU E5200, 2.5GHz
7 GB RAM, 500 GB hard disk, Nvidia GeForce 7100
Nvidia nForce 630i, 1680x1050 screen, Latest SVN

Avatar
Chuft-Captain
Posts: 1779
Joined: 18.12.2005
With us: 18 years 6 months

Re: Simplifying surface feature placement

Post #10by Chuft-Captain » 07.06.2008, 16:33

Hungry4info wrote:Oh this would be very, very useful! :D
Would it also be possible to set a rotation period around a specified axis?

For example, I may want to place a satellite above the equator. And I also may want it to have a separate model containing solar arrays, which I would put in the same location. I would want to set it so that the rotation period of the solar arrays are the same as the orbital period of Earth, so that they face the sun, and not track Earth.
Hungry,
You can already do this, however Chris' latest plans will simplify the SSC code in the future.
"Is a planetary surface the right place for an expanding technological civilization?"
-- Gerard K. O'Neill (1969)

CATALOG SYNTAX HIGHLIGHTING TOOLS LAGRANGE POINTS

duds26
Posts: 328
Joined: 05.02.2007
Age: 34
With us: 17 years 4 months
Location: Europe

Re: Simplifying surface feature placement

Post #11by duds26 » 08.06.2008, 14:39

This is a welcome simplification for anyone who is trying to make something that stands/sticks on the ground.
It's very useful.

Topic author
chris
Site Admin
Posts: 4211
Joined: 28.01.2002
With us: 22 years 5 months
Location: Seattle, Washington, USA

Re: Simplifying surface feature placement

Post #12by chris » 09.06.2008, 19:46

CAP-Team wrote:It would be handy if this surface placing of objects can also be used within timeline definitions, for the huygens lander for example.

Yes, that would be useful and possible with the scheme I want to implement. The default body frame used for surface objects will also be available to use within a timeline. Also, if you're *not* creating a SurfaceObject, you'll still be able to use the simplified reference frame for orienting surface objects. I haven't decided on the naming yet, but it will look something like this:

Code: Select all

Topocentric
{
    Observer "Sol/Mars/MER A"
    Body "Sol/Mars"
}


It could even be set up so the default observer is the object and the default observer is the parent object. Then, all you need for a topocentric orientation frame is this:

Code: Select all

BodyFrame { Topocentric {} }


Once again, this is all possible right now, but with a lot more typing. A topocentric frame must be expressed as a two-vector frame:

Code: Select all

BodyFrame {
  TwoVector
  {
    Center "Sol/Earth/Sidereal_Clock"
    Primary   
    {
      Axis "-y"
      RelativePosition {Target "Sol/Earth"}
    }
    Secondary   
    {
      Axis "z"
      ConstantVector   
      {
        Vector [ 0 0 1]
        Frame {  BodyFixed { Center "Sol/Earth" } }
      }
    }
  }
}


--Chris

Topic author
chris
Site Admin
Posts: 4211
Joined: 28.01.2002
With us: 22 years 5 months
Location: Seattle, Washington, USA

Re: Simplifying surface feature placement

Post #13by chris » 09.06.2008, 20:41

Chuft-Captain wrote:I think this simplification of the SSC's (or something like it) will be welcomed by all addon creators Chris.

One thing you may not have yet considered is that invariably once a Rover's been placed on the surface, someone (probably me :wink: ) will want to move it across the surface, perhaps under the control of a LUA function (eg. A scripted SurfacePosition... perhaps analogous to a ScriptedOrbit, and possibly incorporating a ScriptedOrientation as the rover changes it's bearing.

Have you considered this?

Yes. In fact, that's one of the main reasons for using a frame: no matter where the rover moves, the rover will always be oriented 'up'--that is not tilted with respect to the surface--if the orientation isn't modified. If the rover is moving around on a flat region, you only need to think about a changing a single angle, which is a great simplification.

--Chris

steven75
Posts: 2
Joined: 12.07.2008
With us: 15 years 11 months

Re: Simplifying surface feature placement

Post #14by steven75 » 12.07.2008, 07:05

Hungry4info said
“Would it also be possible to set a rotation period around a specified axis?”
I think even if it is possible it will be difficult to do this.
Steven, my web site is here

Avatar
selden
Developer
Posts: 10190
Joined: 04.09.2002
With us: 21 years 10 months
Location: NY, USA

Re: Simplifying surface feature placement

Post #15by selden » 12.07.2008, 12:29

steven75 wrote:Hungry4info said
“Would it also be possible to set a rotation period around a specified axis?”
I think even if it is possible it will be difficult to do this.

It's actually quite easy to implement Hungry's scenario using the 2-vector construct.

If the solar panels rotate only around one axis, with a rotator connected to the satellite, one can specify the orientation of the primary axis of the solar panels relative to the axis of the satellite. The secondary axis should be defined to point toward the Sun.

Although they'll have the maximum area possible exposed to sunlight, they won't be fully face on all the time. There'll also be a glitch if their primary axis ever points directly toward the sun.

They can be made to stay face on either by actively reorienting the satellite, or by defining a gimbal mount to provide rotation around another axis, something like the way the solar panels of the ISS are supposed to work. (One of them has a busted gimbal right now.)
Selden

bdm
Posts: 461
Joined: 22.07.2005
With us: 18 years 11 months
Location: Australia

Re: Simplifying surface feature placement

Post #16by bdm » 07.08.2008, 23:49

Will this feature be in the forthcoming 1.6 version of Celestia?

Topic author
chris
Site Admin
Posts: 4211
Joined: 28.01.2002
With us: 22 years 5 months
Location: Seattle, Washington, USA

Re: Simplifying surface feature placement

Post #17by chris » 08.08.2008, 16:55

bdm wrote:Will this feature be in the forthcoming 1.6 version of Celestia?

Yes, I'd like to implement it for 1.6.0. I'm in the process of making a list of remaining features and bug fixes for 1.6.0.

--Chris

Topic author
chris
Site Admin
Posts: 4211
Joined: 28.01.2002
With us: 22 years 5 months
Location: Seattle, Washington, USA

Re: Simplifying surface feature placement

Post #18by chris » 14.08.2008, 18:25

Here's the complete proposal. Comments and suggestions most welcome. Things I'm looking for:
- Do you have better ideas for the names of the different properties and frames?
- Is there anything that needs further clarification?
- Are there modifications which could make this easier to use or more powerful?

After (or concurrent with) the 1.6.0 release, I'm going to release an example rich guide covering 'modern' add-on creation. Working on this guide was one of the things that made me realize just how much of a headache it is to stick a feature on the surface of a planet in 1.5.1.

--Chris


Easier surface feature placement

The whole point of this proposal is to greatly simplify the placement and
orientation of objects on the surfaces of planets and moons. With nothing
beyond ssc parser modifications, we can make placing an object this simple:

SurfaceObject "Space Needle" "Sol/Earth"
{
Mesh "spaceneedle.cmod"
Radius 0.092
FixedPosition { Planetographic [ -122.34 47.6 0.02 ] }
}

In Celestia 1.5.1, add-on creators typically use LongLat to place objects on
the surface of a planet. LongLat was added to Celestia before reference frames
were supported. LongLat is actually a special orbit type. In additional to
being a godawful hack, this approach has some serious disadvantages compared
to a reference frame based approach:
- It doesn't make it easy to orient an object
- It doesn't help with objects that move on the surface of a planet (since
LongLat is a trajectory itself, you can't use, say, a SampledTrajectory
for the path of an object.)


There are four parts in the proposal:

1. SurfaceObject

Declaring a body a SurfaceObject changes its default orbit frame, body frames,
and rotation model. That's all--it's otherwise just an ordinary SSC object.
Normally, both the orbit frame and body frame default to the equatorial of the
parent body. The usual default rotation model is a uniform rotation with a
synchronous period. But when positioning an object on the surface of
a planet, it's much more convenient to use a coordinate system in which an
object with a constant position and orientation isn't moving relative to
the planet's surface. Thus, an add-on author must override both the orbit
and body frame:

Body "Space Needle" "Sol/Earth"
{
Mesh "spaceneedle.cmod"
Radius 0.092
FixedPosition [ ... ]

# required overrides
OrbitFrame { BodyFixed {} }
BodyFrame { BodyFixed {} }
FixedRotation { }
}

With SurfaceObject, the add-on creator doesn't need to think about frames at
all (though he or she could still choose to override the defaults if desired.)
The above definition can be simplified to the following:

SurfaceObject "Space Needle" "Sol/Earth"
{
Mesh "spaceneedle.cmod"
Radius 0.092
FixedPosition [ ... ]
}

You can see that a good amount of 'boilerplate' text is eliminated. The default
body frame for a SurfaceObject is actually not a BodyFixed frame. Instead,
it is the Topocentric frame described next. The Topocentric frame makes it
easier to orient an object with respect to the planet surface.


2. Topocentric frame

A topocentric frame has a z-axis in the direction of the zenith and an x-axis
pointing northward. The frrame is defined by two objects: the observer and
the target. By default, the observer in an object's topocentric frame is the
object itself, and the target is the parent object. In the Space Needle
example, Space Needle is the observer and Earth is the target.

The z-axis is a line from the target's center to the observer; the x-axis
at a right angle to the z-axis in the plane containing the z-axis and the
target's z-axis (typically the rotation axis.) Such a frame can already be
constructed as a TwoVector frame, but it's complicated enough that only the
most sophisticated add-on creators ever do it. This SSC excerpt sets up
a topocentric frame for the Space Needle:

TwoVector
{
Center "Sol/Earth/Space Needle"
Primary
{
Axis "-z"
RelativePosition { Target "Sol/Earth" }
}
Secondary
{
Axis "x"
ConstantVector
{
Vector [ 0 0 1 ]
Frame { BodyFixed { Center "Sol/Earth" } }
}
}
}

The equivalent topocentric frame is:

Topocentric
{
Target "Sol/Earth"
Observer "Sol/Earth/Space Needle"
}

Even easier, you could just use the defaults and write:

Topocentric { }

And since Topocentric is the default frame for a SurfaceObject, it's
possible to omit it completely.


3. Extensions to FixedPosition

In Celestia 1.5.1, FixedPosition is a vector property. The elements of the
vector give the offset of the object from the origin. When placing objects on
the surface of a planet, it is much more convenient to use spherical
coordinates. Thus, it would be useful to extend FixedPosition to optionally
be a property list, enabling things like the following:

"Mount Rainier Summit" "Sol/Earth"
{
Class "surfacefeature"
OrbitFrame { BodyFixed { "Sol/Earth" } }
FixedPosition { Planetocentric [ -121.76 46.85 4.392 ] }
}

The following vector properties would be allowed:

* Rectangular [ x y z ]
This is equivalent to the current vector form of FixedPosition.

* Planetocentric [ longitude latitude altitude ]
Longitude and latitude in degrees, altitude in kilometers. For consistency,
this order of the values is exactly the same as for LongLat. Altitude is
in measured in the direction pointing away from the center of the planet,
with zero altitude on the surface of the parent object's reference ellipsoid.

* Planetographic [ longitude latitude altitude ]
Similar to Planetocentric, except with planetographic coordinates. Altitude
is the distance from the parent object's reference ellipsoid (which is
different value than planetocentric altitude for non-spherical bodies.)

For compatibility, the vector form would still be allowed of course. These
are identical:

FixedPosition [ x y z ]
FixedPosition { Rectangular [ x y z ] }


4. SurfaceFixed rotation model

First of all, we need a better name for this. The idea is to provide a more
intuitive set of values for orienting objects on the surface of a planet
(though they could be used anywhere.) In GoogleEarth, the values are
Heading, Tilt, and Roll; these seem like reasonable choices to me, and have the
advantage of being familiar to any add-on creator with GoogleEarth experience.

Heading, gives the rotation about the z-axis; in the topocentric frame, it
gives the direction measured eastward from the local north. Tilt and roll
are rotations about the x and y axes. For a nice diagram, see:
http://code.google.com/apis/kml/documen ... html#model

A sample SurfaceFixedRotation:

SurfaceFixedRotatation
{
Heading 90
Tilt 10
Roll 12
}

(I expect that in the great majority of cases, Roll will be 0)

Avatar
selden
Developer
Posts: 10190
Joined: 04.09.2002
With us: 21 years 10 months
Location: NY, USA

Re: Simplifying surface feature placement

Post #19by selden » 14.08.2008, 18:50

Is Body going to be recognized as a keyword? Or is it already?

I suggest making Class "surfacefeature" one of the defaults for a SurfaceObject, too.

I dunno what to suggest as an alternative for SurfaceFixedRotation. Google seems to use Orientation, which would cause confusion if used in Celestia, I suspect.
Selden

Topic author
chris
Site Admin
Posts: 4211
Joined: 28.01.2002
With us: 22 years 5 months
Location: Seattle, Washington, USA

Re: Simplifying surface feature placement

Post #20by chris » 14.08.2008, 18:56

Thanks for the feedback, Selden . .

selden wrote:Is Body going to be recognized as a keyword? Or is it already?

It already is recognized; omitting the object type (which is what most people do) is equivalent to specifying Body.

I suggest making Class "surfacefeature" one of the defaults for a SurfaceObject, too.
I was thinking about that. If I did that, it would seem to make sense to change the of SurfaceObject to SurfaceFeature.

I dunno what to suggest as an alternative for SurfaceFixedRotation. Google seems to use Orientation, which would cause confusion if used in Celestia, I suspect.

That would be bad news :) But, SurfaceFixedRotation is a very clumsy name. I'm hoping to come up with something better.

--Chris


Return to “Ideas & News”