public static SPlatform CreateEmpty(uint numberPointsOnGround, uint numberOfInstruments, uint numberOfAxes)
            {
                var pointsArray = new SPoint3D[numberPointsOnGround].Set(SPoint3D.Default());
                var axisArray   = new SAxis[numberOfAxes].Set(SAxis.Default());
                var axisArray_m = MarshalArray(axisArray);

                var childPointers    = s_childPointerLut[axisArray_m];
                var instrumentsArray = new SInstrument[numberOfInstruments].Set(SInstrument.Default(childPointers));

                return(new SPlatform()
                {
                    m_pcPlatformId = NotSet.ToPtr(),
                    m_oPlatform2Ground = STransformation.Default(),
                    m_oBoundingBox = SBoundingBox.Default(),

                    m_nNrOfPlatformPointsOnGround = numberPointsOnGround,
                    m_poPointsOnGround = MarshalArray(pointsArray),

                    m_nNrOfPlatformInstruments = numberOfInstruments,
                    m_poPlatformInstruments = MarshalArray(instrumentsArray),

                    m_nNrOfPlatformAxes = numberOfAxes,
                    m_poPlatformAxes = axisArray_m
                });
            }
 public static SBoundingBox Default()
 {
     return(new SBoundingBox()
     {
         m_oOriginBB = SPoint3D.Default(),
         m_oEdge1 = SVector3D.Default(),
         m_oEdge2 = SVector3D.Default(),
         m_oEdge3 = SVector3D.Default()
     });
 }
 public static SInstrumentExtrinsics Default()
 {
     return(new SInstrumentExtrinsics()
     {
         m_pcReferenceFrame = NotSet.ToPtr(),
         m_oPosition = SPoint3D.Default(),
         m_oLookAt = SVector3D.Default(),
         m_oUp = SVector3D.Default(),
         m_oBoundingBox = SBoundingBox.Default()
     });
 }
            public double   m_fCurrentAngle; /* unit: gon */

            public static SAxis Default()
            {
                return(new SAxis()
                {
                    m_pcAxisId = NotSet.ToPtr(),
                    m_pcAxisDescription = NotSet.ToPtr(),
                    m_oStartPoint = SPoint3D.Default(),
                    m_oEndPoint = SPoint3D.Default(),
                    m_fMinAngle = 1.0,
                    m_fMaxAngle = 2.0,
                    m_fCurrentAngle = 3.0
                });
            }