-
Notifications
You must be signed in to change notification settings - Fork 0
Cortex 9, Arnold 5, exploratory PR #1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: 9_exploratory
Are you sure you want to change the base?
Changes from all commits
ddad201
ba7a2f9
6e51598
1d3e5df
574ec8a
cacc56c
5320eae
86fcb48
efa1b5d
4130ffa
73f9798
f8d2571
c146478
2f06053
e1cdb1e
5765d45
3ab0ea5
4acc625
45a5156
dde6223
a78e362
c3771b6
7ad6595
eeb3f92
5ad3e9e
96b708e
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -53,14 +53,14 @@ AtNode *convert( const IECore::Object *object ); | |
| /// equivalent moving Arnold object. If no motion converter | ||
| /// is available, then returns a standard conversion of the | ||
| /// first sample. | ||
| AtNode *convert( const std::vector<const IECore::Object *> &samples, const std::vector<float> &sampleTimes ); | ||
| AtNode *convert( const std::vector<const IECore::Object *> &samples, float motionStart, float motionEnd ); | ||
|
|
||
| /// Signature of a function which can convert an IECore::Object | ||
| /// into an Arnold object. | ||
| typedef AtNode * (*Converter)( const IECore::Object * ); | ||
| /// Signature of a function which can convert a series of IECore::Object | ||
| /// samples into a moving Arnold object. | ||
| typedef AtNode * (*MotionConverter)( const std::vector<const IECore::Object *> &samples, const std::vector<float> &sampleTimes ); | ||
| typedef AtNode * (*MotionConverter)( const std::vector<const IECore::Object *> &samples, float motionStart, float motionEnd ); | ||
|
|
||
| /// Registers a converter for a specific type. | ||
| /// Use the ConverterDescription utility class in preference to | ||
|
|
@@ -77,7 +77,7 @@ class ConverterDescription | |
|
|
||
| /// Type-specific conversion functions. | ||
| typedef AtNode *(*Converter)( const T * ); | ||
| typedef AtNode *(*MotionConverter)( const std::vector<const T *> &, const std::vector<float> & ); | ||
| typedef AtNode *(*MotionConverter)( const std::vector<const T *> &, float, float ); | ||
|
|
||
| ConverterDescription( Converter converter, MotionConverter motionConverter = NULL ) | ||
| { | ||
|
|
@@ -90,6 +90,11 @@ class ConverterDescription | |
|
|
||
| }; | ||
|
|
||
| /// Arnold does not support non-uniform sampling. It just takes a start and end time, and assume | ||
| /// the samples are distributed evenly between them. We need to throw an exception if given data | ||
| /// we can't render. | ||
| void ensureUniformTimeSamples( const std::vector<float> × ); | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can we just make this internal to the Renderer class? I'm trying to minimise the API surface area...
Owner
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I currently use this from both IECoreArnold::RendererImplementation and GafferArnold::IECoreArnoldPreview::Renderer, so I need it to be public. I can add a /todo to make it private in Cortex 10 when we don't have this split. |
||
|
|
||
| } // namespace NodeAlgo | ||
|
|
||
| } // namespace IECoreArnold | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm surprised this is necessary, since arnoldPythonModule already depends on arnoldLibrary.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The issue is the cache. If you make a change to arnoldLibrary that does not produce any changes in the python/IECoreArnold/_IECoreArnold.so binary, then the cache considers the test to have already been run with this exact set of inputs.