ModelPointer ModelPointer::operator[]( QString path ) const { Model *res = m; QStringList l = path.split( '.' ); for( int i = 0; res and i < l.size(); ++i ) { QStringList m = l[ i ].split( '[' ); for( int j = 0; res and j < m.size(); ++j ) { QString n = m[ j ]; if ( j ) { n.replace( ']', ' ' ); n = n.trimmed(); } Model *tModelPointer = res->attr( n ); if ( tModelPointer == 0 and n.indexOf( '.' ) < 0 and n.indexOf( '/' ) < 0 ) return ModelPointer( c, res, n ); res = tModelPointer; } } return ModelPointer( c, res ); }
ModelPointer ModelPointer::operator[]( int index ) const { return ModelPointer( c, m and not p.size() ? m->attr( index ) : 0 ); }
ModelPointer ModelPointer::new_ptr( ModelPointer model ) { return ModelPointer( 0, new Ptr( (qint64)model.m ) ); }
ModelPointer ModelPointer::new_typed_array_qint32() { return ModelPointer( 0, new TypedArray<qint32> ); }
ModelPointer ModelPointer::new_path( QString filename ) { return ModelPointer( 0, new Path( filename ) ); }
ModelPointer ModelPointer::new_lst() { return ModelPointer( 0, new Lst ); }
ModelPointer ModelPointer::new_lst( QString type ) { return ModelPointer( 0, new LstWithType( type ) ); }
ModelPointer ModelPointer::new_obj( QString type ) { return ModelPointer( 0, new ModelWithAttrAndName( type ) ); }
void SkyInit () { skydome = ModelPointer("skydome.dh4"); }