Buffalo 66
Director: Vincent Gallo.
Starring: Vincent Gallo, Christina Ricci, Angelica Huston, Ben Gazzara.
 Very few things depress me more than sitting through a rubbish movie that's getting good reviews. Who are these people who like Buffalo 66? They deserve a cruel and unusual punishment for making me believe that I could possibly enjoy that movie. Clearly, I'm not fit to think up their punishment since the worst thing I can think of at the moment, is making them sit through Buffalo 66 and apparently, that's not much of a punishment to them.
Where to begin? How about a plot summary? Here goes: everybody hates me, nobody loves me, I think I'll go sulk. If I died that would show them. They'd all be sorry then. And I'm such a wonderful person too. Most of all, it's important that I let the people know that I have a large penis! Really, I'm not kidding.
You think I'm being facetious, but honestly, that's a pretty accurate summary of Buffalo 66. It's the story of a man (at least by appearance a man, more aptly a boy) who's life is rotten and it's all his parents' fault. I think we're meant to believe that he's a really nice guy (I'm guessing this because we're told it over and over again; we never see any evidence of his actually being nice). He's a nice guy who has just had a bit of bad luck, particularly in his allocation of parents.
His big complaint is that his parents are awful to him and treat him terribly. It's hard to tell since they are such caricatures. Sure, I'll admit that the flashback imply that his parents were pretty evil but they never come across as real people: they are nasty creatures built out of the imagination of a person with a real chip on the shoulder.   You vow revenge. Most of us get over it. Vincent Gallo, however, made a movie out of it.
On balance, he's not exactly nice to them either. Of course, this isn't important; it's how people treat him that matters. Again, it's the world of a six year old, who doesn't realise that his parents are people too, and thinks only of them in terms of himself.
As well as this sulking six year old in Vincent Gallo's body, Christina Ricci plays the role of someone kidnapped by Billy Brown (Vincent Gallo) and forced to play his wife for the benefit of his parents. I'm a big fan of Christina Ricci and will admit that she acts quite well in this, but the role is so horrid. What is wrong with this woman that she actually thinks Billy Brown is a nice guy. A couple of times in the movie she states something like, "I think you're the nicest guy and the best looking guy I've ever met." At certain times, we get to see flashback scenes of Billy's childhood that are meant to tell us that he's had a horrible life; one can only imagine what torture Layla (Christina Ricci) must have gone through to actually think Billy is nice. He's awful to her the whole movie. >From this I can only conclude that men are such prizes that we've got to be glad when one of them just shows us a bit of attention! Ugh!
Add to this really irritating effects, such as the cutting from one scene to another and the point of view scenes in the family home, and you have a very painful 110 minutes. In fact the only thing that makes this movie vaguely watchable is the calibre of the people performing in it: Christina Ricci, Angelica Huston, Mickey Rourke. These are all good actors. It makes one wonder if the script was appreciably different from the final product. This is the only excuse I can make for these great people being in such a lousy film.
I don't mind so much that I actually paid to see this film. I mind more that the people responsible for such an onanistic movie get paid obscene amounts of money. Surely there are talented people out there. I know lots of really clever people.
Rating: F
Ratings System
HD: High Distinction D: Distinction CR: Credit P: Pass CP: Conceded Pass F: Fail
review page: http://www.cs.usyd.edu.au/~nikki/m_r/Intro.html
-- Nicole Lesley email<EMAIL_ADDRESS>"The world won't end in darkness, it'll end in family fun" The Beautiful South, One God.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


|
||||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |
See:
Description
| Interface Summary | |
|---|---|
| Chain<E> | Augmented data type guaranteeing O(1) insertion and removal from a set of ordered, unique elements. |
| Heap.Keys | |
| IterableNumberer<E> | A numberer which also supports an iterator on newly-added objects. |
| MultiMap | A map with sets as values. |
| Numberable | A class that numbers objects, so they can be placed in bitsets. |
| Numberer<E> | A numberer converts objects to unique non-negative integers, and vice-versa. |
| Switch | Basic interface used in the implementation of the Visitor design patterm. |
| Switchable | Basic interface used for visited objects in the Visitor design patterm. |
| Class Summary | |
|---|---|
| ArrayNumberer<E> | A class that numbers objects, so they can be placed in bitsets. |
| ArraySet<E> | Provides an implementation of the Set object using java.util.Array |
| BitSetIterator | A fast enumerator for sparse bit sets. |
| BitVector | This is the Soot internal implementation of java.util.BitSet with Felix and Jerome's clever efficient iterator. |
| Cons | A Lisp-style cons cell. |
| Debug | Provides utility methods for debugging, including assertions. |
| DeterministicHashMap | Implementation of HashMap which guarantees a stable (between executions) order for its elements upon iteration. |
| EscapedReader | A FilterReader which catches escaped characters (\\unnnn ) in the
input and de-escapes them. |
| EscapedWriter | A FilterWriter which catches to-be-escaped characters (\\unnnn ) in the
input and substitutes their escaped representation. |
| HashChain<E> | Reference implementation of the Chain interface, using a HashMap as the underlying structure. |
| HashMultiMap | A map with sets as values, HashMap implementation. |
| Heap | A heap (priority queue) implementation. |
| IdentityHashSet<E> | Implements a hashset with comparison over identity. |
| IntegerNumberer | A numberer that associates each number with the corresponding Long object. |
| IterableMap | |
| IterableSet | |
| JasminOutputStream | An output stream that wraps an existing output stream, and converts Jasmin code written into a class file that gets written to the original output stream. |
| LargeNumberedMap | A java.util.Map-like map with Numberable objects as the keys. |
| MapNumberer | |
| NumberedSet | Holds a set of Numberable objects. |
| NumberedString | A class that assigns integers to java.lang.Strings. |
| PhaseDumper | The PhaseDumper is a debugging aid. |
| SharedBitSet | |
| SharedBitSetCache | |
| SingletonList | A list containing exactly one object, immutable. |
| SmallNumberedMap | A java.util.Map-like map with Numberable objects as the keys. |
| StationaryArrayList | This class implements an ArrayList where the equality and hashCode use object equality, not list equality. |
| StringNumberer | A class that numbers strings, so they can be placed in bitsets. |
| StringTools | Utility methods for string manipulations commonly used in Soot. |
| UnitMap | Maps each unit to the result of mapTo . |
Generally useful utility classes for Soot.
|
||||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |


April Anderson
"This music is fresh, intriguing and beguiling; a new direction the acoustic scene has been waiting for"
BBC PRODUCER - DAVID P CRICKMORE
April Anderson is a multi instrumentalist and an original singer-songwriter. Her debut album "Swings and Roundabouts" has just been released on Acoustic Clock Records. Her music has been described as a unique blend of contemporary folk, tinged with jazz and she has been compared to early Joni Mitchell, Kate Bush, John Martyn and Nick Drake. Her lyrics often tell stories that are veiled in quirkiness and ambiguity, with themes centering on life's trials and traumas, joys and disappointments. All are delivered with an undercurrent of meaningful social comment.
As well as singing, April plays all guitars, mandolin, flute and piano on the album and is the sole writer, arranger and producer. Her guitar style reflects her interest in non-conventional tuning and finger picking while the vocal harmonies are sumptuous, sometimes ethereal. At times they possess a distinctive dissonant, edgy quality to them which is echoed in her arrangements.
With tremendous playing from her backing band, featuring an array of instruments such as Hammer Dulcimer, Recorders, Cello, exotic percussion, and some truly inspirational fiddle playing from Gerry Diver (producer of Lisa Knapp's album Wild and Undaunted) "Swings and Roundabouts" is an exciting and moving experience.
"A Confident and polished debut album. Aerial lyrics and complex twisting melodies.
Carefully crafted pieces of work, check it out."
ACOUSTIC MAGAZINE
Musical History
Taking the conventional route, April trained as a classical singer, pianist and flautist; she then undertook a degree in Jazz Contemporary and Popular music at The City of Leeds College of Music and graduated with a First.
After college April expanded her work as a jobbing musician travelling the world singing and playing piano. Her keyboard, flute and guitar work has been in demand for a variety of bands, and as soloist she has performed at many venues and festivals all over the country. She has worked as a studio session player for the BBC and Yorkshire TV, Ecco, Chrysalis and Arista Records, composed incidental music for a couple of touring theatre shows and, most recently, contributed flute to Curfew's latest album "Inside" and Roger Francomb's CD "Easy Storm". As a piano vocalist and a singer-actress April has performed in the West End at the London Palladium and the Royal Albert Hall and appeared in an award winning Off-Broadway show.
Songwriting
"Fabulous songs, great music"
BBC RADIO CAMBRIDGESHIRE - SUE MARCHANT SHOW
Throughout her stage and session career, April has continued to hone her singer/songwriter skills. While based in the City, she has been a regular performer at London folk clubs and showcase venues such as The 12 bar Club, The Half Moon, The Kashmir Club and Blackheath Concert Halls, and most recently The Cambridge Folk Festival which has led to some great BBC Radio play and Live sessions around the country. Most recently she got through to the finals of Acoustic Magazines Beautiful Days Singer-Songwriter competition.
 It's been well worth the wait.


For years, we've all heard the hype. And very few have actually tried it. It's the speedball: heroin and cocaine combined for the ultimate high. Most people that I know don't have the proper connections to get heroin, and even if they did, would never try it. I never would, and ever will. But the concept is simple - a stimulant and a narcotic at the same time. All the pleasant numbness of an opiate with all the mental acuity of a stimulant. On a smaller scale, a speedball is kind of like a beer and a smoke. The oldest barbiturate and the most common psychostimulant, mixed for a special synergy that many say makes them essential together.
So I decided to try something like a speedball, but on a smaller scale, but more substantial than a few Coronas and a walk with the Marlboro man. I had 75 milligrammes of oxycodone in the form of 15 pills with 5 milligrammes each. In addition, I had lots of crushed methylphenidate pills. In this experiment, I had about 50 milligrammes of methylphenidate.
I started at about 16.00 one afternoon with a bourbon and apple cider drink, taking down 5 milligrammes of oxycodone, and taking one half pill every fifteen minutes.  The effects took longer to kick in than expected, so I did a little cleaning around the house while the opiate energy slowly enveloped me. I never have been a hardcore opiate user at all. I was always a psychedelic mind-bending user, but after giving those up a while ago, I've started exploring other things. Other than post-surgery prescriptions, this was probably my second or third time ever using opiates.
After two or three hours, having steadily ingested about 30 milligrammes of oxycodone, I was beginning to feel a bit drowsy and was unable to pay close attention to what I was doing. I was done straightening the house, and had decided to compose some music, and was having difficulty keeping my eyes open. I was also feeling extremely euphoric. I couldn't believe how good I felt. I also itched, but loved the process of scraching and found it very gratifying. My creativity had been boosted by the opiate (not something I expected), but I now needed the mental acuity to put my creative ideas onto the paper. That was where the methylphenidate finally came in.
After crushing up the pills into a small mound of powder, I simply eyeballed two small lines that looked like they might be 5 milligrammes or so, and snorted them. I went back to the music paper and immediately continued the composition. Suddenly, new ideas that I had never conceived came to my mind, and I began unloading them onto the paper faster than I ever had composed before. Melody and harmony solidified perfectly for several sections, achieving the essence of the musical ideal. I continued composing measure after measure, voice after voice until I had come to a very clear stopping point.
By this time (almost 21.00), I had eaten 60 milligrammes of oxycodone, had consumed almost all of the crushed methylphenidate set aside for the experiment, and was more euphoric than I had ever been in my entire life. That includes a myriad of psychedelic experiences, including substances that many people have never heard of. This was, by far, the most amazing bodily high experience I have ever known. I decided to eat the remainder of the oxycodone, finish the methylphenidate and play games on the computer rather than compose. The composing had taken so much creative energy that I figured ending the evening with some entertainment wouldn't be that bad.
When 22.00 came around, the last 15 milligrammes of oxycodone had kicked in full force, the methylphenidate was almost gone, and I was in pure opiate state. I was starting to get nauseous. I had heard that being in a prostrate position can kill the nausea, so I tried it. It worked like a charm, and my closed eyes led to amazing visions and mental conversations with entities about the very experience. I knew there was nobody there and that I was alone, and the entities would reitierate that very thing to me. They would tell me, 'I am not here. You are alone on your bed, and my voice is not real.' 'Yes, of course,' I would think in response. This continued for some time until I decided to open my eyes and get back to reality.
Amazing. There I was, back with no problem whatsoever. I had been drinking water on a pretty regular basis, so I had to evacuate and drink a little more water. I decided to venture out for a smoke, which I found most enjoyable. The cold outside air was also welcome as a change from the constant opiate warmth that I had gotten quite used to. Upon returning inside, I decided that it would be time to call it a night. I prepared for slumber, and climbed aboard my bed, knowing that the experience was far from over.
Again, fantastic visions and mental philosophising continued for several hours before I finally fell into an actual state of restful sleep. A very wonderful experience indeed, and I can see how such experiences can be addicting for people. One part of me wants to repeat it and yet the other part of me says that it is not such a wise idea. Of course, the lack of availability of the substances is the great deturrent and I am thankful for that, because such a euphoria is so hard to come by, and never have I been so eager to produce such a volume of music.
Incidentally, I listened to a computerised performance of the composition just yesterday and found it to be one of my favourite pieces. It needs some building upon, but as a concept, it stands well and the ideas employed are some of my most insightful to date. If I ever stumble upon the necessary ingredients again, and the time is right in terms of the weight of my responsibilities, I think I will try it again. But until then, back to my work, my family, and my friends.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


{% if title %}
Audiology - {{ title }}
{% else %}
Audiology
{% endif %}
Audiology
Create your own playlist and share your music!
Get Started


Class EnumerableExtensions
Contains extension methods to convert view models and option objects to DynamicList<TViewModel, TOptions>.
Inherited Members
Namespace: DynamicVML.Extensions
Assembly: DynamicVML.dll
Syntax
public static class EnumerableExtensions
Methods
| Improve this Doc View SourceToDynamicList<TViewModel>(TViewModel, String)
Wraps a single view model into a partial dynamic list that can be sent back to the client.
Declaration
public static DynamicList<TViewModel> ToDynamicList<TViewModel>(this TViewModel viewModel, string containerId)
where TViewModel : class
Parameters
| Type | Name | Description |
|---|---|---|
| TViewModel | viewModel | The view model to be wrapped in a partial dynamic list. |
| String | containerId | The div ID of the already existing dynamic list container. |
Returns
| Type | Description |
|---|---|
| DynamicList<TViewModel> | A partial dynamic list with a single item that can be passed to the client. |
Type Parameters
| Name | Description |
|---|---|
| TViewModel | The type of your view model. |
ToDynamicList<TViewModel, TOptions>(TViewModel, String, TOptions)
Wraps a single view model into a partial dynamic list that can be sent back to the client.
Declaration
public static DynamicList<TViewModel, TOptions> ToDynamicList<TViewModel, TOptions>(this TViewModel viewModel, string containerId, TOptions options)
where TViewModel : class where TOptions : DynamicListItem<TViewModel>, new()
Parameters
| Type | Name | Description |
|---|---|---|
| TViewModel | viewModel | The view model to be wrapped in a partial dynamic list. |
| String | containerId | The div ID of the already existing dynamic list container. |
| TOptions | options | The options to be associated with your view model. Note that this
method will set the ViewModel property
of the given |
Returns
| Type | Description |
|---|---|
| DynamicList<TViewModel, TOptions> | A partial dynamic list with a single item that can be passed to the client. |
Type Parameters
| Name | Description |
|---|---|
| TViewModel | The type of your view model. |
| TOptions | The type of the options to be associated with your view model. |
ToDynamicList<TViewModel, TOptions>(TViewModel, String, Func<TViewModel, TOptions>)
Wraps a single view model into a partial dynamic list that can be sent back to the client.
Declaration
public static DynamicList<TViewModel, TOptions> ToDynamicList<TViewModel, TOptions>(this TViewModel viewModel, string containerId, Func<TViewModel, TOptions> optionsSelector)
where TViewModel : class where TOptions : DynamicListItem<TViewModel>, new()
Parameters
| Type | Name | Description |
|---|---|---|
| TViewModel | viewModel | The view model to be wrapped in a partial dynamic list. |
| String | containerId | The div ID of the already existing dynamic list container. |
| Func<TViewModel, TOptions> | optionsSelector | A function that can be used to define how your view model
should be wrapped in a |
Returns
| Type | Description |
|---|---|
| DynamicList<TViewModel, TOptions> | A partial dynamic list with a single item that can be passed to the client. |
Type Parameters
| Name | Description |
|---|---|
| TViewModel | The type of your view model. |
| TOptions | The type of the options to be associated with your view model. |
ToDynamicList<TViewModel, TModel>(TModel, String, Func<TModel, TViewModel>)
Wraps a single view model into a partial dynamic list that can be sent back to the client.
Declaration
public static DynamicList<TViewModel> ToDynamicList<TViewModel, TModel>(this TModel model, string containerId, Func<TModel, TViewModel> viewModelSelector)
where TViewModel : class
Parameters
| Type | Name | Description |
|---|---|---|
| TModel | model | The database model to be converted in a view model and wrapped in a partial dynamic list. |
| String | containerId | The div ID of the already existing dynamic list container. |
| Func<TModel, TViewModel> | viewModelSelector | A function that can be used to define how your view model should be created from your model. |
Returns
| Type | Description |
|---|---|
| DynamicList<TViewModel> | A partial dynamic list with a single item that can be passed to the client. |
Type Parameters
| Name | Description |
|---|---|
| TViewModel | The type of your view model. |
| TModel | The type of your (database) model. |
ToDynamicList<TViewModel, TOptions>(IEnumerable<TViewModel>)
Converts a list of TViewModel
objects into
a DynamicList<TViewModel, TOptions>.
Declaration
public static DynamicList<TViewModel> ToDynamicList<TViewModel, TOptions>(this IEnumerable<TViewModel> viewModels)
where TViewModel : class
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<TViewModel> | viewModels | The list of viewmodel objects to be wrapped in option objects and then added to the list. |
Returns
| Type | Description |
|---|---|
| DynamicList<TViewModel> | A DynamicList<TViewModel, TOptions> containing the given |
Type Parameters
| Name | Description |
|---|---|
| TViewModel | The type of your view model. |
| TOptions | The type of the options to be associated with your view model. |
ToDynamicList<TViewModel, TOptions>(IEnumerable<TViewModel>, Func<TViewModel, TOptions>)
Converts a list of TViewModel
objects into
a DynamicList<TViewModel, TOptions>.
Declaration
public static DynamicList<TViewModel, TOptions> ToDynamicList<TViewModel, TOptions>(this IEnumerable<TViewModel> viewModels, Func<TViewModel, TOptions> optionsSelector)
where TViewModel : class where TOptions : DynamicListItem<TViewModel>, new()
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<TViewModel> | viewModels | The list of viewmodel objects to be wrapped in option objects and then added to the list. |
| Func<TViewModel, TOptions> | optionsSelector | A function that can be used to configure the |
Returns
| Type | Description |
|---|---|
| DynamicList<TViewModel, TOptions> | A DynamicList<TViewModel, TOptions> containing the given |
Type Parameters
| Name | Description |
|---|---|
| TViewModel | The type of your view model. |
| TOptions | The type of the options to be associated with your view model. |
ToDynamicList<TViewModel, TOptions>(IEnumerable<TOptions>)
Converts a list of TOptions
objects into
a DynamicList<TViewModel, TOptions>.
Declaration
public static DynamicList<TViewModel, TOptions> ToDynamicList<TViewModel, TOptions>(this IEnumerable<TOptions> options)
where TViewModel : class where TOptions : DynamicListItem<TViewModel>, new()
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<TOptions> | options | The list of options objects to be added to the list. |
Returns
| Type | Description |
|---|---|
| DynamicList<TViewModel, TOptions> | A DynamicList<TViewModel, TOptions> containing the given |
Type Parameters
| Name | Description |
|---|---|
| TViewModel | The type of your view model. |
| TOptions | The type of the options to be associated with your view model. |
ToDynamicList<TViewModel, TModel>(IEnumerable<TModel>, Func<TModel, TViewModel>)
Converts a list of TViewModel
objects into
a DynamicList<TViewModel, TOptions>.
Declaration
public static DynamicList<TViewModel> ToDynamicList<TViewModel, TModel>(this IEnumerable<TModel> models, Func<TModel, TViewModel> viewModelSelector)
where TViewModel : class
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<TModel> | models | A list of database models to be converted into view models, and then inserted in a dynamic list. |
| Func<TModel, TViewModel> | viewModelSelector | A function that can be used to define how your view model should be created from your model. |
Returns
| Type | Description |
|---|---|
| DynamicList<TViewModel> |
Type Parameters
| Name | Description |
|---|---|
| TViewModel | The type of your view models. |
| TModel | The type of your (database) models. |
ToDynamicList<TViewModel, TOptions, TModel>(TModel, String, Func<TModel, TViewModel>, Func<TModel, TOptions>)
Wraps a single view model into a partial dynamic list that can be sent back to the client.
Declaration
public static DynamicList<TViewModel, TOptions> ToDynamicList<TViewModel, TOptions, TModel>(this TModel model, string containerId, Func<TModel, TViewModel> viewModelSelector, Func<TModel, TOptions> optionsSelector)
where TViewModel : class where TOptions : DynamicListItem<TViewModel>, new()
Parameters
| Type | Name | Description |
|---|---|---|
| TModel | model | The database model to be converted in a view model and wrapped in a partial dynamic list. |
| String | containerId | The div ID of the already existing dynamic list container. |
| Func<TModel, TViewModel> | viewModelSelector | A function that can be used to define how your view model should be created from your model. |
| Func<TModel, TOptions> | optionsSelector | A function that can be used to define how your view model
should be wrapped in a |
Returns
| Type | Description |
|---|---|
| DynamicList<TViewModel, TOptions> | A partial dynamic list with a single item that can be passed to the client. |
Type Parameters
| Name | Description |
|---|---|
| TViewModel | The type of your view model. |
| TOptions | The type of the options to be associated with your view model. |
| TModel | The type of your (database) model. |
ToDynamicList<TViewModel, TOptions, TModel>(TModel, String, Func<TModel, TOptions>)
Wraps a single view model into a partial dynamic list that can be sent back to the client.
Declaration
public static DynamicList<TViewModel, TOptions> ToDynamicList<TViewModel, TOptions, TModel>(this TModel model, string containerId, Func<TModel, TOptions> optionsSelector)
where TViewModel : class where TOptions : DynamicListItem<TViewModel>, new()
Parameters
| Type | Name | Description |
|---|---|---|
| TModel | model | The database model to be converted in a view model and wrapped in a partial dynamic list. |
| String | containerId | The div ID of the already existing dynamic list container. |
| Func<TModel, TOptions> | optionsSelector | A function that can be used to define how your view model
should be wrapped in a |
Returns
| Type | Description |
|---|---|
| DynamicList<TViewModel, TOptions> | A partial dynamic list with a single item that can be passed to the client. |
Type Parameters
| Name | Description |
|---|---|
| TViewModel | The type of your view model. |
| TOptions | The type of the options to be associated with your view model. |
| TModel | The type of your (database) model. |
ToDynamicList<TViewModel, TOptions, TModel>(IEnumerable<TModel>, Func<TModel, TViewModel>, Func<TModel, TOptions>)
Converts a list of TViewModel
objects into
a DynamicList<TViewModel, TOptions>.
Declaration
public static DynamicList<TViewModel, TOptions> ToDynamicList<TViewModel, TOptions, TModel>(this IEnumerable<TModel> models, Func<TModel, TViewModel> viewModelSelector, Func<TModel, TOptions> optionsSelector)
where TViewModel : class where TOptions : DynamicListItem<TViewModel>, new()
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<TModel> | models | A list of database models to be converted into view models, wrapped in
|
| Func<TModel, TViewModel> | viewModelSelector | A function that can be used to define how your view model should be created from your model. |
| Func<TModel, TOptions> | optionsSelector | A function that can be used to define how your view model
should be wrapped in a |
Returns
| Type | Description |
|---|---|
| DynamicList<TViewModel, TOptions> |
Type Parameters
| Name | Description |
|---|---|
| TViewModel | The type of your view models. |
| TOptions | The type of the options to be associated with your view models. |
| TModel | The type of your (database) models. |
ToDynamicList<TViewModel, TOptions, TModel>(IEnumerable<TModel>, Func<TModel, TOptions>)
Converts a list of TViewModel
objects into
a DynamicList<TViewModel, TOptions>.
Declaration
public static DynamicList<TViewModel, TOptions> ToDynamicList<TViewModel, TOptions, TModel>(this IEnumerable<TModel> models, Func<TModel, TOptions> optionsSelector)
where TViewModel : class where TOptions : DynamicListItem<TViewModel>, new()
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<TModel> | models | A list of database models to be converted into view models, wrapped in
|
| Func<TModel, TOptions> | optionsSelector | A function that can be used to define how your view model
should be wrapped in a |
Returns
| Type | Description |
|---|---|
| DynamicList<TViewModel, TOptions> |
Type Parameters
| Name | Description |
|---|---|
| TViewModel | The type of your view models. |
| TOptions | The type of the options to be associated with your view models. |
| TModel | The type of your (database) models. |


Go to the source code of this file.
Defines | |
| #define | AI_CONFIG_GLOB_MEASURE_TIME "GLOB_MEASURE_TIME" |
| Enables time measurements. | |
| #define | AI_CONFIG_IMPORT_NO_SKELETON_MESHES "IMPORT_NO_SKELETON_MESHES" |
| Global setting to disable generation of skeleton dummy meshes. | |
| #define | AI_CONFIG_PP_SBBC_MAX_BONES "PP_SBBC_MAX_BONES" |
| Maximum bone count per mesh for the SplitbyBoneCount step. | |
| #define | AI_CONFIG_PP_CT_MAX_SMOOTHING_ANGLE "PP_CT_MAX_SMOOTHING_ANGLE" |
| Specifies the maximum angle that may be between two vertex tangents that their tangents and bi-tangents are smoothed. | |
| #define | AI_CONFIG_PP_CT_TEXTURE_CHANNEL_INDEX "PP_CT_TEXTURE_CHANNEL_INDEX" |
| Source UV channel for tangent space computation. | |
| #define | AI_CONFIG_PP_GSN_MAX_SMOOTHING_ANGLE "PP_GSN_MAX_SMOOTHING_ANGLE" |
| Specifies the maximum angle that may be between two face normals at the same vertex position that their are smoothed together. | |
| #define | AI_CONFIG_IMPORT_MDL_COLORMAP "IMPORT_MDL_COLORMAP" |
| Sets the colormap (= palette) to be used to decode embedded textures in MDL (Quake or 3DGS) files. | |
| #define | AI_CONFIG_PP_RRM_EXCLUDE_LIST "PP_RRM_EXCLUDE_LIST" |
| Configures the aiProcess_RemoveRedundantMaterials step to keep materials matching a name in a given list. | |
| #define | AI_CONFIG_PP_PTV_KEEP_HIERARCHY "PP_PTV_KEEP_HIERARCHY" |
| Configures the aiProcess_PreTransformVertices step to keep the scene hierarchy. Meshes are moved to worldspace, but no optimization is performed (read: meshes with equal materials are not joined. The total number of meshes won't change). | |
| #define | AI_CONFIG_PP_PTV_NORMALIZE "PP_PTV_NORMALIZE" |
| Configures the aiProcess_PreTransformVertices step to normalize all vertex components into the [-1,1] range. That is, a bounding box for the whole scene is computed, the maximum component is taken and all meshes are scaled appropriately (uniformly of course!). This might be useful if you don't know the spatial dimension of the input data. | |
| #define | AI_CONFIG_PP_PTV_ADD_ROOT_TRANSFORMATION "PP_PTV_ADD_ROOT_TRANSFORMATION" |
| Configures the aiProcess_PreTransformVertices step to use a users defined matrix as the scene root node transformation before transforming vertices. Property type: bool. Default value: false. | |
| #define | AI_CONFIG_PP_PTV_ROOT_TRANSFORMATION "PP_PTV_ROOT_TRANSFORMATION" |
| Configures the aiProcess_PreTransformVertices step to use a users defined matrix as the scene root node transformation before transforming vertices. This property correspond to the 'a1' component of the transformation matrix. Property type: aiMatrix4x4. | |
| #define | AI_CONFIG_PP_FD_REMOVE "PP_FD_REMOVE" |
| Configures the aiProcess_FindDegenerates step to remove degenerated primitives from the import - immediately. | |
| #define | AI_CONFIG_PP_FD_CHECKAREA "PP_FD_CHECKAREA" |
| Configures the aiProcess_FindDegenerates to check the area of a trinagle to be greates than e-6. If this is not the case the triangle will be removed if AI_CONFIG_PP_FD_REMOVE is set to true. | |
| #define | AI_CONFIG_PP_OG_EXCLUDE_LIST "PP_OG_EXCLUDE_LIST" |
| Configures the aiProcess_OptimizeGraph step to preserve nodes matching a name in a given list. | |
| #define | AI_CONFIG_PP_SLM_TRIANGLE_LIMIT "PP_SLM_TRIANGLE_LIMIT" |
| Set the maximum number of triangles in a mesh. | |
| #define | AI_CONFIG_PP_SLM_VERTEX_LIMIT "PP_SLM_VERTEX_LIMIT" |
| Set the maximum number of vertices in a mesh. | |
| #define | AI_CONFIG_PP_LBW_MAX_WEIGHTS "PP_LBW_MAX_WEIGHTS" |
| Set the maximum number of bones affecting a single vertex. | |
| #define | AI_CONFIG_PP_DB_THRESHOLD "PP_DB_THRESHOLD" |
| Lower the deboning threshold in order to remove more bones. | |
| #define | AI_CONFIG_PP_DB_ALL_OR_NONE "PP_DB_ALL_OR_NONE" |
| Require all bones qualify for deboning before removing any. | |
| #define | PP_ICL_PTCACHE_SIZE 12 |
| Default value for the AI_CONFIG_PP_ICL_PTCACHE_SIZE property. | |
| #define | AI_CONFIG_PP_ICL_PTCACHE_SIZE "PP_ICL_PTCACHE_SIZE" |
| Set the size of the post-transform vertex cache to optimize the vertices for. This configures the aiProcess_ImproveCacheLocality step. | |
| #define | AI_CONFIG_PP_RVC_FLAGS "PP_RVC_FLAGS" |
| Input parameter to the aiProcess_RemoveComponent step: Specifies the parts of the data structure to be removed. | |
| #define | AI_CONFIG_PP_SBP_REMOVE "PP_SBP_REMOVE" |
| Input parameter to the aiProcess_SortByPType step: Specifies which primitive types are removed by the step. | |
| #define | AI_CONFIG_PP_FID_ANIM_ACCURACY "PP_FID_ANIM_ACCURACY" |
| Input parameter to the aiProcess_FindInvalidData step: Specifies the floating-point accuracy for animation values. The step checks for animation tracks where all frame values are absolutely equal and removes them. This tweakable controls the epsilon for floating-point comparisons - two keys are considered equal if the invariant abs(n0-n1)>epsilon holds true for all vector respectively quaternion components. The default value is 0.f - comparisons are exact then. | |
| #define | AI_CONFIG_PP_TUV_EVALUATE "PP_TUV_EVALUATE" |
| Input parameter to the aiProcess_TransformUVCoords step: Specifies which UV transformations are evaluated. | |
| #define | AI_CONFIG_FAVOUR_SPEED "FAVOUR_SPEED" |
| A hint to assimp to favour speed against import quality. | |
| #define | AI_CONFIG_IMPORT_FBX_READ_ALL_GEOMETRY_LAYERS "IMPORT_FBX_READ_ALL_GEOMETRY_LAYERS" |
| Set whether the fbx importer will merge all geometry layers present in the source file or take only the first. | |
| #define | AI_CONFIG_IMPORT_FBX_READ_ALL_MATERIALS "IMPORT_FBX_READ_ALL_MATERIALS" |
| Set whether the fbx importer will read all materials present in the source file or take only the referenced materials. | |
| #define | AI_CONFIG_IMPORT_FBX_READ_MATERIALS "IMPORT_FBX_READ_MATERIALS" |
| Set whether the fbx importer will read materials. | |
| #define | AI_CONFIG_IMPORT_FBX_READ_TEXTURES "IMPORT_FBX_READ_TEXTURES" |
| Set whether the fbx importer will read embedded textures. | |
| #define | AI_CONFIG_IMPORT_FBX_READ_CAMERAS "IMPORT_FBX_READ_CAMERAS" |
| Set whether the fbx importer will read cameras. | |
| #define | AI_CONFIG_IMPORT_FBX_READ_LIGHTS "IMPORT_FBX_READ_LIGHTS" |
| Set whether the fbx importer will read light sources. | |
| #define | AI_CONFIG_IMPORT_FBX_READ_ANIMATIONS "IMPORT_FBX_READ_ANIMATIONS" |
| Set whether the fbx importer will read animations. | |
| #define | AI_CONFIG_IMPORT_FBX_STRICT_MODE "IMPORT_FBX_STRICT_MODE" |
| Set whether the fbx importer will act in strict mode in which only FBX 2013 is supported and any other sub formats are rejected. FBX 2013 is the primary target for the importer, so this format is best supported and well-tested. | |
| #define | AI_CONFIG_IMPORT_FBX_PRESERVE_PIVOTS "IMPORT_FBX_PRESERVE_PIVOTS" |
| Set whether the fbx importer will preserve pivot points for transformations (as extra nodes). If set to false, pivots and offsets will be evaluated whenever possible. | |
| #define | AI_CONFIG_IMPORT_FBX_OPTIMIZE_EMPTY_ANIMATION_CURVES "IMPORT_FBX_OPTIMIZE_EMPTY_ANIMATION_CURVES" |
| Specifies whether the importer will drop empty animation curves or animation curves which match the bind pose transformation over their entire defined range. | |
| #define | AI_CONFIG_IMPORT_FBX_SEARCH_EMBEDDED_TEXTURES "IMPORT_FBX_SEARCH_EMBEDDED_TEXTURES" |
| Set whether the fbx importer will search for embedded loaded textures, where no embedded texture data is provided. | |
| #define | AI_CONFIG_IMPORT_GLOBAL_KEYFRAME "IMPORT_GLOBAL_KEYFRAME" |
| Set the vertex animation keyframe to be imported. | |
| #define | AI_CONFIG_IMPORT_AC_SEPARATE_BFCULL "IMPORT_AC_SEPARATE_BFCULL" |
| Configures the AC loader to collect all surfaces which have the "Backface cull" flag set in separate meshes. | |
| #define | AI_CONFIG_IMPORT_AC_EVAL_SUBDIVISION "IMPORT_AC_EVAL_SUBDIVISION" |
| Configures whether the AC loader evaluates subdivision surfaces ( indicated by the presence of the 'subdiv' attribute in the file). By default, Assimp performs the subdivision using the standard Catmull-Clark algorithm. | |
| #define | AI_CONFIG_IMPORT_UNREAL_HANDLE_FLAGS "UNREAL_HANDLE_FLAGS" |
| Configures the UNREAL 3D loader to separate faces with different surface flags (e.g. two-sided vs. single-sided). | |
| #define | AI_CONFIG_IMPORT_TER_MAKE_UVS "IMPORT_TER_MAKE_UVS" |
| Configures the terragen import plugin to compute uv's for terrains, if not given. Furthermore a default texture is assigned. | |
| #define | AI_CONFIG_IMPORT_ASE_RECONSTRUCT_NORMALS "IMPORT_ASE_RECONSTRUCT_NORMALS" |
| Configures the ASE loader to always reconstruct normal vectors basing on the smoothing groups loaded from the file. | |
| #define | AI_CONFIG_IMPORT_MD3_HANDLE_MULTIPART "IMPORT_MD3_HANDLE_MULTIPART" |
| Configures the M3D loader to detect and process multi-part Quake player models. | |
| #define | AI_CONFIG_IMPORT_MD3_SKIN_NAME "IMPORT_MD3_SKIN_NAME" |
| Tells the MD3 loader which skin files to load. | |
| #define | AI_CONFIG_IMPORT_MD3_SHADER_SRC "IMPORT_MD3_SHADER_SRC" |
| Specify the Quake 3 shader file to be used for a particular MD3 file. This can also be a search path. | |
| #define | AI_CONFIG_IMPORT_LWO_ONE_LAYER_ONLY "IMPORT_LWO_ONE_LAYER_ONLY" |
| Configures the LWO loader to load just one layer from the model. | |
| #define | AI_CONFIG_IMPORT_MD5_NO_ANIM_AUTOLOAD "IMPORT_MD5_NO_ANIM_AUTOLOAD" |
| Configures the MD5 loader to not load the MD5ANIM file for a MD5MESH file automatically. | |
| #define | AI_CONFIG_IMPORT_LWS_ANIM_START "IMPORT_LWS_ANIM_START" |
| Defines the begin of the time range for which the LWS loader evaluates animations and computes aiNodeAnim's. | |
| #define | AI_CONFIG_IMPORT_IRR_ANIM_FPS "IMPORT_IRR_ANIM_FPS" |
| Defines the output frame rate of the IRR loader. | |
| #define | AI_CONFIG_IMPORT_OGRE_MATERIAL_FILE "IMPORT_OGRE_MATERIAL_FILE" |
| Ogre Importer will try to find referenced materials from this file. | |
| #define | AI_CONFIG_IMPORT_OGRE_TEXTURETYPE_FROM_FILENAME "IMPORT_OGRE_TEXTURETYPE_FROM_FILENAME" |
| Ogre Importer detect the texture usage from its filename. | |
| #define | AI_CONFIG_ANDROID_JNI_ASSIMP_MANAGER_SUPPORT "AI_CONFIG_ANDROID_JNI_ASSIMP_MANAGER_SUPPORT" |
| Specifies whether the Android JNI asset extraction is supported. | |
| #define | AI_CONFIG_IMPORT_IFC_SKIP_SPACE_REPRESENTATIONS "IMPORT_IFC_SKIP_SPACE_REPRESENTATIONS" |
| Specifies whether the IFC loader skips over IfcSpace elements. | |
| #define | AI_CONFIG_IMPORT_IFC_CUSTOM_TRIANGULATION "IMPORT_IFC_CUSTOM_TRIANGULATION" |
| Specifies whether the IFC loader will use its own, custom triangulation algorithm to triangulate wall and floor meshes. | |
| #define | AI_CONFIG_IMPORT_IFC_SMOOTHING_ANGLE "IMPORT_IFC_SMOOTHING_ANGLE" |
| Set the tessellation conic angle for IFC smoothing curves. | |
| #define | AI_CONFIG_IMPORT_IFC_CYLINDRICAL_TESSELLATION "IMPORT_IFC_CYLINDRICAL_TESSELLATION" |
| Set the tessellation for IFC cylindrical shapes. | |
| #define | AI_CONFIG_IMPORT_COLLADA_IGNORE_UP_DIRECTION "IMPORT_COLLADA_IGNORE_UP_DIRECTION" |
| Specifies whether the Collada loader will ignore the provided up direction. | |
| #define | AI_CONFIG_EXPORT_XFILE_64BIT "EXPORT_XFILE_64BIT" |
| Specifies the xfile use double for real values of float. | |
| #define | AI_CONFIG_GLOBAL_SCALE_FACTOR_KEY "GLOBAL_SCALE_FACTOR" |
| Specifies a gobal key factor for scale, float value. | |
Enumerations | |
| enum | aiComponent { aiComponent_NORMALS = 0x2u, aiComponent_TANGENTS_AND_BITANGENTS = 0x4u, aiComponent_COLORS = 0x8, aiComponent_TEXCOORDS = 0x10, aiComponent_BONEWEIGHTS = 0x20, aiComponent_ANIMATIONS = 0x40, aiComponent_TEXTURES = 0x80, aiComponent_LIGHTS = 0x100, aiComponent_CAMERAS = 0x200, aiComponent_MESHES = 0x400, aiComponent_MATERIALS = 0x800, _aiComponent_Force32Bit = 0x9fffffff } |
| Enumerates components of the aiScene and aiMesh data structures that can be excluded from the import using the aiProcess_RemoveComponent step. More... |
Typically these properties are set via Assimp::Importer::SetPropertyFloat, Assimp::Importer::SetPropertyInteger or Assimp::Importer::SetPropertyString, depending on the data type of a property. All properties have a default value. See the doc for the mentioned methods for more details.
The corresponding functions for use with the plain-c API are: aiSetImportPropertyInteger, aiSetImportPropertyFloat, aiSetImportPropertyString
Definition in file config.h.
| #define AI_CONFIG_ANDROID_JNI_ASSIMP_MANAGER_SUPPORT "AI_CONFIG_ANDROID_JNI_ASSIMP_MANAGER_SUPPORT" |
| #define AI_CONFIG_EXPORT_XFILE_64BIT "EXPORT_XFILE_64BIT" |
| #define AI_CONFIG_FAVOUR_SPEED "FAVOUR_SPEED" |
A hint to assimp to favour speed against import quality.
Enabling this option may result in faster loading, but it needn't. It represents just a hint to loaders and post-processing steps to use faster code paths, if possible. This property is expected to be an integer, != 0 stands for true. The default value is 0.
| #define AI_CONFIG_GLOB_MEASURE_TIME "GLOB_MEASURE_TIME" |
Enables time measurements.
If enabled, measures the time needed for each part of the loading process (i.e. IO time, importing, postprocessing, ..) and dumps these timings to the DefaultLogger. See the Performance Page for more information on this topic.
Property type: bool. Default value: false.
| #define AI_CONFIG_IMPORT_AC_EVAL_SUBDIVISION "IMPORT_AC_EVAL_SUBDIVISION" |
Configures whether the AC loader evaluates subdivision surfaces ( indicated by the presence of the 'subdiv' attribute in the file). By default, Assimp performs the subdivision using the standard Catmull-Clark algorithm.
* Property type: bool. Default value: true.
| #define AI_CONFIG_IMPORT_AC_SEPARATE_BFCULL "IMPORT_AC_SEPARATE_BFCULL" |
| #define AI_CONFIG_IMPORT_ASE_RECONSTRUCT_NORMALS "IMPORT_ASE_RECONSTRUCT_NORMALS" |
| #define AI_CONFIG_IMPORT_COLLADA_IGNORE_UP_DIRECTION "IMPORT_COLLADA_IGNORE_UP_DIRECTION" |
| #define AI_CONFIG_IMPORT_FBX_OPTIMIZE_EMPTY_ANIMATION_CURVES "IMPORT_FBX_OPTIMIZE_EMPTY_ANIMATION_CURVES" |
| #define AI_CONFIG_IMPORT_FBX_PRESERVE_PIVOTS "IMPORT_FBX_PRESERVE_PIVOTS" |
| #define AI_CONFIG_IMPORT_FBX_READ_ALL_GEOMETRY_LAYERS "IMPORT_FBX_READ_ALL_GEOMETRY_LAYERS" |
| #define AI_CONFIG_IMPORT_FBX_READ_ALL_MATERIALS "IMPORT_FBX_READ_ALL_MATERIALS" |
| #define AI_CONFIG_IMPORT_FBX_READ_ANIMATIONS "IMPORT_FBX_READ_ANIMATIONS" |
| #define AI_CONFIG_IMPORT_FBX_READ_CAMERAS "IMPORT_FBX_READ_CAMERAS" |
| #define AI_CONFIG_IMPORT_FBX_READ_LIGHTS "IMPORT_FBX_READ_LIGHTS" |
| #define AI_CONFIG_IMPORT_FBX_READ_MATERIALS "IMPORT_FBX_READ_MATERIALS" |
| #define AI_CONFIG_IMPORT_FBX_READ_TEXTURES "IMPORT_FBX_READ_TEXTURES" |
| #define AI_CONFIG_IMPORT_FBX_SEARCH_EMBEDDED_TEXTURES "IMPORT_FBX_SEARCH_EMBEDDED_TEXTURES" |
| #define AI_CONFIG_IMPORT_FBX_STRICT_MODE "IMPORT_FBX_STRICT_MODE" |
Set whether the fbx importer will act in strict mode in which only FBX 2013 is supported and any other sub formats are rejected. FBX 2013 is the primary target for the importer, so this format is best supported and well-tested.
The default value is false (0) Property type: bool
| #define AI_CONFIG_IMPORT_GLOBAL_KEYFRAME "IMPORT_GLOBAL_KEYFRAME" |
Set the vertex animation keyframe to be imported.
ASSIMP does not support vertex keyframes (only bone animation is supported). The library reads only one frame of models with vertex animations. By default this is the first frame.
| #define AI_CONFIG_IMPORT_IFC_CUSTOM_TRIANGULATION "IMPORT_IFC_CUSTOM_TRIANGULATION" |
Specifies whether the IFC loader will use its own, custom triangulation algorithm to triangulate wall and floor meshes.
If this property is set to false, walls will be either triangulated by aiProcess_Triangulate or will be passed through as huge polygons with faked holes (i.e. holes that are connected with the outer boundary using a dummy edge). It is highly recommended to set this property to true if you want triangulated data because aiProcess_Triangulate is known to have problems with the kind of polygons that the IFC loader spits out for complicated meshes. Property type: Bool. Default value: true.
| #define AI_CONFIG_IMPORT_IFC_CYLINDRICAL_TESSELLATION "IMPORT_IFC_CYLINDRICAL_TESSELLATION" |
Set the tessellation for IFC cylindrical shapes.
This is used by the IFC importer to determine the tessellation parameter for cylindrical shapes, i.e. the number of segments used to approximate a circle.
| #define AI_CONFIG_IMPORT_IFC_SKIP_SPACE_REPRESENTATIONS "IMPORT_IFC_SKIP_SPACE_REPRESENTATIONS" |
| #define AI_CONFIG_IMPORT_IFC_SMOOTHING_ANGLE "IMPORT_IFC_SMOOTHING_ANGLE" |
Set the tessellation conic angle for IFC smoothing curves.
This is used by the IFC importer to determine the tessellation parameter for smoothing curves.
| #define AI_CONFIG_IMPORT_IRR_ANIM_FPS "IMPORT_IRR_ANIM_FPS" |
Defines the output frame rate of the IRR loader.
IRR animations are difficult to convert for Assimp and there will always be a loss of quality. This setting defines how many keys per second are returned by the converter.
Property type: integer. Default value: 100
| #define AI_CONFIG_IMPORT_LWO_ONE_LAYER_ONLY "IMPORT_LWO_ONE_LAYER_ONLY" |
Configures the LWO loader to load just one layer from the model.
LWO files consist of layers and in some cases it could be useful to load only one of them. This property can be either a string - which specifies the name of the layer - or an integer - the index of the layer. If the property is not set the whole LWO model is loaded. Loading fails if the requested layer is not available. The layer index is zero-based and the layer name may not be empty.
Property type: Integer. Default value: all layers are loaded.
| #define AI_CONFIG_IMPORT_LWS_ANIM_START "IMPORT_LWS_ANIM_START" |
Defines the begin of the time range for which the LWS loader evaluates animations and computes aiNodeAnim's.
Assimp provides full conversion of LightWave's envelope system, including pre and post conditions. The loader computes linearly subsampled animation chanels with the frame rate given in the LWS file. This property defines the start time. Note: animation channels are only generated if a node has at least one envelope with more tan one key assigned. This property. is given in frames, '0' is the first frame. By default, if this property is not set, the importer takes the animation start from the input LWS file ('FirstFrame' line)
Property type: Integer. Default value: taken from file.
| #define AI_CONFIG_IMPORT_MD3_HANDLE_MULTIPART "IMPORT_MD3_HANDLE_MULTIPART" |
Configures the M3D loader to detect and process multi-part Quake player models.
These models usually consist of 3 files, lower.md3, upper.md3 and head.md3. If this property is set to true, Assimp will try to load and combine all three files if one of them is loaded. Property type: bool. Default value: true.
| #define AI_CONFIG_IMPORT_MD3_SHADER_SRC "IMPORT_MD3_SHADER_SRC" |
Specify the Quake 3 shader file to be used for a particular MD3 file. This can also be a search path.
By default Assimp's behaviour is as follows: If a MD3 file any_path/models/any_q3_subdir/model_name/file_name.md3
is loaded, the library tries to locate the corresponding shader file in any_path/scripts/model_name.shader
. This property overrides this behaviour. It can either specify a full path to the shader to be loaded or alternatively the path (relative or absolute) to the directory where the shaders for all MD3s to be loaded reside. Assimp attempts to open IMPORT_MD3_SHADER_SRC/model_name.shader
first, IMPORT_MD3_SHADER_SRC/file_name.shader
is the fallback file. Note that IMPORT_MD3_SHADER_SRC should have a terminal (back)slash. Property type: String. Default value: n/a.
| #define AI_CONFIG_IMPORT_MD3_SKIN_NAME "IMPORT_MD3_SKIN_NAME" |
Tells the MD3 loader which skin files to load.
When loading MD3 files, Assimp checks whether a file [md3_file_name]_[skin_name].skin is existing. These files are used by Quake III to be able to assign different skins (e.g. red and blue team) to models. 'default', 'red', 'blue' are typical skin names. Property type: String. Default value: "default".
| #define AI_CONFIG_IMPORT_MD5_NO_ANIM_AUTOLOAD "IMPORT_MD5_NO_ANIM_AUTOLOAD" |
Configures the MD5 loader to not load the MD5ANIM file for a MD5MESH file automatically.
The default strategy is to look for a file with the same name but the MD5ANIM extension in the same directory. If it is found, it is loaded and combined with the MD5MESH file. This configuration option can be used to disable this behaviour.
* Property type: bool. Default value: false.
| #define AI_CONFIG_IMPORT_MDL_COLORMAP "IMPORT_MDL_COLORMAP" |
Sets the colormap (= palette) to be used to decode embedded textures in MDL (Quake or 3DGS) files.
This must be a valid path to a file. The file is 768 (256*3) bytes large and contains RGB triplets for each of the 256 palette entries. The default value is colormap.lmp. If the file is not found, a default palette (from Quake 1) is used. Property type: string.
| #define AI_CONFIG_IMPORT_NO_SKELETON_MESHES "IMPORT_NO_SKELETON_MESHES" |
| #define AI_CONFIG_IMPORT_OGRE_MATERIAL_FILE "IMPORT_OGRE_MATERIAL_FILE" |
Ogre Importer will try to find referenced materials from this file.
Ogre meshes reference with material names, this does not tell Assimp the file where it is located in. Assimp will try to find the source file in the following order: <material-name>.material, <mesh-filename-base>.material and lastly the material name defined by this config property.
Property type: String. Default value: Scene.material.
| #define AI_CONFIG_IMPORT_OGRE_TEXTURETYPE_FROM_FILENAME "IMPORT_OGRE_TEXTURETYPE_FROM_FILENAME" |
Ogre Importer detect the texture usage from its filename.
Ogre material texture units do not define texture type, the textures usage depends on the used shader or Ogre's fixed pipeline. If this config property is true Assimp will try to detect the type from the textures filename postfix: _n, _nrm, _nrml, _normal, _normals and _normalmap for normal map, _s, _spec, _specular and _specularmap for specular map, _l, _light, _lightmap, _occ and _occlusion for light map, _disp and _displacement for displacement map. The matching is case insensitive. Post fix is taken between the last underscore and the last period. Default behavior is to detect type from lower cased texture unit name by matching against: normalmap, specularmap, lightmap and displacementmap. For both cases if no match is found aiTextureType_DIFFUSE is used.
Property type: Bool. Default value: false.
| #define AI_CONFIG_IMPORT_TER_MAKE_UVS "IMPORT_TER_MAKE_UVS" |
Configures the terragen import plugin to compute uv's for terrains, if not given. Furthermore a default texture is assigned.
UV coordinates for terrains are so simple to compute that you'll usually want to compute them on your own, if you need them. This option is intended for model viewers which want to offer an easy way to apply textures to terrains. * Property type: bool. Default value: false.
| #define AI_CONFIG_IMPORT_UNREAL_HANDLE_FLAGS "UNREAL_HANDLE_FLAGS" |
| #define AI_CONFIG_PP_CT_MAX_SMOOTHING_ANGLE "PP_CT_MAX_SMOOTHING_ANGLE" |
Specifies the maximum angle that may be between two vertex tangents that their tangents and bi-tangents are smoothed.
This applies to the CalcTangentSpace-Step. The angle is specified in degrees. The maximum value is 175. Property type: float. Default value: 45 degrees
| #define AI_CONFIG_PP_CT_TEXTURE_CHANNEL_INDEX "PP_CT_TEXTURE_CHANNEL_INDEX" |
| #define AI_CONFIG_PP_DB_ALL_OR_NONE "PP_DB_ALL_OR_NONE" |
Require all bones qualify for deboning before removing any.
This is used by the aiProcess_Debone PostProcess-Step.
| #define AI_CONFIG_PP_DB_THRESHOLD "PP_DB_THRESHOLD" |
Lower the deboning threshold in order to remove more bones.
This is used by the aiProcess_Debone PostProcess-Step.
| #define AI_CONFIG_PP_FD_REMOVE "PP_FD_REMOVE" |
Configures the aiProcess_FindDegenerates step to remove degenerated primitives from the import - immediately.
The default behaviour converts degenerated triangles to lines and degenerated lines to points. See the documentation to the aiProcess_FindDegenerates step for a detailed example of the various ways to get rid of these lines and points if you don't want them. Property type: bool. Default value: false.
| #define AI_CONFIG_PP_GSN_MAX_SMOOTHING_ANGLE "PP_GSN_MAX_SMOOTHING_ANGLE" |
Specifies the maximum angle that may be between two face normals at the same vertex position that their are smoothed together.
Sometimes referred to as 'crease angle'. This applies to the GenSmoothNormals-Step. The angle is specified in degrees, so 180 is PI. The default value is 175 degrees (all vertex normals are smoothed). The maximum value is 175, too. Property type: float. Warning: setting this option may cause a severe loss of performance. The performance is unaffected if the AI_CONFIG_FAVOUR_SPEED flag is set but the output quality may be reduced.
| #define AI_CONFIG_PP_ICL_PTCACHE_SIZE "PP_ICL_PTCACHE_SIZE" |
Set the size of the post-transform vertex cache to optimize the vertices for. This configures the aiProcess_ImproveCacheLocality step.
The size is given in vertices. Of course you can't know how the vertex format will exactly look like after the import returns, but you can still guess what your meshes will probably have.
| #define AI_CONFIG_PP_LBW_MAX_WEIGHTS "PP_LBW_MAX_WEIGHTS" |
Set the maximum number of bones affecting a single vertex.
This is used by the aiProcess_LimitBoneWeights PostProcess-Step.
| #define AI_CONFIG_PP_OG_EXCLUDE_LIST "PP_OG_EXCLUDE_LIST" |
Configures the aiProcess_OptimizeGraph step to preserve nodes matching a name in a given list.
This is a list of 1 to n strings, ' ' serves as delimiter character. Identifiers containing whitespaces must be enclosed in *single* quotation marks. For example: "keep-me and_me_to anotherNodeToBeKept \'name with whitespace\'"
. If a node matches on of these names, it will not be modified or removed by the postprocessing step.
This option might be useful if you are using some magic node names to pass additional semantics through the content pipeline. This ensures they won't be optimized away, but a general optimization is still performed for nodes not contained in the list. Property type: String. Default value: n/a
| #define AI_CONFIG_PP_PTV_KEEP_HIERARCHY "PP_PTV_KEEP_HIERARCHY" |
Configures the aiProcess_PreTransformVertices step to keep the scene hierarchy. Meshes are moved to worldspace, but no optimization is performed (read: meshes with equal materials are not joined. The total number of meshes won't change).
This option could be of use for you if the scene hierarchy contains important additional information which you intend to parse. For rendering, you can still render all meshes in the scene without any transformations. Property type: bool. Default value: false.
| #define AI_CONFIG_PP_RRM_EXCLUDE_LIST "PP_RRM_EXCLUDE_LIST" |
Configures the aiProcess_RemoveRedundantMaterials step to keep materials matching a name in a given list.
This is a list of 1 to n strings, ' ' serves as delimiter character. Identifiers containing whitespaces must be enclosed in *single* quotation marks. For example: "keep-me and_me_to anotherMaterialToBeKept \'name with whitespace\'"
. If a material matches on of these names, it will not be modified or removed by the postprocessing step nor will other materials be replaced by a reference to it.
This option might be useful if you are using some magic material names to pass additional semantics through the content pipeline. This ensures they won't be optimized away, but a general optimization is still performed for materials not contained in the list. Property type: String. Default value: n/a
| #define AI_CONFIG_PP_RVC_FLAGS "PP_RVC_FLAGS" |
Input parameter to the aiProcess_RemoveComponent step: Specifies the parts of the data structure to be removed.
See the documentation to this step for further details. The property is expected to be an integer, a bitwise combination of the aiComponent flags defined above in this header. The default value is 0. Important: if no valid mesh is remaining after the step has been executed (e.g you thought it was funny to specify ALL of the flags defined above) the import FAILS. Mainly because there is no data to work on anymore ...
| #define AI_CONFIG_PP_SBBC_MAX_BONES "PP_SBBC_MAX_BONES" |
| #define AI_CONFIG_PP_SBP_REMOVE "PP_SBP_REMOVE" |
Input parameter to the aiProcess_SortByPType step: Specifies which primitive types are removed by the step.
This is a bitwise combination of the aiPrimitiveType flags. Specifying all of them is illegal, of course. A typical use would be to exclude all line and point meshes from the import. This is an integer property, its default value is 0.
| #define AI_CONFIG_PP_SLM_TRIANGLE_LIMIT "PP_SLM_TRIANGLE_LIMIT" |
| #define AI_CONFIG_PP_SLM_VERTEX_LIMIT "PP_SLM_VERTEX_LIMIT" |
| #define AI_CONFIG_PP_TUV_EVALUATE "PP_TUV_EVALUATE" |
Input parameter to the aiProcess_TransformUVCoords step: Specifies which UV transformations are evaluated.
This is a bitwise combination of the AI_UVTRAFO_XXX flags (integer property, of course). By default all transformations are enabled (AI_UVTRAFO_ALL).
| enum aiComponent |
Enumerates components of the aiScene and aiMesh data structures that can be excluded from the import using the aiProcess_RemoveComponent step.
See the documentation to aiProcess_RemoveComponent for more details.
| aiComponent_NORMALS | Normal vectors |
| aiComponent_TANGENTS_AND_BITANGENTS | Tangents and bitangents go always together ... |
| aiComponent_COLORS | ALL color sets Use aiComponent_COLORn(N) to specify the N'th set |
| aiComponent_TEXCOORDS | ALL texture UV sets aiComponent_TEXCOORDn(N) to specify the N'th set |
| aiComponent_BONEWEIGHTS | Removes all bone weights from all meshes. The scenegraph nodes corresponding to the bones are NOT removed. use the aiProcess_OptimizeGraph step to do this |
| aiComponent_ANIMATIONS | Removes all node animations (aiScene::mAnimations). The corresponding scenegraph nodes are NOT removed. use the aiProcess_OptimizeGraph step to do this |
| aiComponent_TEXTURES | Removes all embedded textures (aiScene::mTextures) |
| aiComponent_LIGHTS | Removes all light sources (aiScene::mLights). The corresponding scenegraph nodes are NOT removed. use the aiProcess_OptimizeGraph step to do this |
| aiComponent_CAMERAS | Removes all cameras (aiScene::mCameras). The corresponding scenegraph nodes are NOT removed. use the aiProcess_OptimizeGraph step to do this |
| aiComponent_MESHES | Removes all meshes (aiScene::mMeshes). |
| aiComponent_MATERIALS | Removes all materials. One default material will be generated, so aiScene::mNumMaterials will be 1. |
| _aiComponent_Force32Bit | This value is not used. It is just there to force the compiler to map this enum to a 32 Bit integer. |
Definition at line 393 of file config.h.
00394 { 00396 #ifdef SWIG 00397 aiComponent_NORMALS = 0x2, 00398 #else 00399 aiComponent_NORMALS = 0x2u, 00400 #endif 00401 00403 #ifdef SWIG 00404 aiComponent_TANGENTS_AND_BITANGENTS = 0x4, 00405 #else 00406 aiComponent_TANGENTS_AND_BITANGENTS = 0x4u, 00407 #endif 00408 00411 aiComponent_COLORS = 0x8, 00412 00415 aiComponent_TEXCOORDS = 0x10, 00416 00420 aiComponent_BONEWEIGHTS = 0x20, 00421 00425 aiComponent_ANIMATIONS = 0x40, 00426 00428 aiComponent_TEXTURES = 0x80, 00429 00433 aiComponent_LIGHTS = 0x100, 00434 00438 aiComponent_CAMERAS = 0x200, 00439 00441 aiComponent_MESHES = 0x400, 00442 00445 aiComponent_MATERIALS = 0x800, 00446 00447 00450 #ifndef SWIG 00451 _aiComponent_Force32Bit = 0x9fffffff 00452 #endif 00453 };


Debugging
Debugging is a process of finding and resolving of
defects or problem within the program that prevent correct operation
Code-ways
alert();
console.log();
debugger;
- monkey-patching
window[name] = anything;
alert();
Example
function(arg) {
alert(arg);
}
alert(); +
Example
- Works everywhere
- Does not require devtools
- Consistent
- Stops eventloop
alert(); -
Example
- Stops eventloop
- Waits user's iteraction
console.log();
Example
function(arg) {
console.log(arg);
}
console.log(); +
Example
- Does not stop eventloop
- Allows to see functions/links and other
- User will not see (usually)
console.log(); -
Example
- Non-consistent sometimes
- Many logs are difficult to read
debugger;
Example
function(arg) {
debugger;
}
debugger; +
Example
- Does not affect application without opened devtools
- Can be ignored
- Easy usage in case of broken source-maps
- Write code and stops were you need
- Allows to execute everything on pause
debugger; -
Example
- Source-maps breaks debugging a bit
- Good ways to inject own code
monkey-patching
Example
setImmediate = function setIm(cb, ...args) {
return cb.call(this, ...args)
}
monkey-patching +
- Allows to do everything with source code
monkey-patching -
Example
- Allows to do everything with source code
- Difficult to use without breaking code
global variables
Example
function (arg) {
window.a = arg;
}
global variables +
- Simple way to check statements anytime
- Simple way to call some hidden methods to check effect
Browser-ways
- Dev tools
- Extensions (redux-dev-tools, react-dev-tools and so one)
Dev tools
- console
- breakpoints
- expression watcher
- call stack explorer
- scope explorer
Console
- errors and theirs messages
- store anything from current scope
- execute the code
Breakpoints
- pause on exception
- conditional breakpoints
- XHR breakpoints
- DOM breakpoints
- Event breakpoints
Breakpoint
Example
function(arg) {
return arg;
}
Breakpoint +
- Easy to be managed from browser
- Allows to see current scope as browser see it
- Displays stacktrace and allow to traver over it
- Allows to execute everything


Great patients like you have kept us in business for over 30 years! Read why these patients and many more say coming to Dr. Liu's office is a MUST!
              Our family has been going to see Dr. Liu for eight years now. We're always greeted with smiling faces and the entire staff is outgoing and very friendly. We're particularly pleased with the way
Dr. Liu and his staff care for our children.
Their kindness and the confidence they show puts our children at ease, and make the experience of going to the dentist a positive one for them. Thanks team Liu!     ~ Julie
              I just wanted to say a few things about Dr. Liu and his staff. I am a patient who came to his practice many, many, years ago. I had a very bad experience when I was a child, having to go to the dentist. I had a lot of fear. When I came to Dr. Liu’s for a dental check-up, he and his staff put me at ease and made me feel very comfortable.
I no longer have a fear going for a check-up or any other dental work. He is such a caring dentist and he and his staff go over and above to make my check-ups and dental care a positive experience.
He is always available if I need to see him for an emergency. I truly enjoy going for my check-ups because he really makes me feel comfortable. Just like family. Thanks Dr. Liu and your caring staff.     ~ Debbie
              Dr. Liu has been our dentist for over five years. We are very pleased with
his professional care and his caring staff.
They all work well together as a team
to make your appointments as comfortable as possible. Thank you!     ~ Kim & Julie
              I became acquainted with Dr. Liu and his staff when my daughter had an emergency, and he took her in immediately to help her.
I liked his and his staff's personal concern for her so much that when it was time
for my own dental care I thought of Dr. Liu and decided to change dentists!
He is very thorough and caught problems my other dentist seemed to overlook. He is on time and his staff, including those doing the cleaning, are very accommodating and friendly. I always recommend them to my friends.     ~ June
              For the past 20 or more years my trust for Dr. Liu and his team have continued to grow. Long term relationships be it business or health care always have a strong foundation in trust or they are short lived. I have always felt comfortable with all aspects of their care as I have required much over this time frame.
At some point in the relationship they become more than just people that provide dental care, they become your friends.
~ Mark